:root {
  --ink: #2b241d;
  --ink-deep: #1c1712;
  --clay: #b5602c;
  --clay-light: #e2a468;
  --plaster: #e8ddc7;
  --paper: #f7f2e6;
  --cream: #fdfaf3;
  --rust: #8a3b28;
  --sage: #737a58;
  --sans: "Work Sans", sans-serif;
  --serif: "Fraunces", Georgia, serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); overflow-x: hidden; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
.grain { pointer-events: none; position: fixed; inset: 0; opacity: .16; z-index: 20; 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='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E"); }
.section-pad { padding-left: clamp(24px, 5.4vw, 104px); padding-right: clamp(24px, 5.4vw, 104px); }
.eyebrow { margin: 0 0 16px; display:flex; align-items:center; gap:9px; font: 500 13px/1.3 var(--sans); color: var(--clay); }
.eyebrow:before { content:""; width:20px; height:1px; flex:none; background:currentColor; opacity:.75; }

.topbar { position: absolute; z-index: 10; top: 0; left: 0; right: 0; height: 102px; padding: 25px clamp(24px, 5.4vw, 104px); display: flex; align-items: center; justify-content: space-between; color: var(--cream); }
.wordmark { display: flex; align-items: center; gap: 9px; }
.wordmark-a { color: var(--clay-light); font: 600 49px/.66 var(--serif); font-style: italic; }
.wordmark b, .wordmark em { display: block; font-style: normal; line-height: 1; }
.wordmark b { font: 600 15px/1 var(--serif); letter-spacing: .06em; }
.wordmark em { margin-top: 4px; font: 500 10px/1 var(--sans); letter-spacing: .1em; font-style:normal; }
.nav-links { display: flex; gap: clamp(18px, 3vw, 49px); margin-left: 90px; }
.nav-links a { font-size: 14px; position: relative; }
.nav-phone { color:var(--clay-light) !important; font-weight:600; }
.nav-links a:after { content:""; position:absolute; width:0; height:1px; bottom:-7px; left:0; background: var(--clay-light); transition: width .25s; }.nav-links a:hover:after { width:100%; }
.nav-cta { border: 1px solid rgba(255,255,255,.45); border-radius: 50px; padding: 12px 14px 12px 18px; display: flex; gap: 13px; align-items: center; font: 500 13px var(--sans); transition: background .25s, color .25s; }.nav-cta:hover { background:var(--cream); color:var(--ink); }
.nav-cta i { font-size: 16px; font-style: normal; color:var(--clay-light); }
.menu-toggle { display: none; background: none; border: 0; padding: 8px; }.menu-toggle span { display:block; width:23px; height:1px; background:#fff; margin:5px; transition:transform .25s ease, opacity .2s ease; }
.menu-toggle.active span:first-child { transform:translateY(6px) rotate(45deg); }
.menu-toggle.active span:last-child { transform:translateY(-6px) rotate(-45deg); }

.hero { min-height: 790px; position: relative; padding-top: 195px; padding-bottom: 80px; color: var(--cream); background: var(--ink-deep); overflow: hidden; display: grid; grid-template-columns: minmax(330px, .94fr) minmax(400px, 1.25fr) 180px; column-gap: clamp(28px, 4vw, 80px); }
.hero:before { content:""; position:absolute; inset:0; background: linear-gradient(112deg, rgba(23,18,14,1) 2%,rgba(23,18,14,.85) 42%,rgba(23,18,14,.26) 81%); z-index:1; pointer-events:none; }
.hero:after { content:"A"; font: 600 clamp(410px, 49vw, 760px)/.7 var(--serif); font-style: italic; color: rgba(181,96,44,.1); position:absolute; right: -40px; bottom: -75px; z-index:0; }
.hero-visual, .hero-aside, .hero-bottom { z-index: 2; }
.hero-copy { position:relative; z-index: 3; align-self: center; max-width: 560px; }
.hero-copy .eyebrow { color:var(--clay-light); }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 27px; font: 600 clamp(50px, 5.2vw, 84px)/1.02 var(--serif); letter-spacing:-.03em; }
@media (max-width:860px) { h1 { text-shadow:0 6px 28px rgba(10,7,4,.55); } .hero-intro { text-shadow:0 2px 14px rgba(10,7,4,.5); } }
.hero-intro { max-width: 380px; color:#dcd3c6; font-size:15px; line-height:1.65; }
.hero-quote { margin-top:34px; display:flex; gap:12px; max-width:460px; }.hero-quote input { flex:1; min-width:0; height:52px; padding:0 20px; border-radius:100px; background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.3); color:var(--cream); font:400 14px var(--sans); }.hero-quote .button { flex:none; height:52px; }.hero-quote input::placeholder { color:rgba(255,255,255,.62); }.hero-quote input:focus { outline:none; border-color:var(--clay-light); background:rgba(255,255,255,.15); }.hero-quote-note { margin:12px 0 0; color:#cfc4b2; font-size:12px; }.hero-secondary { display:inline-block; margin-top:16px; color:#cfc4b2; font-size:13px; text-decoration:underline; text-underline-offset:3px; }.hero-secondary span { margin-left:4px; }.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }.button { display:inline-flex; align-items:center; justify-content:space-between; gap:29px; padding:16px 18px 16px 21px; border:0; cursor:pointer; font:500 13px var(--sans); transition:transform .22s, background .22s; }.button:hover { transform:translateY(-3px); }.button span { font-size:17px; }.button-gold { color:var(--ink); background:var(--clay-light); }.text-link { display:inline-flex; align-items:center; gap:9px; font:500 13px var(--sans); }.text-link span { color:var(--clay-light); font-size:16px; transition: transform .2s; }.text-link:hover span { transform: translate(3px, 3px); }
.hero-visual { align-self: stretch; min-height:515px; position:relative; overflow:hidden; border-radius: 240px 240px 0 0; margin-top:-45px; }.hero-photo { position:absolute; inset:0; background: url("assets/cannes-villa-hero.jpg") 66% center/cover no-repeat; filter:saturate(.62) sepia(.12) contrast(1.05); transform:scale(1.03); }.hero-visual:after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(20,14,9,.08),rgba(20,14,9,.42)); }
.hero-sun { position:absolute; z-index:1; width:210px; height:210px; border-radius:50%; background:radial-gradient(circle,#f1cf99 0%,#d29a54 30%,rgba(194,150,85,.2) 55%,transparent 70%); top: -48px; right: -48px; mix-blend-mode:screen; }.photo-note { position:absolute; z-index:3; left:31px; bottom:31px; margin:0; font:500 13px/1.5 var(--serif); font-style:italic; }.frame-label { position:absolute; z-index:3; right:22px; bottom:27px; padding:10px; border:1px solid rgba(255,255,255,.65); font:500 11px/1.35 var(--sans); letter-spacing:.06em; }.hero-arc { position:absolute; z-index:3; bottom:-32px; left:-45px; width:150px; height:150px; border:1px solid var(--clay-light); border-radius:50%; }
.hero-aside { align-self:end; padding-bottom:60px; color:#d8cdbc; }.aside-stamp { color:var(--clay-light); padding:11px 10px; width:max-content; border:1px solid rgba(226,164,104,.75); margin-bottom:23px; font:500 11px/1.45 var(--sans); letter-spacing:.06em; }.hero-aside p { font-size:13px; line-height:1.55; }.hero-aside a { display:block; margin-top:18px; font:500 13px var(--sans); color:var(--cream); }.hero-aside a span{ margin-left:7px; color:var(--clay-light); font-size:15px; }
.trust-badges { display:flex; flex-wrap:wrap; gap:10px; margin-top:26px; }
.hero-aside a.trust-badge--link, .trust-badge { display:inline-flex; align-items:center; gap:7px; margin-top:0; padding:9px 13px; border:1px solid rgba(226,164,104,.4); border-radius:100px; font:500 12px var(--sans); color:#e7ddcc; }
.trust-badge svg { width:15px; height:15px; flex:none; fill:none; stroke:var(--clay-light); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
a.trust-badge--link { transition:background .2s, color .2s; }
a.trust-badge--link:hover { background:var(--clay-light); color:var(--ink); }
a.trust-badge--link:hover svg { stroke:var(--ink); }
.hero-bottom { position:absolute; left:clamp(24px,5.4vw,104px); right:clamp(24px,5.4vw,104px); bottom:28px; padding-top:16px; border-top:1px solid rgba(255,255,255,.22); display:flex; align-items:center; gap:15px; font:500 12px var(--sans); color:#d3c8b8; }.hero-bottom i { width:3px; height:3px; border-radius:50%; background:var(--clay-light); }

.services { background:var(--cream); padding:120px 0 0; }.services-heading { display:grid; grid-template-columns: .85fr 1.4fr .65fr; align-items:start; gap:30px; margin-bottom:74px; }.services-heading .eyebrow { margin-top:11px; }.services-heading h2, .signature h2, .zone h2, .contact h2 { margin:0; font:600 clamp(38px,4.4vw,64px)/1.05 var(--serif); letter-spacing:-.02em; }.services-heading > p:last-child { font-size:15px; line-height:1.6; max-width:255px; padding-top:10px; }
.service-list { display:grid; grid-template-columns:repeat(3,1fr); }.service-card { min-height:464px; position:relative; padding:29px clamp(22px,3vw,52px); overflow:hidden; display:flex; flex-direction:column; }.service-card--navy { color:var(--cream); background:var(--ink); }.service-card--sand { color:var(--ink); background:var(--plaster); }.service-card--gold { color:var(--cream); background:var(--sage); }.service-number { font:500 13px var(--sans); position:relative; z-index:1; }.service-card-content { position:relative; z-index:1; margin-top:auto; }.service-card .eyebrow { font-size:12px; margin-bottom:13px; color:inherit; opacity:.8; }.service-card .eyebrow:before{ opacity:.6; }.service-card h3 { font:600 clamp(30px,3.2vw,46px)/1.05 var(--serif); letter-spacing:-.015em; margin-bottom:16px; }.service-card-content > p:not(.eyebrow) { max-width:294px; font-size:13px; line-height:1.6; opacity:.88; }.service-arrow { display:block; margin-top:24px; font:26px var(--serif); transition:transform .3s; }.service-card:hover .service-arrow { transform:translate(6px,-6px); }.card-line-art { position:absolute; right:-55px; top:36px; width:210px; height:210px; border:1px solid currentColor; opacity:.24; }.interior-art { border-radius:100% 0 0 0; transform:rotate(45deg); }.interior-art:after { content:""; position:absolute; width:100px; height:100px; bottom:-1px; left:-1px; border-top:1px solid; border-right:1px solid; }.facade-art { border-radius:50%; top:15px; right:-20px; }.facade-art:after { content:""; position:absolute; inset:34px; border:1px solid; border-radius:50%; }.roof-art { transform:rotate(45deg); border-radius:32px 0 32px 0; }.roof-art:after { content:""; position:absolute; inset:33px; border-left:1px solid; border-bottom:1px solid; }

.signature { background: var(--paper); min-height:720px; padding-top:136px; padding-bottom:125px; display:grid; grid-template-columns:1.1fr .8fr .75fr; gap:clamp(35px,7vw,135px); }.signature-copy { max-width:360px; margin:31px 0; font-size:16px; line-height:1.7; }.dark-link { border-bottom:1px solid rgba(43,36,29,.32); padding-bottom:8px; font-size:14px; }.dark-link span { color:var(--clay); }.signature-center { padding-top:36px; }.paint-samples { height:352px; position:relative; }.sample { position:absolute; z-index:1; width:47%; height:44%; padding:16px; display:flex; flex-direction:column; justify-content:space-between; box-shadow:0 16px 32px rgba(20,15,8,.14); transition:transform .3s, z-index 0s; }.sample:hover { transform:translateY(-9px) rotate(0deg); z-index:5; }.sample span { font:12px var(--sans); letter-spacing:.02em; opacity:.75; }.sample b { font:500 clamp(19px,2vw,27px)/1.05 var(--serif); }.sample-1 { left:0; top:0; background:#efe7d6; color:var(--ink); transform:rotate(-8deg); }.sample-2 { left:53%; top:14%; background:#c9a879; color:var(--ink); transform:rotate(6deg); }.sample-3 { left:26%; top:56%; background:#2c5164; color:var(--cream); transform:rotate(-3deg); }.sample-caption { margin:24px 0 0 10px; font:500 17px/1.45 var(--serif); font-style:italic; }.signature-right { align-self:center; }.commitment { display:grid; grid-template-columns:30px 1fr; gap:15px; padding:25px 0; border-top:1px solid rgba(43,36,29,.2); }.commitment:last-child { border-bottom:1px solid rgba(43,36,29,.2); }.commitment span { color:var(--clay); font:14px var(--sans); }.commitment p { margin:0; font-size:14px; line-height:1.6; }

.zone { background:var(--ink); color:var(--cream); padding:122px 0 0; overflow:hidden; }.zone-intro { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:58px; }.zone .eyebrow { color:var(--clay-light); }.zone-intro > p { width:320px; margin-bottom:4px; color:#cdc3b3; font-size:15px; line-height:1.6; }.map-wrap { position:relative; margin:0 clamp(24px,5.4vw,104px); border:1px solid rgba(255,255,255,.2); overflow:hidden; background:var(--ink-deep); }.area-map { display:block; width:100%; min-height:400px; }.map-land-shadow { fill:#bb9456; opacity:.15; filter:url(#soft); }.map-land { fill:#ddcfb2; }.coastline { fill:none; stroke:#e5bc72; stroke-width:2; }.road { fill:none; stroke:#9b8b66; stroke-width:1; stroke-dasharray:2 4; opacity:.7; }.road-main { stroke:#b39155; stroke-width:1.5; stroke-dasharray:none; }.radius-fill { fill:#cda866; opacity:.06; }.radius-line { fill:none; stroke:#c9a05b; stroke-width:1; stroke-dasharray:4 7; opacity:.8; }.radius-line.second { opacity:.36; }.route { fill:none; stroke:#eed39b; stroke-width:1; stroke-dasharray:3 5; opacity:.65; }.pin { cursor:pointer; }.pin circle { fill:var(--rust); stroke:var(--cream); stroke-width:1.5; transition:r .2s; }.pin text { fill:var(--cream); font:600 13px var(--sans); }.pin .distance { font-size:10px; fill:#cbbfa8; }.pin:hover circle { r:9; }.pin.featured circle:first-child { fill:rgba(181,96,44,.24); stroke:var(--clay-light); stroke-width:1; }.pin.featured circle:nth-child(2) { fill:var(--rust); stroke:var(--cream); stroke-width:2; }.pin.featured text { fill:var(--cream); font-size:16px; text-anchor:middle; }.pin.featured .distance { font-size:10px; fill:var(--clay-light); text-anchor:middle; }.sea-label { fill:#7290a0; font:500 12px var(--sans); letter-spacing:.14em; }.map-scale { fill:#a89b86; font:500 11px var(--sans); }.scale-line { stroke:#a89b86; stroke-width:1; }.map-legend { position:absolute; z-index:2; right:24px; top:24px; padding:12px 13px; background:rgba(23,18,14,.75); border:1px solid rgba(255,255,255,.18); font:500 11px var(--sans); }.map-legend b { color:var(--clay-light); margin-left:8px; }.legend-dot { width:6px; height:6px; border:1px solid var(--clay-light); display:inline-block; border-radius:50%; margin-right:6px; }.map-status { position:absolute; left:24px; bottom:24px; max-width:275px; padding:16px; background:rgba(23,18,14,.88); border-left:2px solid var(--clay); }.map-status b { display:block; color:var(--clay-light); font:500 18px var(--serif); }.map-status span { display:block; margin-top:5px; color:#e1d8c8; font-size:12px; line-height:1.4; }.map-hint { display:none; margin:10px 24px 0; color:#a89b86; font-size:12px; }.zone-cities { display:flex; align-items:center; gap:26px; min-height:93px; white-space:nowrap; overflow:auto; scrollbar-width:none; }.zone-cities::-webkit-scrollbar { display:none; }.zone-cities span { color:#d8cdbc; font:500 13px var(--sans); }.zone-cities span:before { content:"·"; color:var(--clay-light); margin-right:20px; }

.contact { position:relative; color:var(--ink); background:var(--plaster); padding-top:123px; padding-bottom:130px; overflow:hidden; }.contact:before { content:""; width:500px; height:500px; border:1px solid rgba(43,36,29,.15); border-radius:50%; position:absolute; right:-190px; top:-130px; }.contact-top { display:flex; justify-content:space-between; align-items:flex-start; }.contact-top .eyebrow { color:var(--clay); }.contact-pre { max-width:290px; font:500 17px/1.45 var(--serif); font-style:italic; color:#5c5240; }.contact-pre a { text-decoration:underline; text-underline-offset:3px; color:var(--clay); }.contact-main { display:grid; grid-template-columns:1fr 1fr; gap:11vw; align-items:center; margin-top:56px; }.contact h2 { margin:0; font-size:clamp(52px,7vw,104px); color:var(--ink); }.contact h2 em { font-style:italic; font-weight:500; }.contact-cta { max-width:430px; }.contact-cta p:first-child { margin:0 0 26px; font-size:16px; line-height:1.65; color:#5c5240; }.button-light { color:var(--cream); background:var(--ink); }.button-light:hover { background:var(--rust); }.contact-cta .form-note { margin:16px 0 0; min-height:18px; color:#6e6650; font-size:12px; }.contact-orbit { pointer-events:none; position:absolute; bottom:25px; right:40px; width:100px; height:100px; border:1px solid rgba(43,36,29,.22); border-radius:50%; animation:spin 18s linear infinite; }.contact-orbit span { position:absolute; width:220px; left:-59px; top:42px; color:rgba(43,36,29,.5); font:500 11px var(--sans); letter-spacing:.08em; white-space:nowrap; }
@keyframes spin { to { transform:rotate(360deg); } }
.footer { display:flex; align-items:end; justify-content:space-between; padding-top:38px; padding-bottom:38px; background:var(--ink-deep); color:var(--cream); }.footer-brand { display:flex; gap:11px; align-items:center; }.footer-brand .wordmark-a { font-size:53px; }.footer-brand b { display:block; color:var(--clay-light); font:600 17px var(--serif); letter-spacing:.04em; }.footer-brand p { margin:6px 0 0; font:500 10px var(--sans); letter-spacing:.06em; }.footer-legal { letter-spacing:normal !important; opacity:.7; }.footer-legal a { text-decoration:underline; text-underline-offset:2px; }.footer > p { margin:0; color:#c9bda9; font:500 14px/1.45 var(--serif); font-style:italic; }.back-top { padding-bottom:7px; border-bottom:1px solid rgba(255,255,255,.4); font:500 13px var(--sans); }.back-top span { color:var(--clay-light); margin-left:5px; font-size:16px; }
.reveal { opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }.reveal.visible { opacity:1; transform:none; }.delay-1 { transition-delay:.1s; }.delay-2 { transition-delay:.2s; }

.quick-quote { position:relative; z-index:5; overflow:hidden; margin:0; padding:86px clamp(24px,5.4vw,104px) 96px; background:var(--plaster); }.quote-card { position:relative; z-index:2; max-width:820px; margin:0 auto; padding:clamp(36px,5vw,60px); color:var(--ink); background:var(--cream); box-shadow:0 24px 60px rgba(28,22,15,.16); }.quick-quote .eyebrow { color:var(--clay); margin-bottom:13px; }.quick-quote h2 { margin:0 0 14px; font:600 clamp(32px,3.6vw,46px)/1.08 var(--serif); letter-spacing:-.015em; }.quick-quote h2 em { font-style:italic; font-weight:500; }.quick-quote-intro { margin-bottom:32px; padding-bottom:28px; border-bottom:1px solid rgba(43,36,29,.15); }.quick-quote-intro p { margin:0; max-width:480px; font-size:15px; line-height:1.6; color:#6b6249; }.quick-quote-intro p a { color:var(--clay); font-weight:600; text-decoration:underline; text-underline-offset:3px; }.quick-form { display:block; }.quick-form-row { display:grid; grid-template-columns:1fr 1fr; gap:19px; margin-bottom:16px; }.quick-form-full { display:block; margin-bottom:16px; }.quick-form label { display:block; padding-bottom:9px; border-bottom:1px solid rgba(43,36,29,.35); color:var(--clay); font:600 12px var(--sans); }.quick-form input, .quick-form select, .quick-form textarea { display:block; width:100%; padding:8px 0 0; border:0; outline:0; color:var(--ink); background:transparent; font:400 15px var(--sans); resize:vertical; }.quick-form textarea { min-height:52px; }.quick-form input::placeholder, .quick-form textarea::placeholder { color:#8a8065; }.quick-form select { cursor:pointer; }.hp-field { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }.button-quote { width:100%; justify-content:center; margin-top:8px; padding:19px 24px; color:var(--cream); background:var(--clay); font:600 15px var(--sans); transition:transform .22s, background .22s; }.button-quote:hover { background:var(--rust); }.button-quote:disabled { opacity:.65; cursor:default; transform:none; }.quick-form .form-note { margin:16px 0 0; text-align:center; color:#8a8065; font-size:12px; line-height:1.5; }.quote-orbit { pointer-events:none; position:absolute; z-index:1; bottom:36px; right:clamp(24px,5.4vw,104px); width:96px; height:96px; border:1px solid rgba(43,36,29,.22); border-radius:50%; animation:spin 18s linear infinite; }.quote-orbit span { position:absolute; width:210px; left:-57px; top:40px; color:rgba(43,36,29,.4); font:500 11px var(--sans); letter-spacing:.08em; white-space:nowrap; }

.realizations { padding-top:129px; padding-bottom:128px; background:#efe6d5; }.realizations-intro { display:flex; justify-content:space-between; align-items:end; gap:30px; margin-bottom:56px; }.realizations .eyebrow, .work-list .eyebrow, .reviews .eyebrow { color:var(--clay); }.realizations h2, .work-list h2, .reviews h2 { margin:0; font:600 clamp(38px,4.4vw,64px)/1.05 var(--serif); letter-spacing:-.02em; }.realizations-intro > p { max-width:305px; margin:0 0 4px; font-size:15px; line-height:1.6; }.project-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(20px,3vw,36px); align-items:start; }.project-card { margin:0; background:var(--cream); box-shadow:0 10px 22px rgba(43,36,29,.08); overflow:hidden; }.project-card img { display:block; width:100%; aspect-ratio:1.5; object-fit:cover; filter:saturate(.94); transition:filter .3s,transform .5s; }.project-card:hover img { filter:saturate(1.05); transform:scale(1.015); }.project-caption { padding:18px 21px 22px; }.project-caption span { display:block; color:var(--clay); font:600 13px var(--sans); margin-bottom:5px; }.project-caption p { margin:0; color:#54493a; font:500 16px/1.4 var(--serif); }

.work-list { display:grid; grid-template-columns:.84fr 1.44fr; gap:7vw; padding-top:116px; padding-bottom:118px; background:var(--cream); }.work-list-items { display:flex; flex-wrap:wrap; align-content:flex-start; gap:11px; padding-top:29px; }.work-list-items span { padding:11px 13px; border:1px solid #d9cfb7; border-radius:100px; color:#544a37; font-size:13px; line-height:1.2; }.work-list-items span:nth-child(3n) { color:var(--sage); border-color:#b7b79a; }

.reviews { padding-top:121px; padding-bottom:118px; color:var(--cream); background:var(--ink); }.reviews-heading { display:grid; grid-template-columns:1.15fr .72fr; gap:8vw; align-items:end; }.reviews-heading .eyebrow { grid-column:1/-1; margin-bottom:0; color:var(--clay-light); }.reviews-heading > p { max-width:245px; margin:0 0 5px; color:#d6cdbd; font-size:15px; line-height:1.6; }.review-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:52px; }.review-card { min-height:250px; margin:0; padding:27px; display:flex; flex-direction:column; background:rgba(255,255,255,.06); border-top:1px solid rgba(255,255,255,.3); }.stars { color:var(--clay-light); font-size:13px; letter-spacing:4px; }.review-card blockquote { margin:25px 0 auto; font:500 20px/1.35 var(--serif); letter-spacing:-.01em; }.review-card figcaption { margin-top:25px; color:#c9bfab; font:500 12px var(--sans); }.reviews-note { margin:23px 0 0; color:#bdb29c; font-size:11px; font-style:italic; }

@media (max-width: 860px) {
  .topbar { height:86px; }.nav-links, .nav-cta { display:none; }.menu-toggle { display:block; z-index:12; }.nav-links.open { display:flex; position:absolute; top:0; right:0; width:min(280px,80vw); height:100vh; background:var(--ink); flex-direction:column; gap:31px; padding:115px 35px; font-size:17px; }.nav-links.open a:after { display:none; }
  .hero { grid-template-columns:1fr; min-height:0; padding-top:150px; padding-bottom:44px; }.hero:before { background:linear-gradient(180deg,rgba(23,18,14,.5),rgba(23,18,14,.75)); }.hero-copy { align-self:start; }.hero-visual { position:relative; width:100%; height:380px; min-height:0; margin:34px 0 0; opacity:1; border-radius:28px; }.hero-aside { display:none; }.hero-bottom { position:static; left:auto; right:auto; bottom:auto; margin-top:32px; gap:9px; font-size:10px; }.hero-bottom span:nth-of-type(3), .hero-bottom i:nth-of-type(2) { display:none; }
  .services-heading { grid-template-columns:1fr 1fr; }.services-heading .eyebrow { grid-column:1/-1; }.services-heading > p:last-child { grid-column:2; }
  .service-list { grid-template-columns:1fr; }.service-card { min-height:350px; }.card-line-art { width:170px; height:170px; }
  .signature { grid-template-columns:1fr 1fr; }.signature-right { grid-column:1/-1; display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }.commitment { display:block; padding:18px 0; }.commitment p { margin-top:10px; }
  .zone-intro { display:block; }.zone-intro > p { margin-top:28px; width:auto; }.map-wrap { margin:0 24px; overflow-x:auto; -webkit-overflow-scrolling:touch; }.area-map { width:700px; min-height:0; }.map-legend { right:14px; }.map-status { left:14px; bottom:14px; }.map-hint { display:block; }
  .contact-main { gap:7vw; }.footer > p { display:none; }
}
@media (max-width: 560px) {
  .section-pad { padding-left:24px; padding-right:24px; }.hero { min-height:0; padding-top:140px; }.hero-visual { width:100%; height:300px; margin-top:28px; }.hero-copy { max-width:330px; }.hero h1 { font-size:46px; }.hero-intro { font-size:13px; max-width:285px; }.hero-quote { flex-direction:column; max-width:none; margin-top:27px; }.hero-quote .button { justify-content:center; }.hero-bottom { left:24px; right:24px; }.services { padding-top:84px; }.services-heading { display:block; margin-bottom:47px; }.services-heading h2 { font-size:42px; }.services-heading > p:last-child { padding-top:25px; }.service-card { min-height:330px; }.signature { padding-top:82px; padding-bottom:80px; grid-template-columns:1fr; }.signature h2 { font-size:44px; }.signature-center { padding-top:10px; }.signature-right { display:block; }.commitment { display:grid; grid-template-columns:30px 1fr; }.commitment p { margin-top:0; }.zone { padding-top:84px; }.zone h2 { font-size:40px; }.area-map { width:640px; }.map-legend { display:none; }.zone-cities { min-height:74px; }.contact { padding-top:84px; padding-bottom:93px; }.contact-top { display:block; }.contact-pre { margin-top:28px; }.contact-main { display:block; margin-top:36px; }.contact h2 { font-size:62px; margin-bottom:35px; }.contact-orbit { display:none; }.footer { align-items:center; }.footer-brand p { font-size:7px; }.back-top { font-size:11px; white-space:nowrap; }
}
@media (max-width:860px) { .quote-card { padding:32px 28px; }.realizations-intro { display:block; }.realizations-intro > p { margin-top:27px; }.work-list { grid-template-columns:1fr; gap:22px; }.work-list-items { padding-top:0; }.reviews-heading { grid-template-columns:1fr 1fr; }.reviews-heading .eyebrow { grid-column:1/-1; }.review-grid { gap:12px; }.review-card { padding:20px; }.review-card blockquote { font-size:18px; } }
@media (max-width:560px) { .quick-quote { padding:64px 24px 70px; }.quote-orbit { display:none; }.quote-card { padding:26px 20px; }.quick-quote h2 { font-size:34px; }.quick-form-row { grid-template-columns:1fr; gap:16px; }.realizations { padding-top:82px; padding-bottom:78px; }.realizations h2, .work-list h2, .reviews h2 { font-size:40px; }.project-grid { grid-template-columns:1fr; }.work-list { padding-top:79px; padding-bottom:80px; }.reviews { padding-top:81px; padding-bottom:78px; }.reviews-heading { display:block; }.reviews-heading > p { margin-top:24px; }.review-grid { grid-template-columns:1fr; margin-top:34px; }.review-card { min-height:0; }.review-card blockquote { font-size:19px; }.reviews-note { font-size:10px; } }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .reveal { transition:none; opacity:1; transform:none; }
  .contact-orbit { animation:none; }
}
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline:2px solid var(--clay); outline-offset:2px; }
body.menu-open { overflow:hidden; }
.float-cta { position:fixed; right:22px; bottom:22px; z-index:50; display:flex; align-items:center; gap:10px; padding:15px 22px; border-radius:100px; background:var(--clay); color:var(--cream); font:600 13px var(--sans); box-shadow:0 14px 30px rgba(20,15,8,.35); opacity:0; transform:translateY(14px); pointer-events:none; transition:opacity .25s ease, transform .25s ease, background .2s; }
.float-cta.visible { opacity:1; transform:none; pointer-events:auto; }
.float-cta:hover { background:var(--rust); transform:translateY(-3px); }
.float-cta span { font-size:16px; }
@media (max-width:560px) { .float-cta { right:16px; bottom:16px; padding:13px 18px; font-size:12px; } }
