@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Newsreader:opsz,wght@6..72,400;6..72,500&display=swap");

:root {
  --accent: #087db5;
  --accent-deep: #075b80;
  --accent-soft: #d7edf7;
  --cream: #f4efe5;
  --paper: #fbf8f2;
  --ink: #202322;
  --muted: #606461;
  --line: rgba(32,35,34,.16);
  --charcoal: #171a19;
  --copper: #a76849;
  --serif: "Newsreader", Georgia, "Times New Roman", serif;
  --sans: "DM Sans", "Segoe UI", Arial, sans-serif;
  color-scheme: light;
  background: var(--paper);
}
html[data-theme="dark"] {
  --paper: #171a19;
  --cream: #202422;
  --ink: #f3eee5;
  --muted: #b9bdb8;
  --line: rgba(255,255,255,.16);
  --accent-soft: color-mix(in srgb, var(--accent) 22%, #151918);
  color-scheme: dark;
}
html[data-accent="copper"] { --accent:#a76849;--accent-deep:#74442f;--accent-soft:#ead9cf; }
html[data-accent="teal"] { --accent:#387f7a;--accent-deep:#245b57;--accent-soft:#d5e6e4; }
html[data-accent="slate"] { --accent:#65798a;--accent-deep:#455765;--accent-soft:#dbe1e6; }
html[data-accent="brass"] { --accent:#a5864d;--accent-deep:#735c31;--accent-soft:#eee6d4; }
html[data-accent="sage"] { --accent:#73866a;--accent-deep:#526049;--accent-soft:#e0e7dc; }
html[data-accent="navy"] { --accent:#315f7d;--accent-deep:#213f54;--accent-soft:#d7e3ea; }
html[data-accent="oxblood"] { --accent:#855562;--accent-deep:#5e3943;--accent-soft:#eadce0; }
html[data-accent="ochre"] { --accent:#b37736;--accent-deep:#7d5022;--accent-soft:#f0e2d0; }
html[data-accent="forest"] { --accent:#416b5a;--accent-deep:#29483c;--accent-soft:#d8e5df; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; overflow-x:clip; }
body { margin:0; min-width:320px; background:var(--paper); color:var(--ink); font-family:var(--sans); font-size:16px; line-height:1.65; overflow-x:clip; }
body.menu-open { overflow:hidden; }
img { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
button,input,select,textarea { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
button { color:inherit; }
:focus-visible { outline:3px solid color-mix(in srgb,var(--accent) 75%,white); outline-offset: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; }
.skip-link { position:fixed;z-index:9999;left:1rem;top:1rem;padding:.8rem 1rem;background:var(--paper);color:var(--ink);transform:translateY(-160%); }
.skip-link:focus { transform:none; }
.shell { width:min(1240px,calc(100% - 8vw)); margin-inline:auto; }
.section { padding:clamp(5rem,9vw,9rem) 0; }
.section-cream { background:var(--cream); }
.narrow { width:min(800px,100%); margin-inline:auto; text-align:center; }
.eyebrow { margin:0 0 1rem; color:var(--accent); font-size:.72rem; font-weight:700; letter-spacing:.18em; line-height:1.4; text-transform:uppercase; }
h1,h2,h3,p { overflow-wrap:anywhere; }
h1,h2,h3 { margin:0; font-family:var(--serif); font-weight:400; line-height:1.02; letter-spacing:-.035em; }
h1 { font-size:clamp(3.4rem,7.2vw,7.8rem); }
h2 { font-size:clamp(2.6rem,4.8vw,5.2rem); }
h3 { font-size:clamp(1.65rem,2.5vw,2.4rem); }
em { font-weight:400; }
p { margin:0 0 1rem; }
.site-header { position:absolute; z-index:40; top:0; left:0; width:100%; display:grid; grid-template-columns:250px 1fr; align-items:start; padding:clamp(1rem,2.2vw,2.3rem) clamp(1rem,2.8vw,3rem); }
.inner-header { background:linear-gradient(180deg,rgba(10,12,12,.42),transparent); }
.brand-panel { display:flex; align-items:center; justify-content:center; width:230px; min-height:126px; padding:1rem 1.25rem; background:rgba(247,241,228,.92); box-shadow:0 15px 50px rgba(0,0,0,.14); backdrop-filter:blur(14px); }
.brand-panel img { width:185px; max-height:96px; object-fit:contain; }
.site-nav { display:flex; align-items:center; justify-content:flex-end; gap:clamp(2rem,4vw,5rem); padding:1.2rem .2rem; color:#fff; }
.nav-links { display:flex; align-items:center; gap:clamp(1.25rem,2.8vw,3.2rem); }
.site-nav a,.reveal-nav a { position:relative; font-size:.78rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; }
.site-nav .nav-links a::after,.reveal-nav .nav-links a::after { content:""; position:absolute; left:0; right:0; bottom:-.55rem; height:1px; background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform .25s ease; }
.site-nav .nav-links a:hover::after,.site-nav .nav-links a[aria-current]::after,.reveal-nav .nav-links a:hover::after,.reveal-nav .nav-links a[aria-current]::after { transform:scaleX(1); }
.nav-social { display:grid; place-items:center; width:38px; height:38px; border:1px solid rgba(255,255,255,.55); border-radius:50%; }
.nav-social svg { width:20px; height:20px; }
.menu-toggle { display:none; border:0; background:none; padding:.6rem; cursor:pointer; }
.menu-toggle span:not(.sr-only) { display:block; width:28px; height:1px; margin:6px 0; background:currentColor; }
.top-reveal { position:fixed; z-index:70; top:0; left:0; width:100%; padding:.6rem 1rem; background:color-mix(in srgb,var(--paper) 90%,transparent); box-shadow:0 10px 35px rgba(0,0,0,.12); backdrop-filter:blur(16px); transform:translateY(-120%); transition:transform .35s ease; }
.top-reveal.is-visible { transform:none; }
.reveal-nav { display:grid; grid-template-columns:70px 1fr 70px; align-items:center; width:min(1240px,100%); margin:auto; }
.reveal-nav .nav-links { justify-content:center; }
.reveal-nav .nav-social { color:var(--ink); border-color:var(--line); justify-self:end; }
.nav-mark {
  display:flex;
  height:82px;
  align-items:center;
}
.nav-mark img {
  width:104px;
  height:auto;
  max-height:80px;
  object-fit:contain;
}
.mobile-menu { position:fixed; inset:0; z-index:100; padding:1.25rem; background:var(--cream); color:var(--ink); overflow:auto; }
.mobile-menu[hidden] { display:none; }
.mobile-menu-head { display:flex; align-items:center; justify-content:space-between; padding-bottom:2rem; border-bottom:1px solid var(--line); }
.mobile-menu-head img { width:150px; max-height:72px; object-fit:contain; }
.mobile-menu-head button { border:0;background:none;font-family:var(--serif);font-size:2.6rem;line-height:1;cursor:pointer; }
.mobile-menu nav { padding:1.4rem 0; }
.mobile-menu nav a { display:flex; align-items:center; justify-content:space-between; padding:1rem 0; border-bottom:1px solid var(--line); font-family:var(--serif); font-size:clamp(2rem,9vw,3.6rem); line-height:1; }
.mobile-menu nav svg { width:28px; }
.mobile-contact { display:flex; flex-direction:column; gap:.5rem; padding-top:2rem; font-weight:700; }
.home-hero { position:relative; min-height:100svh; display:flex; align-items:flex-end; color:#fff; background:#161818; isolation:isolate; }
.hero-image {
  position:absolute;
  z-index:-2;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:0;
  transition:opacity 1.6s ease;
  will-change:opacity;
}
.hero-image.is-active { opacity:1; }
.hero-shade { position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,rgba(10,12,12,.78) 0%,rgba(10,12,12,.48) 43%,rgba(10,12,12,.16) 76%),linear-gradient(0deg,rgba(10,12,12,.52),transparent 55%); }
.hero-content { padding-top:12rem; padding-bottom:clamp(8rem,13vh,11rem); }
.hero-content .eyebrow { color:#dcecf3; }
.hero-content h1 { width:min(950px,78vw); font-size:clamp(3.5rem,7.2vw,7.6rem); }
.hero-content h1 em { color:#c7ddea; }
.hero-intro { width:min(610px,70vw); margin-top:1.8rem; font-size:clamp(1rem,1.4vw,1.25rem); color:rgba(255,255,255,.84); }
.hero-actions { display:flex; flex-wrap:wrap; gap:1rem; margin-top:2.2rem; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:1rem; min-height:52px; padding:.9rem 1.25rem; border:1px solid transparent; font-size:.75rem; font-weight:750; letter-spacing:.12em; line-height:1.2; text-transform:uppercase; transition:background .22s ease,color .22s ease,border-color .22s ease; cursor:pointer; }
.button svg,.text-link svg { width:20px; flex:0 0 auto; }
.button-primary { background:var(--accent); color:#fff; }
.button-primary:hover { background:var(--accent-deep); }
.button-ghost { border-color:rgba(255,255,255,.6); color:#fff; background:rgba(0,0,0,.12); }
.button-ghost:hover { background:#fff; color:#202322; }
.button-dark { background:var(--charcoal); color:#fff; }
.button-cream { background:#f4efe5; color:#202322; }
.button-outline { border-color:var(--line); color:var(--ink); }
.button-outline:hover { background:var(--ink); color:var(--paper); }
.hero-contact { position:absolute; right:clamp(1.5rem,5vw,5.5rem); bottom:clamp(2rem,5vw,4.5rem); display:flex; flex-direction:column; align-items:flex-end; }
.hero-contact span { font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.7); }
.hero-contact a:first-of-type { font-family:var(--serif); font-size:clamp(1.45rem,2.5vw,2.25rem); line-height:1.2; }
.hero-contact a:last-child { color:rgba(255,255,255,.72); font-size:.82rem; }
.hero-scroll { position:absolute; left:clamp(1.5rem,4vw,4.5rem); bottom:2.3rem; display:flex; align-items:center; gap:1rem; font-size:.67rem; letter-spacing:.15em; text-transform:uppercase; }
.hero-scroll i { width:68px; height:1px; background:rgba(255,255,255,.55); }
.intro-grid { display:grid; grid-template-columns:.55fr 2fr; gap:8vw; align-items:start; }
.intro-grid h2 { max-width:980px; }
.intro-grid h2 em { color:var(--accent); }
.intro-grid div>p { max-width:720px; margin:2rem 0 0 auto; color:var(--muted); font-size:1.08rem; }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:2rem; margin-bottom:3.2rem; }
.section-heading h2 { max-width:880px; }
.text-link { display:inline-flex; align-items:center; gap:.7rem; border-bottom:1px solid currentColor; padding-bottom:.3rem; color:var(--accent); font-size:.76rem; font-weight:750; letter-spacing:.1em; text-transform:uppercase; }
.service-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); }
.service-card { background:var(--paper); }
.service-card figure { margin:0; height:clamp(280px,32vw,480px); overflow:hidden; }
.service-card img { width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.service-card:hover img { transform:scale(1.025); }
.service-card>div { position:relative; padding:2rem; min-height:310px; }
.service-card span { font-size:.72rem; color:var(--accent); }
.service-card p { color:var(--muted); }
.service-card svg { position:absolute; right:2rem; bottom:2rem; width:24px; color:var(--accent); }
.feature-split { display:grid; grid-template-columns:1.08fr .92fr; min-height:780px; background:var(--charcoal); color:#fff; }
.feature-split figure { margin:0; min-height:600px; }
.feature-split img { width:100%; height:100%; object-fit:cover; }
.feature-split>div { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:clamp(4rem,8vw,9rem); }
.feature-split p:not(.eyebrow) { max-width:560px; margin:2rem 0; color:rgba(255,255,255,.7); }
.process-grid { display:grid; grid-template-columns:1fr 1fr; gap:8vw; }
.process-grid ol,.contact-guidance ol { margin:0; padding:0; list-style:none; }
.process-grid li { display:grid; grid-template-columns:70px 1fr; gap:1.5rem; padding:1.6rem 0; border-top:1px solid var(--line); }
.process-grid li>span,.contact-guidance li>span { color:var(--accent); font-family:var(--serif); font-size:1.35rem; }
.process-grid strong { display:block; font-family:var(--serif); font-size:1.4rem; font-weight:400; }
.process-grid li p { color:var(--muted); }
.trust-band { padding:clamp(5rem,9vw,9rem) 0; color:#fff; background:var(--accent-deep); }
.trust-band .shell { display:grid; grid-template-columns:.5fr 1.5fr .7fr; gap:4vw; align-items:start; }
.trust-band .eyebrow { color:#fff; }
.trust-band p:last-child { color:rgba(255,255,255,.75); }
.preview-grid { display:grid; grid-template-columns:1.1fr .8fr .8fr; grid-template-rows:520px; gap:1rem; }
.preview-grid figure { margin:0; overflow:hidden; }
.preview-grid img { width:100%;height:100%;object-fit:cover; }
.preview-grid figure:nth-child(2) img { object-position:center 35%; }
.faq-preview-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:9vw; }
.faq-preview-grid>div:first-child>p:not(.eyebrow) { max-width:510px; margin:1.5rem 0 2rem; color:var(--muted); }
.faq-list details { border-top:1px solid var(--line); }
.faq-list details:last-child { border-bottom:1px solid var(--line); }
.faq-list summary { position:relative; list-style:none; padding:1.4rem 3rem 1.4rem 0; font-family:var(--serif); font-size:1.35rem; line-height:1.25; cursor:pointer; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary span::before,.faq-list summary span::after { content:"";position:absolute;right:.2rem;top:50%;width:18px;height:1px;background:var(--accent); }
.faq-list summary span::after { transform:rotate(90deg);transition:transform .2s ease; }
.faq-list details[open] summary span::after { transform:rotate(0); }
.faq-list details p { max-width:700px; padding:0 3rem 1.6rem 0; color:var(--muted); }
.contact-band { padding:clamp(4.5rem,8vw,7rem) 0; color:#fff; background:var(--charcoal); }
.contact-band-inner { display:flex; align-items:center; justify-content:space-between; gap:3rem; }
.contact-band .eyebrow { color:#a9d7ed; }
.contact-band h2 { max-width:780px; }
.contact-band-inner>div:last-child { display:flex; align-items:center; gap:2rem; }
.call-inline { display:flex; flex-direction:column; }
.call-inline span { font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.6); }
.call-inline strong { font-family:var(--serif); font-size:1.5rem; font-weight:400; white-space:nowrap; }
.inner-hero { position:relative; min-height:clamp(540px,70vh,760px); display:flex; align-items:flex-end; color:#fff; background:#171a19; isolation:isolate; }
.inner-hero>img { position:absolute; z-index:-2; inset:0; width:100%; height:100%; object-fit:cover; }
.inner-shade { position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,rgba(9,11,10,.73),rgba(9,11,10,.18)),linear-gradient(0deg,rgba(9,11,10,.52),transparent 70%); }
.inner-hero-copy { padding-top:14rem; padding-bottom:clamp(4rem,8vw,7rem); }
.inner-hero-copy .eyebrow { color:#cde3ed; }
.inner-hero-copy h1 { width:min(990px,88vw); font-size:clamp(3.6rem,7.6vw,7.8rem); }
.inner-hero-copy>p:last-child { width:min(600px,80vw); margin-top:1.5rem; color:rgba(255,255,255,.8); font-size:1.08rem; }
.services-intro .narrow>p:last-child { margin-top:1.6rem;color:var(--muted); }
.service-details { padding-bottom:7rem; }
.service-detail { display:grid; grid-template-columns:80px .85fr 1.15fr; gap:clamp(2rem,5vw,6rem); align-items:center; padding:clamp(4rem,7vw,7rem) 0; border-top:1px solid var(--line); }
.service-detail:nth-child(even) { grid-template-columns:80px 1.15fr .85fr; }
.service-detail:nth-child(even) figure { grid-column:2;grid-row:1; }
.service-detail:nth-child(even) .service-copy { grid-column:3;grid-row:1; }
.service-number { align-self:start;color:var(--accent);font-family:var(--serif);font-size:1.8rem; }
.service-copy>p:not(.eyebrow) { margin:1.4rem 0;color:var(--muted); }
.service-copy ul { margin:0 0 2rem;padding:0;list-style:none;border-top:1px solid var(--line); }
.service-copy li { padding:.7rem 0;border-bottom:1px solid var(--line); }
.service-detail figure { margin:0;height:clamp(480px,50vw,700px); }
.service-detail figure img { width:100%;height:100%;object-fit:cover; }
.joined-grid { display:grid;grid-template-columns:1.3fr .7fr;gap:8vw;align-items:end; }
.joined-grid>p { color:var(--muted); }
.gallery-toolbar { display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:3rem; }
.gallery-grid { display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:190px;gap:1rem; }
.gallery-grid figure { grid-column:span 4;grid-row:span 3;margin:0;min-width:0; }
.gallery-grid figure.wide { grid-column:span 8; }
.gallery-grid figure.tall { grid-row:span 4; }
.gallery-media { position:relative;width:100%;height:100%;overflow:hidden; }
.gallery-open { position:relative;width:100%;height:100%;padding:0;border:0;background:#ccc;overflow:hidden;cursor:pointer; }
.gallery-open img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .7s ease,transform .5s ease; }
.gallery-open img.is-active { opacity:1; }
.gallery-open:hover img.is-active { transform:scale(1.025); }
.gallery-open>span { position:absolute;inset:auto 0 0;display:flex;align-items:end;justify-content:space-between;padding:4rem 1.3rem 1.2rem;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.72));text-align:left; }
.gallery-open strong { font-family:var(--serif);font-size:1.3rem;font-weight:400; }
.gallery-open small { font-size:.65rem;letter-spacing:.1em;text-transform:uppercase; }
.project-arrow { position:absolute;z-index:4;top:50%;display:grid;width:44px;height:44px;place-items:center;padding:0;border:1px solid rgba(255,255,255,.62);border-radius:50%;background:rgba(12,14,13,.58);color:#fff;font-family:var(--sans);font-size:2rem;line-height:1;opacity:0;pointer-events:none;transform:translateY(-50%);transition:opacity .2s ease,background .2s ease;cursor:pointer; }
.project-prev { left:14px; }
.project-next { right:14px; }
.has-multiple .gallery-media:hover .project-arrow,.has-multiple .gallery-media:focus-within .project-arrow { opacity:1;pointer-events:auto; }
.project-arrow:hover,.project-arrow:focus-visible { background:var(--accent); }
@media (hover:none) { .has-multiple .project-arrow { opacity:1;pointer-events:auto; } }
.lightbox,.success-dialog { width:min(1080px,92vw);max-height:92vh;margin:auto;padding:0;border:0;background:#111;color:#fff;box-shadow:0 30px 100px rgba(0,0,0,.45); }
.lightbox::backdrop,.success-dialog::backdrop { background:rgba(10,12,11,.82);backdrop-filter:blur(8px); }
.lightbox img { width:100%;max-height:78vh;object-fit:contain;background:#0b0c0c; }
.lightbox>div { display:flex;justify-content:space-between;padding:1rem 1.4rem; }
.lightbox>div strong { font-family:var(--serif);font-size:1.2rem; }
.lightbox>div span { color:#aaa;font-size:.75rem; }
.lightbox-close,.dialog-close { position:absolute;z-index:2;right:.8rem;top:.8rem;width:44px;height:44px;border:1px solid rgba(255,255,255,.4);border-radius:50%;background:rgba(0,0,0,.45);color:#fff;font-size:1.8rem;line-height:1;cursor:pointer; }
.faq-page-grid { display:grid;grid-template-columns:.65fr 1.35fr;gap:9vw;align-items:stretch; }
.faq-page aside { position:sticky;top:7rem;align-self:start;height:max-content; }
.faq-page aside>p:not(.eyebrow) { color:var(--muted);margin:1.4rem 0 2rem; }
.aside-contact { display:flex;flex-direction:column;padding:1rem 0;border-top:1px solid var(--line); }
.aside-contact:last-child { border-bottom:1px solid var(--line); }
.aside-contact span { color:var(--accent);font-size:.67rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase; }
.aside-contact strong { font-family:var(--serif);font-size:1.35rem;font-weight:400; }
.faq-list-large summary { padding:1.8rem 3rem 1.8rem 0;font-size:1.55rem; }
.contact-page { background:var(--cream); }
.contact-intro { min-height:740px;padding-top:clamp(16rem,22vw,21rem);background:var(--cream) url("contact-sketch.svg") center/cover no-repeat; }
.contact-intro-grid { display:grid;grid-template-columns:1.1fr .9fr;gap:10vw;align-items:end; }
.contact-intro-grid.contact-intro-single { grid-template-columns:minmax(0,760px); }
.contact-intro h1 { font-size:clamp(4rem,8vw,8rem); }
.contact-intro h1 em { color:var(--accent); }
.contact-intro div>p:last-child { max-width:620px;margin-top:1.5rem;color:var(--muted);font-size:1.08rem; }
.contact-direct { border-top:1px solid var(--line); }
.contact-direct>a,.contact-direct>div { display:grid;grid-template-columns:72px 1fr;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line); }
.contact-direct span { color:var(--accent);font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase; }
.contact-direct strong { font-family:var(--serif);font-size:1.08rem;font-weight:400;line-height:1.35;letter-spacing:-.01em;overflow-wrap:anywhere; }
.contact-direct a[href^="mailto:"] strong { white-space:nowrap;overflow-wrap:normal; }
.contact-direct a[href*="facebook.com"] strong { transition:color .2s ease,font-weight .2s ease; }
.contact-direct a[href*="facebook.com"]:hover strong,
.contact-direct a[href*="facebook.com"]:focus-visible strong {
  color:#8b6428;
  font-weight:500;
  text-decoration:underline;
  text-underline-offset:4px;
}
.contact-form-section { position:relative;background:color-mix(in srgb,var(--paper) 92%,transparent); }
.contact-layout { display:grid;grid-template-columns:.6fr 1.4fr;gap:9vw;align-items:start; }
.contact-guidance { position:sticky;top:7rem; }
.contact-details-panel .contact-direct { margin-top:1.1rem; }
.contact-map { width:calc(100% + 16px);margin-top:38px;margin-left:-8px;border:1px solid var(--line);background:var(--cream); }
.contact-map-frame { position:relative; }
.contact-map iframe { display:block;width:100%;height:310px;border:0; }
.contact-map-pin { position:absolute;z-index:2;top:50%;left:50%;width:32px;height:44px;transform:translate(-50%,-100%);filter:drop-shadow(0 3px 5px rgba(0,0,0,.35));pointer-events:none; }
.contact-map-pin svg { display:block;width:100%;height:100%;overflow:visible; }
.contact-map-pin path { fill:#d93025;stroke:#fff;stroke-width:2; }
.contact-map-pin circle { fill:#fff; }
.contact-map>a { display:block;padding:16px 18px 18px;border-top:1px solid var(--line); }
.contact-map span { display:block;margin-bottom:5px;color:var(--accent);font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase; }
.contact-map strong { display:block;font-family:var(--serif);font-size:1rem;font-weight:400;line-height:1.35; }
.contact-map>a:hover strong,.contact-map>a:focus-visible strong { color:#8b6428;text-decoration:underline;text-underline-offset:4px; }
@media (min-width:961px) {
  .contact-details-panel { transform:translateX(-32px); }
  .contact-map { width:calc(100% + 80px);margin-left:-40px; }
}
.contact-guidance li { display:grid;grid-template-columns:55px 1fr;gap:1rem;padding:1.3rem 0;border-top:1px solid var(--line); }
.contact-guidance li:last-child { border-bottom:1px solid var(--line); }
.contact-guidance li strong { display:block;font-family:var(--serif);font-size:1.25rem;font-weight:400; }
.contact-guidance li p { color:var(--muted); }
.service-area-note { margin-top:2.4rem;padding:1.4rem;border:1px solid var(--line);background:var(--cream); }
.service-area-note strong { display:block;margin-bottom:.45rem;font-family:var(--serif);font-size:1.2rem;font-weight:500; }
.service-area-note p { color:var(--muted);font-size:.92rem;line-height:1.6; }
.enquiry-form { display:grid;gap:1.7rem;padding:clamp(1rem,3vw,3rem) 0;border-top:1px solid var(--line); }
.form-row { display:grid;grid-template-columns:1fr 1fr;gap:1.5rem; }
.enquiry-form>label,.form-row label { position:relative;display:grid;gap:.55rem;font-size:.69rem;font-weight:750;letter-spacing:.1em;text-transform:uppercase; }
.enquiry-form input:not([type="radio"]):not([type="file"]),.enquiry-form select,.enquiry-form textarea { width:100%;border:1px solid var(--line);border-radius:0;padding:.85rem 1rem;background:var(--cream);color:var(--ink);font-size:1rem;font-weight:400;letter-spacing:0;text-transform:none;outline:none;transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease; }
.enquiry-form textarea { height:90px;min-height:90px;max-height:90px;overflow-y:auto;resize:none;scrollbar-width:thin;scrollbar-color:var(--accent) transparent; }
.enquiry-form textarea::-webkit-scrollbar { width:7px; }
.enquiry-form textarea::-webkit-scrollbar-thumb { background:var(--accent);border-radius:999px; }
.enquiry-form textarea::-webkit-scrollbar-track { background:transparent; }
.enquiry-form input:focus,.enquiry-form select:focus,.enquiry-form textarea:focus { border-color:var(--accent);box-shadow:0 2px 0 var(--accent); }
.field-error { display:none;color:#a43f36;font-size:.7rem;letter-spacing:0;text-transform:none; }
.has-error .field-error { display:block; }
.has-error input,.has-error select,.has-error textarea { border-color:#a43f36; }
.enquiry-form fieldset { display:flex;align-items:center;gap:1.5rem;margin:0;padding:0 0 1.2rem;border:0;border-bottom:1px solid var(--line); }
.enquiry-form legend { margin-bottom:.8rem;font-size:.69rem;font-weight:750;letter-spacing:.1em;text-transform:uppercase; }
.radio { display:flex;align-items:center;gap:.5rem;font-size:.9rem;cursor:pointer; }
.radio input { width:18px;height:18px;accent-color:var(--accent); }
.file-field { display:grid!important;grid-template-columns:1fr auto;align-items:center;gap:.6rem 1rem!important;padding:1rem 0;border-bottom:1px solid var(--line); }
.file-field>span:first-child { grid-column:1; }
.file-field small { color:var(--muted);font-weight:400;letter-spacing:0;text-transform:none; }
.file-field input { position:absolute;opacity:0;pointer-events:none; }
.file-ui { grid-column:2;grid-row:1/3;padding:.7rem 1rem;border:1px solid var(--line);cursor:pointer; }
.file-field output { color:var(--muted);font-size:.78rem;font-weight:400;letter-spacing:0;text-transform:none; }
.enquiry-form .button { justify-self:start; }
.form-privacy { max-width:620px;color:var(--muted);font-size:.82rem;line-height:1.55; }
.form-privacy a,.legal-page a { color:var(--accent);text-decoration:underline;text-underline-offset:3px; }
.success-dialog { width:min(540px,90vw);padding:clamp(2rem,5vw,4.5rem);background:var(--paper);color:var(--ink); }
.success-dialog h2 { font-size:clamp(2.4rem,6vw,4rem); }
.success-dialog p:not(.eyebrow) { margin:1.4rem 0 2rem;color:var(--muted); }
.success-dialog .dialog-close { color:var(--ink);border-color:var(--line);background:transparent; }
.not-found { min-height:75vh;display:grid;place-items:center;text-align:center;padding-top:14rem; }
.not-found .button { margin-top:2rem; }
.site-footer { background:#111413;color:#fff; }
.footer-main { display:grid;grid-template-columns:1.4fr .6fr .8fr 1fr;gap:5vw;padding:clamp(3.25rem,6vw,6rem) 0 clamp(2.75rem,4vw,4rem); }
.footer-brand img { width:220px;max-height:125px;object-fit:contain;object-position:left center;margin-bottom:1.5rem; }
.footer-brand p { max-width:380px;color:rgba(255,255,255,.62); }
.footer-main>div:not(.footer-brand) { display:flex;flex-direction:column;align-items:flex-start;gap:.45rem; }
@media (min-width:761px) {
  .footer-main>div:not(.footer-brand) { padding-top:1.75rem; }
}
.footer-main a,.footer-main>div:last-child p:last-child { color:rgba(255,255,255,.68); }
.footer-main a:hover { color:#fff; }
.footer-cookie-button { display:block;margin:.32rem 0 0;padding:0;border:0;background:transparent;color:rgba(255,255,255,.72);font:inherit;text-align:left;cursor:pointer; }
.footer-cookie-button:hover,.footer-cookie-button:focus-visible { color:#fff; }
.footer-label { margin-bottom:.7rem!important;color:#a9d7ed!important;font-size:.68rem;font-weight:750;letter-spacing:.14em;text-transform:uppercase; }
.footer-base { display:flex;justify-content:space-between;padding:.95rem 0;border-top:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.48);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase; }
.footer-credit { text-transform:lowercase; }
.footer-credit a { color:rgba(255,255,255,.72);border-bottom:1px solid rgba(255,255,255,.28);transition:color .2s ease,border-color .2s ease; }
.legal-page { padding-top:clamp(8rem,14vw,12rem); }
.legal-page h1 { margin-bottom:.4rem;font-size:clamp(3rem,8vw,6.8rem); }
.legal-page h2 { margin-top:2.4rem;margin-bottom:.7rem;font-size:clamp(1.5rem,3vw,2.2rem); }
.legal-page p { color:var(--muted);font-size:1.02rem;line-height:1.75; }
.legal-page .legal-updated { margin-bottom:2.5rem;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em; }
.legal-page .button { margin-top:2rem; }
.cookie-banner { position:fixed;z-index:1000;right:1rem;bottom:1rem;left:1rem;display:flex;align-items:center;justify-content:space-between;gap:2rem;max-width:1120px;margin:auto;padding:1.2rem 1.35rem;border:1px solid rgba(255,255,255,.16);background:#172025;color:#fff;box-shadow:0 20px 60px rgba(0,0,0,.32); }
.cookie-banner[hidden] { display:none; }
.cookie-banner strong { display:block;margin-bottom:.3rem;font-family:var(--serif);font-size:1.25rem;font-weight:500; }
.cookie-banner p { max-width:680px;color:rgba(255,255,255,.72);font-size:.85rem;line-height:1.5; }
.cookie-actions { display:flex;flex:0 0 auto;gap:.7rem; }
.cookie-actions .button { min-height:44px;padding:.7rem 1rem;white-space:nowrap; }
.cookie-actions .button-outline { border-color:rgba(255,255,255,.42);color:#fff; }
.footer-credit a:hover,.footer-credit a:focus-visible { color:#dfbd7b;border-color:#dfbd7b; }
.theme-bar { position:fixed;z-index:80;left:1rem;bottom:1rem;display:flex;align-items:center;gap:.3rem;padding:.45rem;background:color-mix(in srgb,var(--paper) 90%,transparent);border:1px solid var(--line);box-shadow:0 10px 35px rgba(0,0,0,.18);backdrop-filter:blur(14px); }
.theme-bar button { position:relative;display:grid;place-items:center;width:28px;height:28px;padding:0;border:1px solid transparent;background:transparent;cursor:pointer; }
.theme-mode svg { width:15px;height:15px;fill:currentColor; }
.theme-divider { width:1px;height:20px;margin:0 .15rem;background:var(--line); }
.accent-options { display:flex;gap:.1rem; }
.accent-options button::before { content:"";width:13px;height:13px;border-radius:50%;background:var(--swatch,var(--accent)); }
.accent-options button[data-accent="blue"]{--swatch:#087db5}.accent-options button[data-accent="copper"]{--swatch:#a76849}.accent-options button[data-accent="teal"]{--swatch:#387f7a}.accent-options button[data-accent="slate"]{--swatch:#65798a}.accent-options button[data-accent="brass"]{--swatch:#a5864d}.accent-options button[data-accent="sage"]{--swatch:#73866a}.accent-options button[data-accent="navy"]{--swatch:#315f7d}.accent-options button[data-accent="oxblood"]{--swatch:#855562}.accent-options button[data-accent="ochre"]{--swatch:#b37736}.accent-options button[data-accent="forest"]{--swatch:#416b5a}
.theme-bar button.is-active { border-color:var(--ink); }

@media (max-width:960px) {
  .site-header { grid-template-columns:175px 1fr; }
  .brand-panel { width:165px;min-height:92px;padding:.7rem; }
  .brand-panel img { width:138px;max-height:68px; }
  .site-nav .nav-links { display:none; }
  .site-nav { gap:1rem; }
  .site-nav .nav-social { display:none; }
  .menu-toggle { display:block;color:#fff; }
  .top-reveal { display:none; }
  .hero-content h1 { width:min(900px,92vw); }
  .hero-intro { width:min(600px,90vw); }
  .hero-contact { right:1.5rem; }
  .service-cards { grid-template-columns:1fr; }
  .service-card { display:grid;grid-template-columns:1fr 1fr; }
  .service-card figure { height:390px; }
  .feature-split { grid-template-columns:1fr; }
  .feature-split figure { min-height:60vw; }
  .process-grid,.faq-preview-grid,.faq-page-grid,.contact-intro-grid,.contact-layout { grid-template-columns:1fr; }
  .trust-band .shell { grid-template-columns:1fr 1.4fr; }
  .trust-band p:last-child { grid-column:2; }
  .preview-grid { grid-template-columns:1.2fr .8fr;grid-template-rows:420px 300px; }
  .preview-grid figure:nth-child(3) { grid-column:1/-1; }
  .service-detail,.service-detail:nth-child(even) { grid-template-columns:55px 1fr; }
  .service-detail figure,.service-detail:nth-child(even) figure { grid-column:1/-1;grid-row:auto;height:620px; }
  .service-detail:nth-child(even) .service-copy { grid-column:2;grid-row:1; }
  .joined-grid { grid-template-columns:1fr; }
  .gallery-grid figure { grid-column:span 6; }
  .gallery-grid figure.wide { grid-column:span 12; }
  .faq-page aside,.contact-guidance { position:static; }
  .footer-main { grid-template-columns:1.4fr .6fr; }
}

@media (max-width:640px) {
  .shell { width:min(100% - 2.4rem,1240px); }
  .section { padding:4.5rem 0; }
  h1 { font-size:clamp(3rem,14vw,4.7rem); }
  h2 { font-size:clamp(2.5rem,11vw,4rem); }
  .site-header { padding:.75rem;grid-template-columns:128px 1fr; }
  .brand-panel { width:126px;min-height:72px;padding:.45rem; }
  .brand-panel img { width:110px;max-height:58px; }
  .site-nav { padding:.5rem 0; }
  .home-hero { min-height:760px; }
  .hero-image { object-position:60% center; }
  .hero-shade { background:linear-gradient(90deg,rgba(10,12,12,.8),rgba(10,12,12,.34)),linear-gradient(0deg,rgba(10,12,12,.6),transparent); }
  .hero-content { padding-top:9rem;padding-bottom:13rem; }
  .hero-content h1 { width:100%;font-size:clamp(3rem,13.2vw,4.6rem);line-height:.98; }
  .hero-intro { width:100%;font-size:.98rem; }
  .hero-actions { display:grid;width:100%; }
  .button { width:100%; }
  .hero-contact { left:1.2rem;right:1.2rem;bottom:3.2rem;align-items:flex-start; }
  .hero-contact a:first-of-type { font-size:1.65rem; }
  .hero-contact a:last-child { max-width:100%; }
  .hero-scroll { display:none; }
  .intro-grid { grid-template-columns:1fr;gap:1rem; }
  .intro-grid div>p { margin:1.5rem 0 0; }
  .section-heading,.gallery-toolbar,.contact-band-inner,.contact-band-inner>div:last-child { align-items:flex-start;flex-direction:column; }
  .service-card { grid-template-columns:1fr; }
  .service-card figure { height:320px; }
  .service-card>div { min-height:270px;padding:1.5rem; }
  .feature-split figure { min-height:420px; }
  .feature-split>div { padding:4rem 1.2rem; }
  .process-grid { gap:2rem; }
  .process-grid li { grid-template-columns:44px 1fr;gap:.8rem; }
  .trust-band .shell { grid-template-columns:1fr; }
  .trust-band p:last-child { grid-column:auto; }
  .preview-grid { grid-template-columns:1fr;grid-template-rows:330px 330px 330px; }
  .preview-grid figure:nth-child(3) { grid-column:auto; }
  .contact-band-inner>div:last-child { width:100%; }
  .call-inline { align-items:flex-start; }
  .inner-hero { min-height:620px; }
  .inner-hero-copy { padding-top:11rem;padding-bottom:3.5rem; }
  .inner-hero-copy h1 { width:100%;font-size:clamp(3.2rem,13.5vw,5rem); }
  .service-detail,.service-detail:nth-child(even) { grid-template-columns:38px 1fr;gap:1rem; }
  .service-detail figure,.service-detail:nth-child(even) figure { height:420px; }
  .service-copy li { font-size:.9rem; }
  .gallery-grid { grid-template-columns:1fr;grid-auto-rows:360px; }
  .gallery-grid figure,.gallery-grid figure.wide,.gallery-grid figure.tall { grid-column:1;grid-row:auto; }
  .lightbox>div { flex-direction:column;gap:.3rem; }
  .contact-intro { min-height:auto;padding-top:11rem; }
  .contact-intro-grid { gap:3rem; }
  .contact-direct>a,.contact-direct>div { grid-template-columns:78px 1fr; }
  .contact-direct strong { font-size:1.05rem; }
  .form-row { grid-template-columns:1fr;gap:1.7rem; }
  .enquiry-form fieldset { flex-wrap:wrap; }
  .file-field { grid-template-columns:1fr!important; }
  .file-ui { grid-column:1!important;grid-row:auto!important;text-align:center; }
  .footer-main { grid-template-columns:1fr;gap:2.1rem;padding-bottom:3.4rem; }
  .footer-base { flex-direction:column;gap:.3rem;padding-bottom:5.2rem; }
  .cookie-banner { align-items:stretch;flex-direction:column;gap:1rem; }
  .cookie-actions { display:grid;grid-template-columns:1fr 1fr; }
  .cookie-actions .button { justify-content:center;white-space:normal;text-align:center; }
  .theme-bar { left:.5rem;bottom:.5rem;max-width:calc(100vw - 1rem);padding:.35rem; }
  .theme-bar button { width:27px;height:27px; }
  .accent-options button::before { width:11px;height:11px; }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important; }
}

/* Fulton & Love proportion pass */
.shell {
  width:min(100%,1240px);
  margin-inline:auto;
  padding-inline:clamp(20px,4vw,64px);
}
.section { padding-block:clamp(80px,10vw,144px); }
h2 { font-size:clamp(2.35rem,4.15vw,4.5rem); }

.site-header {
  position:absolute;
  z-index:100;
  top:0;
  right:0;
  left:0;
  display:block;
  width:100%;
  padding:0;
  color:#fff;
  background:transparent;
}
.header-inner {
  display:grid;
  grid-template-columns:minmax(210px,1fr) auto minmax(210px,1fr);
  align-items:center;
  min-height:168px;
  gap:24px;
}
.brand-panel {
  display:flex;
  width:358px;
  height:168px;
  min-height:0;
  align-items:center;
  justify-content:center;
  padding:0;
  background:transparent;
  box-shadow:none;
  backdrop-filter:none;
  margin-left:-16px;
}
.brand-panel img {
  width:211px;
  height:160px;
  max-width:none;
  max-height:none;
  object-fit:fill;
  image-rendering:auto;
  filter:none;
  transform:none;
}
.home-page .brand-panel {
  width:358px;
  height:168px;
  margin-left:-16px;
}
.home-page .brand-panel img {
  width:211px;
  height:160px;
  max-height:none;
  transform:none;
}
.desktop-nav {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:clamp(22px,2.6vw,42px);
}
.desktop-nav a,
.reveal-links a {
  position:relative;
  color:#fff;
  font-size:.84rem;
  font-weight:600;
  text-shadow:0 1px 14px rgba(0,0,0,.35);
}
.desktop-nav a::after,
.reveal-links a::after {
  position:absolute;
  right:0;
  bottom:-9px;
  left:0;
  height:1px;
  background:#dfbd7b;
  content:"";
  transform:scaleX(0);
  transition:transform 180ms ease;
}
.desktop-nav a:hover::after,
.desktop-nav a[aria-current="page"]::after,
.reveal-links a:hover::after,
.reveal-links a[aria-current="page"]::after { transform:scaleX(1); }
.header-socials {
  display:flex;
  justify-self:end;
}
.social-link {
  display:flex;
  width:26px;
  height:30px;
  align-items:center;
  justify-content:center;
  color:#fff;
  filter:drop-shadow(0 1px 10px rgba(0,0,0,.28));
  transition:color 180ms ease,opacity 180ms ease,transform 180ms ease;
}
.social-facebook svg { display:block;width:17px;height:27px;overflow:visible; }
.social-link:hover { color:#dfbd7b;transform:translateY(-2px); }
.menu-toggle { display:none; }

.top-reveal {
  padding:0;
  background:rgba(20,23,22,.95);
  color:#fff;
}
.reveal-inner {
  display:grid;
  grid-template-columns:minmax(100px,1fr) auto minmax(42px,1fr);
  align-items:center;
  min-height:98px;
}
.reveal-links { display:flex;gap:clamp(22px,2.6vw,42px); }
.reveal-links a { text-shadow:none; }
.top-reveal .nav-social {
  display:flex;
  width:26px;
  height:30px;
  align-items:center;
  justify-content:center;
  justify-self:end;
  border:0;
  border-radius:0;
  color:#fff;
  filter:drop-shadow(0 1px 10px rgba(0,0,0,.28));
  transition:color 180ms ease,opacity 180ms ease,transform 180ms ease;
}
.top-reveal .nav-social svg { width:17px;height:27px;overflow:visible; }
.top-reveal .nav-social:hover { color:#dfbd7b;transform:translateY(-2px); }

.home-hero {
  min-height:100svh;
  align-items:center;
  overflow:hidden;
}
.home-hero .hero-image { object-position:center 58%; }
.home-hero .hero-image-fulton { object-position:center center; }
.hero-wash {
  position:absolute;
  z-index:-1;
  inset:0;
  background:
    linear-gradient(90deg,rgba(15,13,11,.74) 0%,rgba(22,19,16,.52) 44%,rgba(28,24,20,.1) 78%,transparent 100%),
    linear-gradient(0deg,rgba(16,13,10,.38) 0%,transparent 48%);
}
.hero-shade { display:none; }
.hero-content {
  width:min(100%,1240px);
  padding-top:104px;
  padding-bottom:62px;
}
.hero-copy { transform:translateY(18px); }
.hero-content .eyebrow {
  max-width:760px;
  margin-bottom:20px;
  color:#dfbd7b;
  font-size:.68rem;
  letter-spacing:.19em;
}
.hero-content h1 {
  width:auto;
  max-width:680px;
  margin-bottom:26px;
  font-size:clamp(3.35rem,5.25vw,5.55rem);
  line-height:.98;
  text-wrap:balance;
}
.hero-content h1 em { color:#e1bf7c; }
.hero-lead {
  max-width:620px;
  margin:0 0 34px;
  color:rgba(255,255,255,.8);
  font-size:clamp(1rem,1.28vw,1.18rem);
}
.button-row {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:28px;
}
.button-row .button { width:auto;min-height:54px;padding:14px 26px; }
.home-hero .text-link { color:#fff; }
.hero-phone {
  position:absolute;
  right:clamp(20px,4vw,64px);
  bottom:64px;
  display:flex;
  flex-direction:column;
  padding-left:22px;
  border-left:1px solid rgba(255,255,255,.45);
  color:#fff;
}
.hero-phone span {
  color:rgba(255,255,255,.66);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.hero-phone a { width:max-content;color:inherit; }
.hero-phone strong { font-family:var(--serif);font-size:1.6rem;font-weight:500; }
.hero-phone-email {
  margin-top:3px;
  border-bottom:1px solid rgba(255,255,255,.45);
  color:rgba(255,255,255,.78)!important;
  font-size:.8rem;
}
.hero-contact,.hero-scroll,.hero-actions,.hero-intro { display:none; }

.intro-grid {
  position:relative;
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:clamp(50px,9vw,140px);
}
.intro-grid h2 { max-width:700px; }
.intro-copy {
  padding-top:42px;
  color:var(--muted);
  font-size:1.06rem;
}
.section-ink { background:var(--charcoal);color:#fff; }
.services-showcase .section-heading { margin-bottom:60px; }
.heading-split { display:flex;align-items:end;justify-content:space-between;gap:40px; }
.heading-split h2 { max-width:760px; }
.service-rail {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(16px,2vw,30px);
}
.service-tile a { display:block;color:inherit; }
.service-image {
  aspect-ratio:.82;
  margin-bottom:24px;
  overflow:hidden;
  background:#111;
}
.service-image img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .6s cubic-bezier(.22,1,.36,1);
}
.service-tile:hover .service-image img { transform:scale(1.035); }
.service-title { display:flex;align-items:start;gap:14px; }
.service-title>span {
  padding-top:7px;
  color:#dfbd7b;
  font-size:.62rem;
  font-weight:700;
  letter-spacing:.12em;
}
.service-title h3 { margin-bottom:14px;font-size:clamp(1.45rem,2vw,2rem); }
.service-tile p { margin-left:34px;color:rgba(255,255,255,.62);font-size:.9rem; }
.proof-grid {
  display:grid;
  grid-template-columns:1.1fr .9fr;
  align-items:center;
  gap:clamp(60px,9vw,140px);
}
.proof-section { padding-block:clamp(72px,8vw,112px); }
.framed-image { position:relative;margin:0;padding:22px 0 0 22px; }
.framed-image::before {
  position:absolute;
  z-index:-1;
  top:0;
  right:40px;
  bottom:40px;
  left:0;
  border:1px solid var(--accent);
  content:"";
}
.framed-image img {
  width:100%;
  height:clamp(620px,52vw,800px);
  object-fit:cover;
  box-shadow:0 28px 70px rgba(11,33,31,.15);
}
.proof-copy>h2 { margin-bottom:30px; }
.plain-points>div {
  display:grid;
  grid-template-columns:42px 1fr;
  gap:16px;
  padding:15px 0;
  border-top:1px solid var(--line);
}
.plain-points>div:last-child { border-bottom:1px solid var(--line); }
.plain-points span { color:var(--accent);font-family:var(--serif); }
.plain-points p { color:var(--muted); }
.proof-copy .button { width:auto;margin-top:28px; }
.preview-grid {
  grid-template-columns:repeat(3,minmax(0,1fr));
  grid-template-rows:none;
  gap:18px;
}
.preview-grid figure { aspect-ratio:4/3; }

.inner-hero { height:680px;min-height:680px; }
.inner-hero-copy { padding-top:210px;padding-bottom:72px; }
.inner-hero-copy h1 {
  width:min(850px,88vw);
  font-size:clamp(3.2rem,5.35vw,5.7rem);
}

.theme-bar {
  left:18px;
  bottom:18px;
  gap:10px;
  padding:7px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:9px;
  background:rgba(21,22,21,.9);
  box-shadow:0 16px 44px rgba(0,0,0,.24);
  color:#fff;
}
.theme-modes {
  display:grid;
  grid-template-columns:1fr 1fr;
  padding:2px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:6px;
}
.theme-modes button {
  width:auto;
  min-width:48px;
  min-height:29px;
  padding:4px 9px;
  border-radius:4px;
  background:transparent;
  color:rgba(255,255,255,.62);
  font-size:.6rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.theme-modes button.is-active { background:#f4f0e8;color:#1d2927;border-color:transparent; }
.accent-options { display:flex;align-items:center;gap:6px;padding-right:2px; }
.accent-options button {
  width:21px;
  height:21px;
  border:2px solid rgba(255,255,255,.24);
  border-radius:50%;
}
.accent-options button::before { width:100%;height:100%; }
.accent-options button.is-active {
  border-color:#fff;
  box-shadow:0 0 0 2px rgba(255,255,255,.2);
}

.contact-page .desktop-nav a { color:var(--ink);text-shadow:none; }
.contact-page .social-link { color:var(--ink);border-color:var(--line); }
.contact-page .contact-intro { height:680px;min-height:680px;padding-top:clamp(13rem,15.5vw,16rem); }

@media (max-width:1050px) {
  .header-inner { grid-template-columns:1fr auto; }
  .brand-panel,.home-page .brand-panel { width:322px;height:150px;margin-left:-10px; }
  .brand-panel img,.home-page .brand-panel img { width:189px;height:144px;max-height:none; }
  .desktop-nav,.header-socials { display:none; }
  .menu-toggle {
    display:flex;
    width:48px;
    height:48px;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:7px;
    border:1px solid rgba(255,255,255,.55);
    background:transparent;
    color:#fff;
  }
  .menu-toggle>span:not(.sr-only) { width:21px;height:1px;background:currentColor; }
  .contact-page .menu-toggle { color:var(--ink);border-color:var(--line); }
  .service-rail { grid-template-columns:repeat(2,1fr); }
  .proof-grid { grid-template-columns:1fr 1fr;gap:50px; }
}

@media (max-width:760px) {
  .header-inner { width:100%;min-height:120px;grid-template-columns:minmax(0,1fr) 48px;gap:8px;padding-inline:12px; }
  .brand-panel,.home-page .brand-panel { width:238px;height:120px;padding:0;margin-left:-6px; }
  .brand-panel img,.home-page .brand-panel img { width:150px;height:114px;max-height:none; }
  .home-hero { min-height:100svh;align-items:end; }
  .home-hero .hero-image { object-position:58% center; }
  .home-hero .hero-image-fulton { object-position:54% center; }
  .hero-wash {
    background:linear-gradient(0deg,rgba(28,29,29,.72) 0%,rgba(35,35,35,.43) 58%,rgba(45,45,45,.08) 100%);
  }
  .hero-content { padding-top:150px;padding-bottom:58px; }
  .hero-content .eyebrow { margin-bottom:15px; }
  .hero-content h1 {
    max-width:9ch;
    margin-bottom:22px;
    font-size:clamp(2.75rem,11.2vw,3.7rem);
  }
  .hero-lead { max-width:34rem;font-size:.96rem; }
  .button-row { align-items:stretch;flex-direction:column;gap:20px; }
  .button-row .button { width:100%; }
  .button-row .text-link { width:max-content; }
  .hero-phone { position:static;margin-top:28px;padding-left:0;border-left:0; }
  .intro-grid,.proof-grid { grid-template-columns:1fr;gap:42px; }
  .intro-copy { padding-top:0; }
  .heading-split { align-items:start;flex-direction:column; }
  .service-rail { grid-template-columns:1fr;gap:48px; }
  .service-image { aspect-ratio:1.15; }
  .proof-grid { gap:48px; }
  .framed-image img { height:500px; }
  .preview-grid { grid-template-columns:1fr;grid-template-rows:none; }
  .preview-grid figure { aspect-ratio:4/3; }
  .inner-hero { height:auto;min-height:600px; }
  .inner-hero-copy { padding-top:170px;padding-bottom:55px; }
  .inner-hero-copy h1 { width:100%;font-size:clamp(2.8rem,11.5vw,4rem); }
  .contact-page .contact-intro { height:auto;min-height:auto;padding-top:180px; }
  .theme-bar { right:auto;bottom:12px;left:12px;transform:scale(.78);transform-origin:left bottom; }
}

.footer-lockup {
  display:block;
  width:220px;
  margin-bottom:1.1rem;
}
.footer-lockup img {
  width:220px;
  height:auto;
  max-height:none;
  margin:0;
  object-fit:contain;
  filter:none;
}
.footer-lockup span { display:flex;flex-direction:column; }
.footer-lockup strong {
  color:#fff;
  font-family:var(--serif);
  font-size:1.75rem;
  font-weight:500;
  letter-spacing:-.025em;
  line-height:1;
}
.footer-lockup small {
  margin-top:7px;
  color:rgba(255,255,255,.56);
  font-size:.58rem;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.review-band {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding-block:clamp(92px,9vw,132px);
  background:#171412;
  color:#fff;
}
.review-band::after {
  position:absolute;
  z-index:-1;
  inset:0;
  background:linear-gradient(90deg,rgba(22,18,15,.6),rgba(22,18,15,.34));
  content:"";
}
.review-media {
  position:absolute;
  z-index:-2;
  inset:0;
  width:100%;
}
.review-media [data-review-slide] {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  background-position:center 58%;
  background-size:cover;
  background-attachment:fixed;
  background-repeat:no-repeat;
  opacity:0;
  transition:opacity 1.6s ease;
  will-change:opacity;
}
.review-media [data-review-slide].is-active { opacity:1; }
.review-image-bathroom { background-image:url("images/hero-bathroom.webp"); }
.review-media .review-image-fulton {
  background-image:url("images/hero-fulton-love.webp");
  background-position:center center;
}
.review-inner {
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:.65fr 1.55fr 1fr auto;
  align-items:center;
  gap:clamp(30px,5vw,70px);
}
.review-inner .eyebrow { margin:0;color:#dfbd7b; }
.review-number {
  display:flex;
  align-items:center;
  gap:20px;
}
.review-number strong {
  font-family:var(--serif);
  font-size:clamp(3.4rem,5vw,5.5rem);
  font-weight:400;
  line-height:.8;
}
.review-number span {
  max-width:130px;
  color:rgba(255,255,255,.72);
  font-size:.75rem;
}
.review-inner>p:not(.eyebrow) {
  margin:0;
  color:rgba(255,255,255,.68);
  font-size:.78rem;
}
.home-gallery.section { padding-block:clamp(62px,7vw,96px); }
.home-gallery .section-heading { margin-bottom:30px; }
.editorial-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  margin-bottom:28px;
}
.editorial-grid figure {
  position:relative;
  min-height:0;
  aspect-ratio:4/3;
  margin:0;
  overflow:hidden;
}
.editorial-grid img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .55s cubic-bezier(.22,1,.36,1);
}
.editorial-grid figure:hover img { transform:scale(1.025); }
.editorial-grid figcaption {
  position:absolute;
  right:0;
  bottom:0;
  left:0;
  padding:46px 20px 16px;
  background:linear-gradient(transparent,rgba(9,24,23,.8));
  color:#fff;
  font-size:.68rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.home-gallery .button { width:auto; }

@media (max-width:900px) {
  .review-inner { grid-template-columns:1fr 1.5fr; }
  .review-inner>p:not(.eyebrow) { grid-column:1/2; }
  .review-inner .text-link { justify-self:start; }
}

@media (max-width:760px) {
  .review-media [data-review-slide] { background-attachment:scroll; }
  .review-media .review-image-fulton { background-position:54% center; }
  .review-inner { grid-template-columns:1fr;gap:24px; }
  .review-inner>p:not(.eyebrow) { grid-column:auto; }
  .editorial-grid { grid-template-columns:1fr; }
  .editorial-grid figure { aspect-ratio:4/3; }
  .footer-lockup,
  .footer-lockup img { width:195px; }
}
html,
body {
  overscroll-behavior-y: none;
}

.website-field { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.form-status.is-error { color: #9d2d24; }
.enquiry-form button[disabled] { cursor: wait; opacity: .7; }
