:root {
  --paper: #f3efe7;
  --white: #faf8f3;
  --ink: #171714;
  --muted: #77736c;
  --copper: #e8682a;
  --copper-dark: #aa4316;
  --wood: #9b694a;
  --green: #32433f;
  --linen: #e6d8c5;
  --linen-light: #eee4d6;
  --plaster-dark: #645f56;
  --line: rgba(23, 23, 20, 0.22);
  --serif: "Instrument Serif", Georgia, serif;
  --sans: "Manrope", Arial, sans-serif;
  --mono: "DM Mono", monospace;
  --shell: min(1440px, calc(100vw - 96px));
  --ease: cubic-bezier(0.16, 1, 0.3, 1);
}

* { box-sizing: border-box; }
html { overflow-x: clip; scroll-behavior: smooth; background: var(--paper); }
body { width: 100%; margin: 0; overflow-x: clip; background: var(--paper); color: var(--ink); font-family: var(--sans); line-height: 1.6; -webkit-font-smoothing: antialiased; }
body::before { position: fixed; z-index: 90; inset: 0; pointer-events: none; content: ""; opacity: 0.09; mix-blend-mode: multiply; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.18'/%3E%3C/svg%3E"); }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { color: inherit; font: inherit; }
h1, h2, h3, p, figure, ol, ul { margin-top: 0; }
.shell { width: var(--shell); margin-inline: auto; }
.mono { font-family: var(--mono); }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.skip-link { position: fixed; z-index: 200; top: 12px; left: 12px; padding: 12px 18px; background: var(--ink); color: var(--white); transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }
:focus-visible { outline: 2px solid var(--copper); outline-offset: 4px; }

.header { position: fixed; z-index: 100; inset: 0 0 auto; height: 80px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 0 42px; border-bottom: 1px solid rgba(255,255,255,.28); color: var(--white); transition: color .4s, background .4s, border-color .4s, backdrop-filter .4s; }
.header.is-scrolled { color: var(--ink); border-color: var(--line); background: rgba(250,248,243,.83); backdrop-filter: blur(18px) saturate(.7); }
.brand { display: inline-flex; width: fit-content; align-items: center; gap: 10px; }
.brand img { width: 54px; height: 54px; object-fit: contain; }
.brand span { display: grid; line-height: 1; letter-spacing: .17em; }
.brand strong { font-size: .72rem; }
.brand small { margin-top: 5px; font-size: .58rem; letter-spacing: .45em; }
.desktop-nav { display: flex; gap: clamp(20px, 2.4vw, 42px); align-items: center; font-size: .75rem; font-weight: 600; }
.desktop-nav a { position: relative; }
.desktop-nav a::after { position: absolute; right: 0; bottom: -8px; left: 0; height: 1px; background: var(--copper); content: ""; transform: scaleX(0); transform-origin: left; transition: transform .3s; }
.desktop-nav a:hover::after { transform: scaleX(1); }
.header-contact { display: flex; align-items: center; justify-self: end; gap: 22px; }
.header-phone { font-family: var(--mono); font-size: .67rem; }
.button { display: inline-flex; min-height: 54px; align-items: center; justify-content: center; border: 1px solid transparent; padding: 13px 24px; font-family: var(--mono); font-size: .7rem; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; transition: transform .3s var(--ease), background .3s, color .3s; }
.button:hover { transform: translateY(-3px); }
.button--small { min-height: 44px; padding: 10px 18px; }
.button--dark { background: var(--ink); color: var(--white); }
.button--accent { background: var(--copper); color: var(--white); box-shadow: 0 18px 45px rgba(131,51,16,.22); }
.menu-button, .mobile-menu { display: none; }

.hero { height: 220vh; --hero-progress: 0; }
.hero-sticky { position: sticky; top: 0; height: 100svh; min-height: 690px; overflow: hidden; color: var(--white); background: var(--ink); }
.hero-media, .hero-media img, .hero-paper, .hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-media img { object-fit: cover; object-position: 50% 55%; }
.hero-sketch { filter: contrast(.93) brightness(.88); transform: scale(calc(1.025 + var(--hero-progress) * .025)); }
.hero-photo { opacity: var(--photo-opacity, 0); filter: saturate(.85) contrast(.97); transform: scale(calc(1.025 + var(--hero-progress) * .025)); }
.hero-paper { opacity: var(--paper-opacity, .24); mix-blend-mode: screen; background-image: radial-gradient(circle at 20% 20%, rgba(255,255,255,.22), transparent 40%), url("data:image/svg+xml,%3Csvg viewBox='0 0 120 120' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.4'/%3E%3C/svg%3E"); }
.hero-shade { background: linear-gradient(90deg, rgba(10,10,9,.66) 0%, rgba(10,10,9,.18) 54%, rgba(10,10,9,.36) 100%), linear-gradient(0deg, rgba(10,10,9,.62), transparent 50%); }
.hero-index { position: absolute; top: 110px; right: 3.3vw; z-index: 2; display: flex; max-width: min(430px, 38vw); align-items: center; justify-content: flex-end; gap: 16px; font-size: .62rem; line-height: 1.45; letter-spacing: .12em; text-align: right; }
.hero-index span { color: var(--copper); font-size: 1.1rem; }
.hero-copy { position: absolute; z-index: 2; inset: auto 0 8.5vh; }
.kicker { margin-bottom: 24px; font-family: var(--mono); font-size: .68rem; font-weight: 500; letter-spacing: .13em; text-transform: uppercase; }
.kicker::before { display: inline-block; width: 32px; height: 1px; margin-right: 12px; background: currentColor; content: ""; vertical-align: .26em; }
.hero-copy h1 { max-width: 1120px; margin: 0; font-family: var(--serif); font-size: clamp(5rem, 8.8vw, 10.5rem); font-weight: 400; line-height: .78; letter-spacing: -.045em; }
.hero-copy h1 em { display: block; margin-left: 12%; color: var(--white); font-weight: 400; }
.hero-signature { position: absolute; right: 2vw; bottom: 128px; margin: 0; color: #f0b980; font-family: var(--serif); font-size: clamp(2.2rem, 3.8vw, 4.7rem); font-style: italic; line-height: 1; }
.hero-bottom { display: grid; grid-template-columns: minmax(240px, 360px) auto; gap: 54px; align-items: end; margin-top: 50px; }
.hero-bottom > p { margin: 0; font-size: .9rem; line-height: 1.55; }
.hero-actions { display: flex; align-items: center; gap: 28px; }
.arrow-link { display: inline-flex; align-items: center; gap: 14px; padding-bottom: 6px; border-bottom: 1px solid currentColor; font-family: var(--mono); font-size: .69rem; letter-spacing: .04em; text-transform: uppercase; }
.arrow-link span { color: var(--copper); font-size: 1rem; transition: transform .3s; }
.arrow-link:hover span { transform: translate(4px, 4px); }
.hero-progress { position: absolute; z-index: 3; right: 3.3vw; bottom: 32px; left: 3.3vw; display: flex; align-items: center; gap: 14px; font-size: .56rem; letter-spacing: .14em; }
.hero-progress i { flex: 1; height: 1px; background: rgba(255,255,255,.35); }
.hero-progress b { display: block; width: 100%; height: 1px; background: var(--copper); transform: scaleX(var(--hero-progress)); transform-origin: left; }
.scroll-cue { position: absolute; z-index: 3; right: 3.3vw; top: 50%; display: flex; align-items: center; gap: 10px; font-size: .55rem; letter-spacing: .13em; writing-mode: vertical-rl; }
.scroll-cue span { width: 1px; height: 48px; background: var(--copper); }

.manifest { position: relative; display: grid; grid-template-columns: 1.35fr .55fr 1fr; grid-template-areas: "heading metric copy" "heading reviews reviews"; column-gap: 7vw; row-gap: clamp(34px, 4vw, 62px); align-items: center; min-height: 74vh; padding-block: 88px 118px; }
.manifest-heading { grid-area: heading; }
.manifest-heading h2, .services-intro h2, .method-title h2, .projects-heading h2, .trust-intro h2, .craft-copy h2, .contact h2 { margin: 0; font-family: var(--serif); font-size: clamp(4.1rem, 6.2vw, 7.8rem); font-weight: 400; line-height: .91; letter-spacing: -.04em; }
h2 em, h3 em { color: var(--copper-dark); font-weight: 400; }
.manifest-mark { position: relative; display: grid; grid-area: metric; justify-content: center; }
.manifest-mark::before { position: absolute; z-index: -1; inset: -65px -90px; border-radius: 50%; content: ""; opacity: .52; filter: blur(6px); background: radial-gradient(circle, rgba(232,104,42,.22), rgba(255,220,187,.14) 45%, transparent 70%); }
.manifest-mark strong { font-family: var(--sans); font-size: clamp(7rem, 11vw, 13rem); font-weight: 500; line-height: .8; letter-spacing: -.09em; }
.manifest-mark small { margin-top: 24px; font-family: var(--mono); font-size: clamp(.78rem, .9vw, 1rem); font-weight: 500; line-height: 1.35; letter-spacing: .08em; text-transform: uppercase; }
.manifest-copy { grid-area: copy; }
.manifest-copy .lead { font-family: var(--serif); font-size: clamp(1.7rem, 2.2vw, 2.6rem); line-height: 1.18; }
.manifest-copy > p:nth-child(2) { max-width: 560px; color: var(--muted); font-size: .9rem; }
.manifest-copy .arrow-link { margin-top: 28px; }
.manifest-reviews { grid-area: reviews; display: grid; grid-template-columns: minmax(220px,.55fr) minmax(320px,1.45fr); gap: clamp(24px,3vw,48px); align-items: stretch; border-top: 1px solid var(--line); padding-top: 28px; }
.manifest-reviews__intro > .mono { margin-bottom: 12px; color: var(--copper-dark); font-size: .61rem; letter-spacing: .12em; }
.manifest-reviews__intro h3 { max-width: 9ch; margin: 0 0 14px; font-family: var(--serif); font-size: clamp(2rem,2.8vw,3.5rem); font-weight: 400; line-height: .92; }
.manifest-reviews__intro > p:not(.mono) { max-width: 390px; margin-bottom: 18px; color: var(--muted); font-size: .78rem; }
.manifest-reviews__intro .arrow-link { font-size: .61rem; }
.manifest-reviews__panel { position: relative; min-height: 250px; overflow: hidden; border: 1px solid var(--line); background: rgba(250,248,243,.62); }
.manifest-reviews__panel--elfsight { overflow: visible; border: 0; background: transparent; }
.manifest-reviews__panel--elfsight > [class^="elfsight-app-"] { min-height: 250px; }
.manifest-reviews__fallback { display: grid; min-height: 250px; align-content: center; justify-items: start; padding: clamp(24px,3vw,42px); background: radial-gradient(circle at 84% 16%,rgba(232,104,42,.15),transparent 34%),linear-gradient(135deg,rgba(255,255,255,.75),rgba(230,216,197,.38)); }
.manifest-reviews__fallback > .mono { margin-bottom: 14px; color: var(--copper-dark); font-size: .58rem; letter-spacing: .12em; }
.manifest-reviews__fallback p { max-width: 470px; margin-bottom: 24px; font-family: var(--serif); font-size: clamp(1.35rem,1.7vw,2rem); line-height: 1.12; }
.manifest-reviews__widget { width: 100%; height: 330px; color-scheme: light; --gmp-mat-color-surface: #faf8f3; --gmp-mat-color-on-surface: #171714; --gmp-mat-color-on-surface-variant: #5f5b54; --gmp-mat-color-primary: #963a16; }
.manifest-reviews__widget[hidden], .manifest-reviews__fallback[hidden] { display: none; }
.manifest-line { position: absolute; right: 0; bottom: 50px; left: 0; height: 1px; background: var(--line); }
.manifest-line::before { position: absolute; top: -3px; left: 0; width: 7px; height: 7px; border-radius: 50%; background: var(--copper); content: ""; }

.services { position: relative; isolation: isolate; overflow: hidden; padding: 120px 0 135px; background: radial-gradient(72% 58% at 8% 9%, rgba(170,67,22,.14), transparent 60%), linear-gradient(132deg, var(--linen-light) 0%, var(--linen) 56%, #ddcdb8 100%); }
.services::before { position: absolute; z-index: -1; inset: 0; content: ""; pointer-events: none; opacity: .2; background-image: linear-gradient(rgba(94,76,55,.12) 1px, transparent 1px), linear-gradient(90deg,rgba(94,76,55,.1) 1px, transparent 1px), repeating-linear-gradient(86deg,rgba(255,255,255,.16) 0 1px,transparent 1px 7px); background-size: 96px 96px, 96px 96px, auto; mask-image: linear-gradient(to bottom,#000 0%,transparent 58%); }
.services-intro { position: relative; isolation: isolate; display: grid; grid-template-columns: .8fr 1.65fr .8fr; gap: 5vw; align-items: end; min-height: 520px; margin-bottom: 72px; padding: 52px 0 48px; }
.services-intro h2 { position: relative; z-index: 1; font-size: clamp(4rem, 6vw, 7.4rem); text-shadow: 0 20px 55px rgba(230,216,197,.68); }
.services-intro > p:last-child { margin: 0; color: var(--muted); font-size: .9rem; }
.services-intro__media { position: absolute; z-index: -1; top: 10px; bottom: 8px; left: -5vw; width: 45%; margin: 0; overflow: hidden; clip-path: polygon(0 0,100% 0,82% 100%,0 100%); }
.services-intro__media::after { position: absolute; inset: 0; content: ""; background: linear-gradient(90deg,rgba(23,23,20,.08) 0%,rgba(23,23,20,.02) 48%,var(--linen) 100%); }
.services-intro__media img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 56%; filter: saturate(.84) contrast(1.04); }
.services-intro__media figcaption { position: absolute; z-index: 1; bottom: 22px; left: 28px; color: #fff; font-size: .56rem; letter-spacing: .12em; }
.service-list { border-top: 1px solid var(--line); }
.service-card { position: relative; isolation: isolate; display: grid; grid-template-columns: 72px 1.4fr 1fr 60px; gap: 36px; align-items: center; min-height: 210px; border-bottom: 1px solid var(--line); padding: 38px 0; overflow: hidden; cursor: pointer; background: linear-gradient(90deg,rgba(255,250,241,.34),rgba(255,250,241,0) 68%); }
.service-card > *:not(.service-visual) { position: relative; z-index: 2; }
.service-number { color: var(--copper-dark); font-size: .72rem; }
.service-label { margin-bottom: 12px; color: var(--muted); font-size: .59rem; letter-spacing: .08em; text-transform: uppercase; }
.service-card h3 { margin: 0; font-family: var(--serif); font-size: clamp(2.8rem, 4vw, 5.2rem); font-weight: 400; line-height: .9; }
.service-card > p { max-width: 430px; margin: 0; font-size: .86rem; }
.service-card > .service-card__link { position: absolute; z-index: 4; inset: 0; display: block; width: auto; height: auto; border: 0; border-radius: 0; font-size: 0; }
.service-card__link::after { position: absolute; top: 50%; right: 4px; display: grid; width: 46px; height: 46px; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--ink); content: "↘"; font-size: 1.1rem; transform: translateY(-50%); transition: color .3s ease, border-color .3s ease, background .3s ease; }
.service-card:focus-within { outline: 2px solid var(--copper-dark); outline-offset: 5px; }
.service-heading, .service-number, .service-label, .service-card h3, .service-card h3 em { transition: color .35s ease, text-shadow .35s ease; }
.service-visual { position: absolute; z-index: 0; inset: 0 auto 0 0; width: 63%; height: 100%; overflow: hidden; opacity: 0; pointer-events: none; clip-path: polygon(0 0, 0 0, 6% 100%, 0 100%); transform: scale(1.045); transform-origin: left center; transition: opacity .25s ease, clip-path .72s var(--ease), transform 1s var(--ease); }
.service-visual::after { position: absolute; inset: 0; content: ""; background: linear-gradient(90deg, rgba(15,15,13,.86) 0%, rgba(15,15,13,.64) 54%, rgba(15,15,13,.3) 82%, rgba(15,15,13,.04) 100%); }
.service-visual img { width: 100%; height: 100%; object-fit: cover; object-position: center; filter: saturate(.72) contrast(1.02); }
.service-visual--peinture img { object-position: center 40%; }
.service-visual--mural img { object-position: center 32%; }
.service-visual--beton img { object-position: center 46%; }
.service-visual--sol img { object-position: center 72%; }
@media (min-width: 701px) {
  .service-card:is(:hover, :focus-within) .service-visual { opacity: 1; clip-path: polygon(0 0, 93% 0, 100% 100%, 0 100%); transform: scale(1); }
  .service-card:is(:hover, :focus-within) .service-number, .service-card:is(:hover, :focus-within) .service-label { color: rgba(255,255,255,.78); }
  .service-card:is(:hover, :focus-within) h3 { color: var(--white); text-shadow: 0 2px 18px rgba(0,0,0,.22); }
  .service-card:is(:hover, :focus-within) h3 em { color: #f0b980; }
  .service-card:is(:hover, :focus-within) .service-card__link::after { border-color: rgba(255,255,255,.72); color: var(--white); background: rgba(23,23,20,.22); }
}

.method { position: relative; isolation: isolate; overflow: clip; padding: clamp(110px,9vw,160px) 0; color: var(--white); background: radial-gradient(circle at 7% 14%,rgba(232,104,42,.2),transparent 28rem),radial-gradient(circle at 88% 78%,rgba(222,211,197,.17),transparent 38rem),linear-gradient(135deg,#596159 0%,#3f4a44 52%,#5b5047 100%); }
.method::before { position: absolute; z-index: -1; inset: 0; content: ""; pointer-events: none; opacity: .52; background: repeating-linear-gradient(116deg,transparent 0 118px,rgba(255,255,255,.035) 118px 119px),linear-gradient(90deg,transparent 0 49.9%,rgba(232,104,42,.06) 50%,transparent 50.1%); }
.method-inner { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(350px,.82fr) minmax(0,1.35fr); gap: clamp(70px,8vw,150px); }
.kicker--light { color: rgba(255,255,255,.68); }
.method-title { position: sticky; top: 112px; align-self: start; }
.method-title h2 { max-width: 8.3ch; font-size: clamp(3.5rem,4.8vw,6rem); }
.method-title h2 em { color: #e1a17b; }
.method-lead { max-width: 440px; margin: 32px 0 0; border-left: 2px solid var(--copper); padding: 3px 0 3px 20px; color: var(--white); font-family: var(--serif); font-size: clamp(1.25rem,1.55vw,1.75rem); line-height: 1.22; }
.method-feature { position: relative; max-width: 470px; margin: 34px 0 0; overflow: hidden; aspect-ratio: 16/9; clip-path: polygon(0 0,100% 0,91% 100%,0 100%); background: #272722; }
.method-feature::after { position: absolute; inset: 0; content: ""; background: linear-gradient(180deg,transparent 46%,rgba(8,9,8,.8)); }
.method-feature img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 56%; filter: saturate(.78) contrast(1.04); transition: transform 1s var(--ease),filter .6s ease; }
.method-feature:hover img { transform: scale(1.035); filter: saturate(.92) contrast(1.04); }
.method-feature figcaption { position: absolute; z-index: 1; right: 28px; bottom: 20px; left: 20px; display: flex; justify-content: space-between; gap: 20px; margin: 0; color: rgba(255,255,255,.88); font-size: .7rem; }
.method-feature figcaption span { color: #f1b28c; font-size: .56rem; letter-spacing: .1em; }
.method-steps { position: relative; margin: 0; padding: 0; list-style: none; }
.method-steps::before, .method-steps::after { position: absolute; z-index: 5; top: 25px; left: 17px; width: 1px; content: ""; }
.method-steps::before { bottom: 25px; background: rgba(255,255,255,.18); }
.method-steps::after { height: var(--method-line, 0%); max-height: calc(100% - 50px); background: var(--copper); transition: height .15s linear; }
.method-step { position: relative; isolation: isolate; overflow: hidden; display: grid; grid-template-columns: 70px 1fr 1.2fr; gap: 22px; align-items: center; min-height: 168px; border-bottom: 1px solid rgba(255,255,255,.14); padding-right: 18px; }
.method-step::after { position: absolute; z-index: 1; inset: 0; content: ""; pointer-events: none; background: linear-gradient(90deg,rgba(38,45,40,.14) 0%,rgba(43,51,46,.32) 48%,rgba(48,57,51,.84) 79%,rgba(48,57,51,.95)); }
.method-step__media { position: absolute; z-index: 0; inset: 0 auto 0 0; width: 72%; margin: 0; overflow: hidden; opacity: .24; clip-path: polygon(0 0,100% 0,88% 100%,0 100%); transform: scale(1.045); transform-origin: left center; transition: opacity .45s ease,clip-path .85s var(--ease),transform 1s var(--ease); }
.motion-ready .method-step__media { opacity: 0; clip-path: polygon(0 0,0 0,0 100%,0 100%); }
.motion-ready .method-step.is-visible .method-step__media { opacity: .24; clip-path: polygon(0 0,100% 0,88% 100%,0 100%); }
.method-step:is(:hover,.is-current) .method-step__media { opacity: .62; transform: scale(1); }
.method-step__media img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.68) contrast(1.07); }
.method-step > span,.method-step h3,.method-step > p { position: relative; z-index: 2; }
.method-step > span { z-index: 6; display: grid; width: 35px; height: 35px; place-items: center; border: 1px solid rgba(255,255,255,.42); border-radius: 50%; background: rgba(42,50,45,.76); backdrop-filter: blur(8px); font-size: .56rem; }
.method-step h3 { margin: 0; font-family: var(--serif); font-size: clamp(2.3rem,3.2vw,4rem); font-weight: 400; text-shadow: 0 2px 18px rgba(0,0,0,.22); }
.method-step > p { margin: 0; color: rgba(255,255,255,.72); font-size: .82rem; }

.projects { position: relative; z-index: 0; isolation: isolate; padding-block: 150px; }
.projects::before { position: absolute; z-index: -1; inset: 0 calc(50% - 50vw); content: ""; background: radial-gradient(circle at 86% 14%,rgba(170,67,22,.08),transparent 30rem),linear-gradient(145deg,var(--linen-light),var(--linen)); }
.projects-heading { display: flex; align-items: end; justify-content: space-between; gap: 60px; margin-bottom: 90px; }
.projects-heading h2 { max-width: 950px; font-size: clamp(4rem, 6.4vw, 8rem); }
.projects-note { align-self: end; margin-bottom: 8px; color: var(--muted); font-size: .58rem; letter-spacing: .12em; white-space: nowrap; }
.projects-grid { display: grid; grid-template-columns: 1.35fr .75fr; gap: 8vw 4vw; align-items: start; }
.projects-action { margin-top: 70px; display: flex; justify-content: center; }
.project figure { margin: 0 0 24px; overflow: hidden; background: #ddd; }
.project img { width: 100%; aspect-ratio: 4/5; object-fit: cover; transition: transform 1s var(--ease), filter .6s; }
.project:hover img { transform: scale(1.035); filter: saturate(.8); }
.project--primary { grid-row: span 2; }
.project--primary img { aspect-ratio: 3/4; }
.project span { color: var(--muted); font-size: .59rem; letter-spacing: .08em; }
.project h3 { margin: 12px 0 6px; font-family: var(--serif); font-size: clamp(2.2rem, 3.2vw, 4.4rem); font-weight: 400; line-height: 1; }
.project p { max-width: 600px; color: var(--muted); font-size: .86rem; }

.trust { padding: 120px 0; color: var(--white); background: radial-gradient(circle at 84% 18%,rgba(232,104,42,.16),transparent 28rem),linear-gradient(128deg,#746d62 0%,var(--plaster-dark) 54%,#514f48 100%); }
.trust-grid { display: grid; grid-template-columns: 1.35fr .7fr 1.35fr; gap: 0; }
.trust-grid > div { min-height: 330px; border-right: 1px solid rgba(255,255,255,.18); padding: 38px; }
.trust-grid > div:first-child { padding-left: 0; }
.trust-grid > div:last-child { border-right: 0; }
.trust-intro h2 { font-size: clamp(3.5rem, 5vw, 6.5rem); }
.trust-intro h2 em { color: #f0a274; }
.trust .kicker { color: rgba(255,255,255,.72); }
.trust .kicker::before { background: rgba(255,255,255,.72); }
.trust-area > span { margin-top: 25px; color: rgba(255,255,255,.62); font-size: .58rem; letter-spacing: .08em; }
.trust-area { display: flex; flex-direction: column; justify-content: center; }
.trust-area p { margin: 24px 0 0; font-family: var(--serif); font-size: 1.8rem; line-height: 1.25; }
.service-map { position: relative; min-height: 330px; overflow: hidden; padding: 0 !important; background: #d8d4cb; }
.service-map iframe { display: block; width: 100%; height: 100%; min-height: 330px; border: 0; }

.craft { display: grid; grid-template-columns: .85fr 1.15fr; gap: 10vw; align-items: center; min-height: 100vh; padding-block: 140px; }
.craft-portrait { position: relative; display: grid; height: 650px; place-items: center; border: 1px solid var(--line); color: var(--muted); text-align: center; background: #e8e2d9; }
.craft-frame { position: absolute; inset: 34px; border: 1px solid rgba(23,23,20,.25); }
.craft-line { position: absolute; inset: 18% 11%; border: 1px solid rgba(23,23,20,.18); border-radius: 48% 52% 44% 56%; transform: rotate(-8deg); }
.craft-portrait p { position: relative; z-index: 1; font-family: var(--serif); font-size: 2rem; font-style: italic; }
.craft-portrait--signature { align-content: center; gap: 24px; overflow: hidden; background: radial-gradient(circle at 50% 44%, rgba(232,104,42,.23), transparent 30%), linear-gradient(145deg, #e7dfd2, #f3efe7 58%, #d9d2c9); }
.craft-portrait--signature::before { position: absolute; width: 380px; height: 380px; border: 1px solid rgba(23,23,20,.14); border-radius: 50%; content: ""; transform: translate(-16%, -5%); }
.craft-portrait--signature strong { position: relative; z-index: 1; font-family: var(--sans); font-size: clamp(3rem, 5vw, 5.8rem); font-weight: 700; letter-spacing: -.06em; line-height: .78; text-align: center; }
.craft-portrait--signature strong em { color: var(--copper-dark); font-family: var(--serif); font-weight: 400; }
.craft-portrait--signature p { margin: 0; color: var(--ink); font-size: 1.5rem; }
.craft-portrait--truck { display: block; overflow: hidden; margin: 0; border: 0; background: #20211f; text-align: left; }
.craft-portrait--truck::after { position: absolute; inset: 0; content: ""; pointer-events: none; background: linear-gradient(180deg,transparent 48%,rgba(9,10,9,.8) 100%); }
.craft-portrait--truck img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 42%; filter: saturate(.92) contrast(1.04); transition: transform 1s var(--ease),filter .6s ease; }
.craft-portrait--truck:hover img { transform: scale(1.025); filter: saturate(1) contrast(1.04); }
.craft-portrait--truck figcaption { position: absolute; z-index: 1; right: 30px; bottom: 28px; left: 30px; display: flex; align-items: end; justify-content: space-between; gap: 24px; color: var(--white); }
.craft-portrait--truck figcaption strong { font-family: var(--mono); font-size: .68rem; letter-spacing: .12em; }
.craft-portrait--truck figcaption span { max-width: 12rem; color: rgba(255,255,255,.8); font-family: var(--serif); font-size: 1.35rem; line-height: 1.05; text-align: right; }
.craft-copy h2 { font-size: clamp(4rem, 6vw, 7.3rem); }
.craft-copy .lead { margin-top: 40px; font-family: var(--serif); font-size: clamp(1.5rem, 2.1vw, 2.4rem); line-height: 1.25; }
.craft-copy ul { margin: 30px 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.craft-copy li { border-bottom: 1px solid var(--line); padding: 12px 0; font-size: .83rem; }

.contact { position: relative; overflow: hidden; padding: 150px 0; color: var(--white); background: var(--green); }
.contact::after { position: absolute; right: -10vw; bottom: -38vw; width: 80vw; height: 80vw; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; content: ""; }
.contact-paper { position: absolute; inset: 0; opacity: .12; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='turbulence' baseFrequency='.02' numOctaves='4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E"); }
.contact-inner { position: relative; z-index: 1; display: grid; grid-template-columns: .95fr 1.05fr; gap: 8vw; align-items: start; }
.contact h2 { max-width: 1050px; font-size: clamp(5rem, 8vw, 10rem); }
.contact h2 em { display: block; color: #e9a575; }
.contact-copy > p:nth-of-type(2) { max-width: 630px; margin: 48px 0 32px; font-family: var(--serif); font-size: 1.5rem; }
.contact-direct { display: flex; flex-wrap: wrap; gap: 24px; font-family: var(--mono); font-size: .67rem; }
.contact-direct a { border-bottom: 1px solid rgba(255,255,255,.5); padding-bottom: 4px; }
.contact-form { padding: 42px; border: 1px solid rgba(255,255,255,.2); background: rgba(15,25,23,.38); backdrop-filter: blur(12px); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 20px; }
.form-grid label { display: grid; gap: 8px; }
.form-grid label > span { font-family: var(--mono); font-size: .6rem; letter-spacing: .08em; text-transform: uppercase; }
.form-wide { grid-column: 1 / -1; }
.contact-form input, .contact-form select, .contact-form textarea { width: 100%; border: 0; border-bottom: 1px solid rgba(255,255,255,.35); border-radius: 0; padding: 12px 0; outline: 0; color: var(--white); font: inherit; background: transparent; }
.contact-form select option { color: var(--ink); }
.contact-form textarea { resize: vertical; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color: #e9a575; }
.form-consent { grid-template-columns: auto 1fr; align-items: start; }
.form-consent input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--copper); }
.form-consent span { text-transform: none !important; }
.form-consent a { border-bottom: 1px solid currentColor; }
.form-honeypot { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; clip-path: inset(50%) !important; white-space: nowrap !important; }
.form-note, .form-status { margin: 22px 0 0; color: #bcb8b0; font-size: .72rem; }
.form-status:not(:empty) { border-left: 2px solid #e9a575; padding-left: 12px; color: var(--white); }
.contact-form .button { margin-top: 22px; }
.contact-form .button:disabled { cursor: wait; opacity: .62; }

.footer { padding: 70px 0 24px; color: #aaa69f; background: var(--ink); font-size: .76rem; }
.footer-grid { display: grid; grid-template-columns: 1.3fr .7fr 1fr; gap: 8vw; border-bottom: 1px solid rgba(255,255,255,.12); padding-bottom: 60px; }
.footer-grid > div:not(.footer-brand) { display: flex; flex-direction: column; gap: 8px; }
.footer-grid span { margin-bottom: 16px; color: #77746f; font-size: .58rem; letter-spacing: .1em; }
.footer-brand { display: flex; gap: 20px; align-items: center; color: var(--white); }
.footer-brand img { width: 80px; }
.footer-brand p { margin: 0; }
.footer-bottom { display: flex; justify-content: space-between; padding-top: 24px; color: #706d68; font-family: var(--mono); font-size: .55rem; }

.legal-main { min-height: 100vh; padding: 170px 0 120px; background: linear-gradient(145deg, var(--linen-light), var(--paper) 52%, var(--linen)); }
.legal-hero { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(240px, .65fr); gap: clamp(50px, 9vw, 150px); align-items: end; border-bottom: 1px solid var(--line); padding-bottom: 70px; }
.legal-hero h1 { max-width: 7ch; margin: 0; font-family: var(--serif); font-size: clamp(4.5rem, 9vw, 10rem); font-weight: 400; line-height: .82; letter-spacing: -.045em; }
.legal-hero h1 em { display: block; color: var(--copper-dark); font-weight: 400; }
.legal-hero__intro { max-width: 450px; margin: 0 0 10px; color: var(--ink-soft, #574f46); font-size: .9rem; }
.legal-layout { display: grid; grid-template-columns: minmax(200px, .42fr) minmax(0, 1.58fr); gap: clamp(50px, 10vw, 170px); padding-top: 76px; }
.legal-aside { align-self: start; position: sticky; top: 120px; }
.legal-aside a { display: block; width: fit-content; border-bottom: 1px solid var(--ink); margin-top: 24px; padding-bottom: 5px; font-family: var(--mono); font-size: .65rem; letter-spacing: .08em; text-transform: uppercase; }
.legal-content { display: grid; gap: 0; }
.legal-section { display: grid; grid-template-columns: 70px minmax(0, 1fr); gap: 24px; border-top: 1px solid var(--line); padding: 46px 0 54px; }
.legal-section:first-child { border-top: 0; padding-top: 0; }
.legal-section__number { color: var(--copper-dark); font-family: var(--mono); font-size: .66rem; }
.legal-section h2 { margin: -9px 0 24px; font-family: var(--serif); font-size: clamp(2.3rem, 4vw, 4.8rem); font-weight: 400; line-height: .95; }
.legal-section p { max-width: 850px; margin-bottom: 16px; color: #574f46; }
.legal-section strong { color: var(--ink); }
.legal-section a { border-bottom: 1px solid currentColor; color: var(--copper-dark); }
.legal-note { border-left: 2px solid var(--copper); padding-left: 22px; }

.motion-ready .reveal { opacity: 0; transform: translateY(36px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
.motion-ready .reveal.is-visible { opacity: 1; transform: none; }

@media (max-width: 1020px) {
  :root { --shell: min(100% - 48px, 860px); }
  .header { grid-template-columns: 1fr auto; padding: 0 24px; }
  .desktop-nav, .header-contact { display: none; }
  .menu-button { display: grid; width: 46px; height: 46px; justify-self: end; place-content: center; border: 0; background: transparent; gap: 7px; }
  .menu-button span:not(.sr-only) { display: block; width: 25px; height: 1px; background: currentColor; }
  .mobile-menu { position: fixed; inset: 80px 0 auto; display: flex; flex-direction: column; padding: 28px 24px 38px; color: var(--ink); background: rgba(250,248,243,.97); transform: translateY(-130%); transition: transform .45s var(--ease); }
  .mobile-menu.is-open { transform: translateY(0); }
  .mobile-menu a { border-bottom: 1px solid var(--line); padding: 13px 0; font-family: var(--serif); font-size: 1.6rem; }
  .hero-copy h1 { font-size: clamp(4.5rem, 12vw, 7rem); }
  .hero-signature { position: static; margin: 24px 0 0 15%; }
  .manifest { grid-template-columns: 1fr .45fr; grid-template-areas: "heading metric" "copy copy" "reviews reviews"; }
  .manifest-copy { max-width: 700px; }
  .manifest-reviews { grid-template-columns: minmax(200px,.55fr) minmax(0,1.45fr); }
  .services-intro { grid-template-columns: 1fr 2fr; }
  .services-intro > p:last-child { grid-column: 2; }
  .services-intro__media { width: 52%; opacity: .72; }
  .method-inner { grid-template-columns: 1fr; }
  .method-title { position: relative; top: auto; }
  .method-feature { max-width: 680px; }
  .method-steps { margin-top: 60px; }
  .trust-grid { grid-template-columns: .72fr 1.28fr; }
  .trust-intro { grid-column: 1 / -1; border-right: 0 !important; border-bottom: 1px solid rgba(23,23,20,.15); }
  .trust-area { border-right: 1px solid rgba(23,23,20,.15); }
}

@media (max-width: 700px) {
  :root { --shell: calc(100% - 32px); }
  .header { height: 68px; padding-inline: 14px; }
  .brand img { width: 44px; height: 44px; }
  .brand span { display: none; }
  .mobile-menu { inset-block-start: 68px; }
  .hero { height: 165svh; }
  .hero-sticky { min-height: 620px; }
  .hero-media img { object-position: 52% 55%; }
  .hero-index { top: 92px; right: 16px; max-width: min(270px, 72vw); gap: 10px; font-size: .52rem; }
  .hero-copy { bottom: max(72px, 6vh); }
  .hero-kicker { max-width: 250px; }
  .hero-copy h1 { max-width: 95%; font-size: clamp(3.75rem, 17vw, 5.7rem); line-height: .82; }
  .hero-copy h1 em { margin-left: 0; }
  .hero-signature { margin: 14px 0 0; font-size: 2.15rem; }
  .hero-bottom { grid-template-columns: 1fr; gap: 14px; margin-top: 20px; }
  .hero-bottom > p { max-width: 310px; font-size: .78rem; }
  .hero-actions { flex-wrap: wrap; gap: 18px; }
  .hero-actions .button { min-height: 48px; }
  .hero-actions .arrow-link { font-size: .62rem; }
  .hero-progress { right: 16px; bottom: 14px; left: 16px; }
  .scroll-cue { display: none; }
  .manifest { grid-template-columns: 1fr; grid-template-areas: "heading" "metric" "copy" "reviews"; gap: 42px; min-height: auto; padding-block: 76px 102px; }
  .manifest-heading h2, .services-intro h2, .method-title h2, .projects-heading h2, .trust-intro h2, .craft-copy h2 { font-size: clamp(3.3rem, 14vw, 5rem); }
  .manifest-mark { justify-content: start; padding-left: 26px; }
  .manifest-mark strong { font-size: 8.5rem; }
  .manifest-reviews { grid-template-columns: 1fr; gap: 24px; }
  .manifest-reviews__intro h3 { max-width: 12ch; font-size: 2.7rem; }
  .manifest-reviews__panel, .manifest-reviews__fallback { min-height: 280px; }
  .manifest-reviews__widget { height: 390px; }
  .services { padding-block: 95px; }
  .services-intro { display: block; margin-bottom: 60px; }
  .services-intro > p:last-child { margin-top: 30px; }
  .services::before { display: none; }
  .services-intro__media { position: relative; top: auto; bottom: auto; left: auto; width: 100%; height: 260px; margin-top: 34px; clip-path: polygon(0 0,100% 0,88% 100%,0 100%); opacity: 1; }
  .service-card { grid-template-columns: 36px 1fr 44px; gap: 12px; min-height: 190px; }
  .service-card > p { grid-column: 2 / -1; }
  .service-card h3 { font-size: 2.8rem; }
  .service-visual { display: none; }
  .method { padding-block: 88px; }
  .method-title h2 { max-width: 8ch; }
  .method-lead { font-size: 1.3rem; }
  .method-feature { max-width: none; aspect-ratio: 16/10; }
  .method-feature figcaption { display: block; }
  .method-feature figcaption span { display: block; margin-bottom: 6px; }
  .method-step { grid-template-columns: 46px 1fr; gap: 10px; min-height: 220px; padding: 28px 8px; }
  .method-step > p { grid-column: 2; max-width: 280px; }
  .method-step__media { width: 100%; opacity: .18; clip-path: polygon(0 0,100% 0,92% 100%,0 100%); }
  .method-step::after { background: linear-gradient(90deg,rgba(12,14,12,.4),rgba(12,14,12,.82) 82%); }
  .method-step.is-current .method-step__media { opacity: .5; }
  .method-steps::before, .method-steps::after { left: 17px; }
  .projects { padding-block: 100px; }
  .projects-heading { display: block; margin-bottom: 55px; }
  .projects-heading .arrow-link { margin-top: 30px; }
  .projects-note { display: inline-block; margin-top: 24px; white-space: normal; }
  .projects-grid { grid-template-columns: 1fr; gap: 65px; }
  .project--primary { grid-row: auto; }
  .project img, .project--primary img { aspect-ratio: 4/5; }
  .trust { padding-block: 80px; }
  .trust-grid { grid-template-columns: 1fr; }
  .trust-grid > div { min-height: 240px; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.18); padding: 34px 0; }
  .trust-intro { grid-column: auto; }
  .trust-grid > div:last-child { min-height: 390px; border-bottom: 0; padding: 0; }
  .service-map iframe { min-height: 390px; }
  .craft { grid-template-columns: 1fr; gap: 65px; min-height: auto; padding-block: 100px; }
  .craft-portrait { height: 440px; }
  .contact { padding-block: 100px; }
  .contact h2 { font-size: clamp(4.4rem, 19vw, 6.6rem); line-height: .84; }
  .contact-inner { grid-template-columns: 1fr; gap: 54px; }
  .contact-copy > p:nth-of-type(2) { font-size: 1.25rem; }
  .contact-form { padding: 28px 20px; }
  .form-grid { grid-template-columns: 1fr; }
  .form-wide { grid-column: auto; }
  .footer-grid { grid-template-columns: 1fr; gap: 42px; }
  .footer-bottom { flex-direction: column; gap: 8px; }
  .legal-main { padding: 120px 0 80px; }
  .legal-hero, .legal-layout { grid-template-columns: 1fr; }
  .legal-hero { gap: 34px; padding-bottom: 50px; }
  .legal-aside { position: static; }
  .legal-section { grid-template-columns: 38px minmax(0, 1fr); gap: 12px; padding: 36px 0 42px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition-duration: .01ms !important; }
  .hero { height: 100svh; }
  .hero-photo { opacity: 1 !important; }
  .hero-sketch, .hero-paper { opacity: 0 !important; }
  .reveal { opacity: 1; transform: none; }
  .motion-ready .method-step__media { opacity: .24; clip-path: polygon(0 0,100% 0,88% 100%,0 100%); transform: none; }
}
