/* Sacramento Modern Craft: a tactile California-modern system using River Kiln Green, sandstone, cream, copper rules, and tile-grid geometry. */
:root {
  --river: #153f37;
  --river-dark: #0e2d28;
  --river-wash: #e7eeea;
  --sand: #d5b789;
  --sand-light: #ece2d1;
  --cream: #f6f2e9;
  --paper: #fffdf8;
  --copper: #b9613d;
  --ink: #172b27;
  --muted: #617069;
  --line: rgba(21, 63, 55, 0.18);
  --serif: "Cormorant Garamond", Georgia, serif;
  --sans: "DM Sans", Arial, sans-serif;
  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 5.75rem; }
body { margin: 0; color: var(--ink); background: var(--cream); font-family: var(--sans); font-size: 16px; line-height: 1.6; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--copper); outline-offset: 4px; }
.skip-link { position: fixed; z-index: 100; top: -5rem; left: 1rem; color: var(--paper); background: var(--river); padding: .8rem 1rem; font-weight: 700; transition: top .16s var(--ease-out); }
.skip-link:focus { top: 1rem; }

.site-header { position: sticky; z-index: 30; top: 0; border-bottom: 1px solid rgba(246,242,233,.18); background: rgba(14,45,40,.94); backdrop-filter: blur(15px); color: var(--paper); }
.header-inner { min-height: 5.65rem; width: min(100%, 1440px); margin: auto; padding: .7rem clamp(1.25rem, 4vw, 4.5rem); display: flex; align-items: center; justify-content: space-between; gap: 1.8rem; }
.brand { flex: none; display: inline-flex; align-items: center; gap: .75rem; }
.brand img { width: 2.8rem; height: 2.8rem; object-fit: contain; }
.brand-lockup { display: grid; letter-spacing: .12em; line-height: 1; }
.brand-lockup strong { font-size: .81rem; font-weight: 700; }
.brand-lockup em { margin-top: .3rem; color: var(--sand); font-family: var(--serif); font-size: 1.05rem; font-weight: 600; letter-spacing: .2em; }
.nav-links { display: flex; align-items: center; gap: clamp(1rem, 2.4vw, 2.3rem); margin-left: auto; font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; }
.nav-links a { position: relative; padding: .65rem 0; }
.nav-links a::after, .text-link::after { content: ""; position: absolute; bottom: .33rem; left: 0; width: 100%; height: 1px; background: var(--copper); transform: scaleX(0); transform-origin: right; transition: transform .18s var(--ease-out); }
.nav-links a:hover::after, .text-link:hover::after { transform: scaleX(1); transform-origin: left; }
.header-call { display: grid; padding-left: 1.35rem; border-left: 1px solid rgba(246,242,233,.28); font-size: .84rem; font-weight: 600; letter-spacing: .02em; }
.call-label { margin-bottom: .1rem; color: var(--sand); font-size: .64rem; letter-spacing: .13em; text-transform: uppercase; }

.hero { isolation: isolate; position: relative; min-height: min(700px, calc(100svh - 5.65rem)); display: flex; overflow: hidden; color: var(--paper); background: var(--river-dark); }
.hero-image { position: absolute; z-index: -2; inset: 0; background: url("images/fox-river-hero.jpg") center/cover no-repeat; filter: saturate(.89) contrast(.97); }
.hero-overlay { position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(10,35,30,.96) 0%, rgba(10,35,30,.77) 38%, rgba(10,35,30,.18) 68%, rgba(10,35,30,.15) 100%); }
.hero::after { content: ""; position: absolute; right: -8vw; bottom: -26rem; width: 60vw; height: 44rem; border: 1px solid rgba(246,242,233,.22); transform: rotate(-25deg); }
.hero-inner { width: min(100%, 1440px); padding: clamp(5rem, 12vh, 9.5rem) clamp(1.25rem, 12vw, 12rem) clamp(5rem, 9vh, 7rem) clamp(1.25rem, 8vw, 8.5rem); }
.eyebrow { display: flex; align-items: center; gap: .7rem; margin: 0 0 1.25rem; font-size: .67rem; font-weight: 700; letter-spacing: .16em; line-height: 1.4; text-transform: uppercase; color: var(--copper); }
.eyebrow::before { content: ""; display: inline-block; width: 2.5rem; height: 1px; background: currentColor; }
.eyebrow.light { color: var(--sand); }
.hero h1 { max-width: 700px; margin: 0; font-family: var(--serif); font-size: clamp(4rem, 8vw, 7.9rem); font-weight: 600; letter-spacing: -.06em; line-height: .83; }
.hero h1 em { display: block; color: var(--sand); font-weight: 500; }
.hero-copy { max-width: 31rem; margin: 2rem 0 0; font-size: clamp(1rem, 1.8vw, 1.19rem); line-height: 1.65; color: rgba(255,253,248,.89); }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.4rem 2rem; margin-top: 2.25rem; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 1.15rem; min-height: 3.5rem; padding: .8rem 1.25rem; border: 1px solid transparent; font-size: .74rem; font-weight: 700; letter-spacing: .1em; line-height: 1.2; text-transform: uppercase; transition: color .16s var(--ease-out), background-color .16s var(--ease-out), transform .16s var(--ease-out), border-color .16s var(--ease-out); }
.button-copper { color: var(--paper); background: var(--copper); }
.button:hover { color: var(--river); background: var(--sand); }
.button:active { transform: scale(.97); }
.text-link { position: relative; display: inline-flex; align-items: center; gap: .7rem; padding-bottom: .4rem; font-size: .75rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.text-link::after { bottom: 0; transform: scaleX(1); background: currentColor; }
.text-link:hover::after { transform: scaleX(.35); transform-origin: right; }
.text-link.light { color: var(--paper); }
.text-link.dark { color: var(--river); }
.trust-list { display: flex; flex-wrap: wrap; gap: .65rem 0; padding: 0; margin: clamp(3.5rem, 7vh, 5.6rem) 0 0; list-style: none; color: rgba(255,253,248,.78); font-size: .68rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.trust-list li { padding: 0 1rem; border-right: 1px solid rgba(246,242,233,.35); }
.trust-list li:first-child { padding-left: 0; }
.trust-list li:last-child { border-right: none; }
.hero-caption { position: absolute; right: clamp(1.25rem, 4vw, 4.5rem); bottom: 2.2rem; z-index: 1; writing-mode: vertical-rl; color: rgba(255,253,248,.72); font-size: .62rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.hero-rule { position: absolute; z-index: -1; top: 0; bottom: 0; left: 58%; width: 1px; background: rgba(246,242,233,.28); transform: skewX(-16deg); transform-origin: top; }

.intro-strip { min-height: 10rem; padding: 2rem clamp(1.25rem, 7vw, 8rem); display: flex; align-items: center; justify-content: space-between; gap: 2rem; background: var(--sand-light); color: var(--river); }
.intro-strip p { max-width: 50rem; margin: 0; font-family: var(--serif); font-size: clamp(1.75rem, 3.5vw, 3.25rem); font-weight: 600; letter-spacing: -.035em; line-height: 1.05; }
.intro-strip em { color: var(--copper); font-weight: 500; }
.intro-strip span { flex: none; font-size: .7rem; font-weight: 700; letter-spacing: .17em; }

.services-section { padding: clamp(5.5rem, 10vw, 9rem) clamp(1.25rem, 5vw, 5rem); background: var(--paper); }
.section-head { display: grid; grid-template-columns: minmax(10rem, .65fr) minmax(0, 1.45fr); column-gap: 3rem; max-width: 1280px; margin: 0 auto 3.75rem; }
.section-head h2, .about-copy h2, .contact-heading h2 { max-width: 760px; margin: 0; font-family: var(--serif); font-size: clamp(3rem, 5vw, 5.3rem); font-weight: 600; letter-spacing: -.055em; line-height: .91; }
.section-head > div > p { max-width: 37rem; margin: 1.3rem 0 0; color: var(--muted); font-size: 1rem; }
.section-head-offset { padding-left: clamp(0rem, 7vw, 7.5rem); }
.services-layout { display: grid; grid-template-columns: minmax(14rem, .85fr) minmax(0, 2fr); max-width: 1280px; margin: 0 auto; border-top: 1px solid var(--line); }
.service-lead { position: relative; padding: 2.2rem 2.5rem 2.3rem 0; border-right: 1px solid var(--line); }
.service-number { display: block; color: var(--copper); font-size: .7rem; font-weight: 700; letter-spacing: .11em; }
.tile-icon { position: relative; width: 4rem; height: 4rem; margin: 3.8rem 0 1.5rem; }
.tile-icon i { position: absolute; display: block; border: 2px solid currentColor; }
.tile-icon-grid { color: var(--river); }
.tile-icon-grid i { width: 1.78rem; height: 1.78rem; }
.tile-icon-grid i:nth-child(1) { left: 0; top: 0; }.tile-icon-grid i:nth-child(2) { right: 0; top: 0; }.tile-icon-grid i:nth-child(3) { left: 0; bottom: 0; }.tile-icon-grid i:nth-child(4) { right: 0; bottom: 0; }
.tile-icon-lines { color: var(--sand); }.tile-icon-lines i { left: 0; width: 4rem; height: 1.06rem; }.tile-icon-lines i:nth-child(1){top:0}.tile-icon-lines i:nth-child(2){top:1.44rem}.tile-icon-lines i:nth-child(3){top:2.88rem}
.tile-icon-corner { color: var(--river); }.tile-icon-corner i:first-child { top: 0; left: 0; width: 3rem; height: 3rem; }.tile-icon-corner i:last-child { right: 0; bottom: 0; width: 3rem; height: 3rem; }
.tile-icon-bands { color: var(--copper); }.tile-icon-bands i { top: 0; width: 1rem; height: 4rem; }.tile-icon-bands i:nth-child(1){left:0}.tile-icon-bands i:nth-child(2){left:1.5rem}.tile-icon-bands i:nth-child(3){left:3rem}
.service-lead h3, .service-card h3 { margin: 0; font-family: var(--serif); font-size: 2rem; font-weight: 600; letter-spacing: -.035em; line-height: 1; }
.service-lead p, .service-card p { color: var(--muted); font-size: .92rem; }
.service-lead ul, .service-card ul { padding: 0; margin: 1.6rem 0 0; list-style: none; border-top: 1px solid var(--line); }
.service-lead li, .service-card li { padding: .58rem 0; border-bottom: 1px solid var(--line); font-size: .76rem; font-weight: 600; letter-spacing: .035em; }
.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.service-card { position: relative; min-height: 29rem; padding: 2.2rem 2rem; border-right: 1px solid var(--line); transition: transform .22s var(--ease-out), box-shadow .22s var(--ease-out); }
.service-card:last-child { border-right: none; }
.service-card:hover { z-index: 1; transform: translateY(-.55rem); box-shadow: 0 1.2rem 2.4rem rgba(21,63,55,.12); }
.service-card-green { color: var(--paper); background: var(--river); }.service-card-green p { color: rgba(255,253,248,.77); }.service-card-green li { border-color: rgba(255,253,248,.24); }.service-card-green .service-number { color: var(--sand); }
.service-card-sand { background: var(--sand-light); }.service-card-cream { background: var(--cream); }

.about-section { display: grid; grid-template-columns: minmax(18rem, 1fr) minmax(20rem, 1.1fr) minmax(15rem, .65fr); gap: clamp(2rem, 6vw, 6.5rem); padding: clamp(5.5rem, 10vw, 9rem) clamp(1.25rem, 8vw, 8rem); background: var(--cream); }
.about-art { position: relative; min-height: 31rem; overflow: hidden; background: var(--river); }
.about-art::before { content: ""; position: absolute; z-index: 1; inset: 18% 0 auto 0; height: 1px; background: rgba(246,242,233,.3); transform: rotate(-29deg); transform-origin: left; }
.about-square { position: absolute; border: 1px solid rgba(246,242,233,.45); }
.about-square-1 { top: 10%; left: 14%; width: 52%; height: 37%; }.about-square-2 { right: -6%; bottom: 7%; width: 63%; height: 46%; border-color: var(--sand); }.about-square-3 { right: 16%; top: 32%; width: 28%; height: 20%; background: var(--copper); border: none; }
.about-art span { position: absolute; z-index: 2; bottom: 2.3rem; left: 2.3rem; color: var(--paper); font-family: var(--serif); font-size: clamp(2.2rem, 4vw, 3.8rem); font-weight: 600; letter-spacing: -.05em; line-height: .8; }
.about-copy { align-self: center; }
.about-copy p:not(.eyebrow) { margin: 1.5rem 0 0; color: var(--muted); font-size: 1rem; }
.about-copy .text-link { margin-top: 2rem; }
.process-list { align-self: end; }
.process-list > div { padding: 1.25rem 0; border-top: 1px solid var(--line); }
.process-list > div:last-child { border-bottom: 1px solid var(--line); }
.process-list span { display: block; margin-bottom: .6rem; color: var(--copper); font-size: .65rem; font-weight: 700; letter-spacing: .11em; }.process-list strong { font-family: var(--serif); font-size: 1.45rem; font-weight: 600; }.process-list p { margin: .3rem 0 0; color: var(--muted); font-size: .83rem; }

.gallery-section { padding: clamp(5.5rem, 10vw, 9rem) clamp(1.25rem, 5vw, 5rem); background: var(--river-dark); color: var(--paper); }
.gallery-head h2 { color: var(--paper); }.gallery-head > div > p { color: rgba(255,253,248,.7); }
.gallery-grid { display: grid; grid-template-columns: 1.25fr .8fr .95fr; grid-template-rows: 15.5rem 15.5rem; gap: 1rem; max-width: 1280px; margin: 0 auto; }
.gallery-item { position: relative; margin: 0; overflow: hidden; background: #254d45; }.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s var(--ease-out); }.gallery-item:hover img { transform: scale(1.04); }
.gallery-item::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(10,35,30,.75), transparent 60%); pointer-events: none; }.gallery-item-main { grid-row: 1 / 3; }.gallery-item-floor { grid-column: 3; grid-row: 1 / 3; }
.gallery-item figcaption { position: absolute; z-index: 1; right: 1.25rem; bottom: 1.15rem; left: 1.25rem; display: grid; gap: .15rem; }.gallery-item figcaption span { color: var(--sand); font-size: .6rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }.gallery-item figcaption strong { font-family: var(--serif); font-size: 1.35rem; font-weight: 600; letter-spacing: -.025em; }
.gallery-note { display: flex; align-items: flex-end; justify-content: space-between; padding: 1.5rem; background: var(--copper); font-family: var(--serif); font-size: 1.7rem; font-weight: 600; line-height: .9; }.gallery-note i { font-family: var(--sans); font-size: 2rem; font-style: normal; }

.reviews-section { position: relative; padding: clamp(5.5rem, 10vw, 9rem) clamp(1.25rem, 5vw, 5rem); overflow: hidden; background-color: var(--paper); background-image: linear-gradient(rgba(21,63,55,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(21,63,55,.035) 1px, transparent 1px); background-size: 4rem 4rem; }.reviews-section::before { content: ""; position: absolute; top: 5rem; right: 9%; width: 6rem; height: 6rem; border-top: 2px solid var(--copper); border-right: 2px solid var(--copper); opacity: .65; }.reviews-head { position: relative; margin-bottom: 3.1rem; }
.review-grid { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); max-width: 1280px; margin: 0 auto; border-top: 1px solid var(--line); border-left: 1px solid var(--line); background: var(--paper); }.review-card { position: relative; min-height: 23rem; padding: 2.2rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); display: flex; flex-direction: column; }.review-card::before { content: ""; position: absolute; top: 0; right: 0; width: 2.15rem; height: 2.15rem; border-bottom: 1px solid var(--line); border-left: 1px solid var(--line); background: var(--cream); }.review-card-featured { color: var(--paper); background: var(--river); }.review-card-featured::before { border-color: rgba(255,253,248,.23); background: var(--river-dark); }.process-chip { width: max-content; padding: .35rem .55rem; border: 1px solid currentColor; color: var(--copper); font-size: .56rem; font-weight: 700; letter-spacing: .09em; line-height: 1; text-transform: uppercase; }.review-card-featured .process-chip { color: var(--sand); }.review-card blockquote { margin: 2.7rem 0 0; font-family: var(--serif); font-size: clamp(1.45rem, 2.1vw, 2rem); font-weight: 600; letter-spacing: -.03em; line-height: 1.05; }.review-card footer { display: grid; gap: .1rem; margin-top: auto; padding-top: 2.3rem; }.review-card footer strong { font-size: .75rem; }.review-card footer span { color: var(--muted); font-size: .68rem; }.review-card-featured footer span { color: rgba(255,253,248,.67); }

.contact-section { position: relative; display: grid; grid-template-columns: minmax(18rem, .85fr) minmax(23rem, 1.15fr); overflow: hidden; background: var(--river); color: var(--paper); }.contact-section::before { content: ""; position: absolute; z-index: 0; left: 4%; bottom: 11rem; width: 14rem; height: 14rem; border: 1px solid rgba(255,253,248,.16); transform: rotate(45deg); }.contact-heading { position: relative; z-index: 1; padding: clamp(4rem, 8vw, 8rem) clamp(1.25rem, 7vw, 7.5rem); }.contact-heading h2 { color: var(--paper); }.contact-heading > p:not(.eyebrow) { max-width: 30rem; margin: 1.5rem 0 0; color: rgba(255,253,248,.76); }.contact-direct { display: grid; gap: .35rem; margin-top: 2.5rem; }.contact-direct a { width: max-content; font-size: .8rem; font-weight: 600; letter-spacing: .06em; }.contact-direct a:hover { color: var(--sand); }
.contact-board { position: relative; z-index: 1; padding: clamp(3rem, 7vw, 7rem) clamp(1.25rem, 6vw, 6rem); background-color: var(--sand-light); background-image: linear-gradient(rgba(21,63,55,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(21,63,55,.055) 1px, transparent 1px); background-size: 5rem 5rem; color: var(--river); }.contact-board form { position: relative; padding-left: clamp(0rem, 2.2vw, 1.8rem); border-left: 2px solid var(--copper); }.form-intro { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: 2rem; padding-bottom: 1rem; border-bottom: 1px solid var(--line); }.form-intro span { font-family: var(--serif); font-size: 1.9rem; font-weight: 600; letter-spacing: -.03em; }.form-intro p { margin: .5rem 0 0; color: var(--muted); font-size: .67rem; }.form-intro b, label b { color: var(--copper); }.form-row { display: grid; gap: 1rem; }.form-row-2 { grid-template-columns: 1fr 1fr; }.field { margin-bottom: 1.15rem; }.field label { display: block; margin-bottom: .4rem; font-size: .65rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }.field label span { color: var(--muted); font-weight: 500; letter-spacing: .03em; text-transform: none; }.field input, .field textarea { display: block; width: 100%; border: 1px solid rgba(21,63,55,.35); border-radius: 0; outline: none; padding: .8rem .9rem; color: var(--river); background: rgba(255,253,248,.63); font-size: .92rem; transition: border-color .16s var(--ease-out), background-color .16s var(--ease-out); }.field textarea { resize: vertical; min-height: 7.5rem; }.field input:focus, .field textarea:focus { border-color: var(--copper); background: var(--paper); }.field input::placeholder, .field textarea::placeholder { color: #85918b; }.form-submit { width: 100%; margin-top: .5rem; }.form-submit:hover { color: var(--paper); background: var(--river); }
#form-success { display: none; padding: 3.3rem 1rem; text-align: center; }.contact-board #form-success h3 { margin: 0; font-family: var(--serif); font-size: 2.4rem; font-weight: 600; letter-spacing: -.04em; line-height: 1; }.contact-board #form-success p:last-child { max-width: 25rem; margin: 1rem auto 0; color: var(--muted); }
.location-panel { grid-column: 1 / -1; min-height: 21rem; display: grid; grid-template-columns: .72fr 1.28fr; background: var(--river-dark); }.location-panel > div { padding: 3rem clamp(1.25rem, 6vw, 6rem); }.location-panel address { margin: 1.4rem 0 1.8rem; font-family: var(--serif); font-size: clamp(1.7rem, 3vw, 2.5rem); font-style: normal; font-weight: 600; letter-spacing: -.035em; line-height: .98; }.map-frame { position: relative; min-height: 21rem; overflow: hidden; background: var(--sand-light); }.location-panel iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; opacity: 0; pointer-events: none; }.map-fallback { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: clamp(2rem, 6vw, 5rem); overflow: hidden; background-color: #d9cfbd; background-image: linear-gradient(35deg, transparent 47%, rgba(21,63,55,.2) 47.5%, rgba(21,63,55,.2) 48.5%, transparent 49%), linear-gradient(90deg, rgba(255,253,248,.47) 1px, transparent 1px), linear-gradient(rgba(255,253,248,.47) 1px, transparent 1px); background-size: auto, 3rem 3rem, 3rem 3rem; color: var(--river); }.map-fallback::after { content: ""; position: absolute; right: -5rem; bottom: -6rem; width: 23rem; height: 23rem; border: 1px solid rgba(21,63,55,.32); transform: rotate(45deg); }.map-pin { position: relative; z-index: 1; width: 1.35rem; height: 1.35rem; margin-bottom: 1rem; border: 4px solid var(--copper); border-radius: 50% 50% 50% 0; transform: rotate(-45deg); }.map-label { position: relative; z-index: 1; margin-bottom: .5rem; color: var(--copper); font-size: .64rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }.map-fallback strong { position: relative; z-index: 1; font-family: var(--serif); font-size: clamp(2rem, 3.7vw, 3.5rem); font-weight: 600; letter-spacing: -.05em; line-height: .88; }.map-action { position: relative; z-index: 1; margin-top: 1.6rem; padding-bottom: .3rem; border-bottom: 1px solid currentColor; font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }.map-action i { padding-left: .35rem; font-style: normal; }.map-fallback:hover .map-action { color: var(--copper); }

.site-footer { display: grid; grid-template-columns: 2fr repeat(3, 1fr); gap: 2rem; padding: 4rem clamp(1.25rem, 5vw, 5rem) 1.45rem; background: #0a2520; color: var(--paper); }.footer-brand p { max-width: 17rem; margin: 1.35rem 0 0; color: rgba(255,253,248,.68); font-size: .83rem; }.footer-column { display: grid; align-content: start; gap: .43rem; font-size: .8rem; }.footer-column > span { margin-bottom: .65rem; color: var(--sand); font-size: .62rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }.footer-column a:hover { color: var(--sand); }.footer-column address { font-style: normal; color: rgba(255,253,248,.82); }.footer-bottom { grid-column: 1 / -1; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; margin-top: 2.5rem; padding-top: 1.25rem; border-top: 1px solid rgba(255,253,248,.15); color: rgba(255,253,248,.54); font-size: .62rem; letter-spacing: .04em; }

@media (max-width: 1000px) { .nav-links { display: none; }.services-layout { grid-template-columns: 1fr; }.service-lead { padding-right: 0; border-right: none; border-bottom: 1px solid var(--line); }.service-grid { grid-template-columns: repeat(3, 1fr); }.about-section { grid-template-columns: 1fr 1fr; }.about-art { grid-row: span 2; }.process-list { grid-column: 2; }.section-head-offset { padding-left: 0; }.contact-section { grid-template-columns: 1fr; }.contact-heading { padding-bottom: 4rem; }.location-panel { grid-column: auto; }.site-footer { grid-template-columns: 1.7fr 1fr 1fr; }.footer-column:last-of-type { grid-column: 2; } }
@media (max-width: 700px) { .header-inner { min-height: 4.8rem; padding: .55rem 1.25rem; }.brand img { width: 2.25rem; height: 2.25rem; }.brand-lockup strong { font-size: .65rem; }.brand-lockup em { font-size: .82rem; }.header-call { padding-left: .8rem; font-size: .68rem; }.call-label { font-size: .52rem; }.hero { min-height: 660px; }.hero-overlay { background: linear-gradient(90deg, rgba(10,35,30,.94) 0%, rgba(10,35,30,.73) 64%, rgba(10,35,30,.33) 100%); }.hero-inner { padding: 4.6rem 1.5rem 4rem; }.hero h1 { font-size: clamp(3.7rem, 17vw, 5.2rem); }.hero-caption, .hero-rule { display: none; }.trust-list { display: grid; gap: .5rem; }.trust-list li { padding: 0; border-right: none; }.intro-strip { min-height: 8rem; }.intro-strip span { display: none; }.section-head { grid-template-columns: 1fr; gap: .4rem; margin-bottom: 2.7rem; }.section-head h2, .about-copy h2, .contact-heading h2 { font-size: clamp(3rem, 13vw, 4.3rem); }.services-section, .gallery-section, .reviews-section { padding-top: 5rem; padding-bottom: 5rem; }.service-grid { grid-template-columns: 1fr; }.service-card { min-height: auto; padding: 2.2rem 1.5rem; border-right: none; border-bottom: 1px solid var(--line); }.service-card:last-child { border-bottom: none; }.service-card .tile-icon { margin-top: 2.5rem; }.about-section { grid-template-columns: 1fr; padding-top: 5rem; padding-bottom: 5rem; }.about-art { grid-row: auto; min-height: 22rem; }.process-list { grid-column: auto; }.gallery-grid { grid-template-columns: 1fr 1fr; grid-template-rows: 16rem 12rem 12rem; }.gallery-item-main { grid-column: 1 / -1; grid-row: 1; }.gallery-item-floor { grid-column: 2; grid-row: 2 / 4; }.gallery-note { grid-column: 1; grid-row: 3; }.review-grid { grid-template-columns: 1fr; }.review-card { min-height: 20rem; }.form-row-2 { grid-template-columns: 1fr; gap: 0; }.location-panel { grid-template-columns: 1fr; }.location-panel iframe { min-height: 18rem; }.site-footer { grid-template-columns: 1fr 1fr; }.footer-brand { grid-column: 1 / -1; }.footer-column:last-of-type { grid-column: auto; }.footer-bottom { align-items: flex-start; flex-direction: column; }.text-link { font-size: .67rem; } }
@media (max-width: 390px) { .header-call { font-size: .6rem; }.header-call .call-label { display: none; }.header-call { padding-left: .55rem; }.brand-lockup { display: none; }.hero-actions { align-items: flex-start; flex-direction: column; }.gallery-grid { grid-template-columns: 1fr; grid-template-rows: 17rem 13rem 13rem auto; }.gallery-item-main, .gallery-item-floor, .gallery-note { grid-column: auto; grid-row: auto; }.site-footer { grid-template-columns: 1fr; }.footer-brand, .footer-column:last-of-type { grid-column: auto; } }
@media (prefers-reduced-motion: no-preference) { .service-lead, .service-card, .about-art, .about-copy, .process-list, .gallery-item, .review-card { animation: rise .65s var(--ease-out) both; }.service-card:nth-child(2), .review-card:nth-child(2) { animation-delay: .07s; }.service-card:nth-child(3), .review-card:nth-child(3) { animation-delay: .14s; } @keyframes rise { from { opacity: 0; transform: translateY(1.1rem); } to { opacity: 1; transform: translateY(0); } } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; } }
