
:root { --ink:#1d211b; --muted:#6c6c62; --cream:#f5f2eb; --sand:#e9e1d5; --line:#d9d3c7; --olive:#5e6756; --charcoal:#22271f; --serif:'Cormorant Garamond', Georgia, serif; --sans:'Manrope', Arial, sans-serif; --ease:cubic-bezier(.23,1,.32,1); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:var(--sans); -webkit-font-smoothing:antialiased; }
button,a { -webkit-tap-highlight-color:transparent; }
button { font-family:inherit; border:0; background:none; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
.site-shell { overflow:hidden; }
.content-width { width:min(1180px, calc(100% - 88px)); margin:0 auto; }
.section-pad { padding:clamp(88px, 10vw, 156px) 0; }
.eyebrow { margin:0 0 22px; color:var(--olive); font-size:10px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.eyebrow--light { color:#b9b6aa; }
.section-label { color:#a8a49a; font-size:10px; letter-spacing:.16em; text-transform:uppercase; }
h1,h2,h3,p { margin-top:0; }
h2 { margin-bottom:24px; color:var(--ink); font-family:var(--serif); font-size:clamp(48px, 6vw, 84px); font-weight:500; letter-spacing:-.045em; line-height:.88; }
h2 i,h1 i { font-weight:400; }
.site-header { position:fixed; z-index:20; top:0; right:0; left:0; display:flex; align-items:center; justify-content:space-between; min-height:84px; padding:0 44px; color:#fff; transition:background .28s ease, color .28s ease, box-shadow .28s ease; }
.site-header--scrolled { background:rgba(245,242,235,.94); color:var(--ink); box-shadow:0 1px 0 rgba(29,33,27,.08); backdrop-filter:blur(16px); }
.brand { display:inline-flex; align-items:center; gap:12px; }
.brand-mark { display:grid; width:30px; height:30px; place-items:center; border:1px solid currentColor; border-radius:50%; font-family:var(--serif); font-size:10px; letter-spacing:-.1em; }
.brand-copy { display:flex; flex-direction:column; gap:0; font-size:11px; line-height:1.05; letter-spacing:.08em; text-transform:uppercase; }
.brand-copy strong { font-weight:700; }
.brand-copy em { font-style:normal; font-weight:400; letter-spacing:.19em; }
.desktop-nav { display:flex; align-items:center; gap:30px; }
.desktop-nav button,.desktop-nav a { color:inherit; font-size:11px; letter-spacing:.08em; text-transform:uppercase; transition:opacity .18s ease; }
.desktop-nav button:hover,.desktop-nav a:hover { opacity:.6; }
.nav-call { display:inline-flex; align-items:center; gap:7px; margin-left:10px; padding:10px 15px; border:1px solid currentColor; }
.menu-toggle { display:none; color:inherit; }
.hero { position:relative; min-height:760px; height:100vh; max-height:980px; color:#fff; background:#27261f; }
.hero-media,.hero-overlay { position:absolute; inset:0; }
.hero-media { background-position:center; background-size:cover; transform:scale(1.01); }
.hero-overlay { background:linear-gradient(90deg,rgba(22,20,16,.82) 0%,rgba(22,20,16,.54) 40%,rgba(22,20,16,.12) 100%), linear-gradient(0deg,rgba(14,15,12,.42),transparent 60%); }
.hero-content { position:relative; z-index:1; display:flex; height:100%; flex-direction:column; align-items:flex-start; justify-content:center; padding-top:44px; }
.hero-kicker { display:flex; align-items:center; gap:13px; margin-bottom:34px; color:#ddd7c9; font-size:10px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.eyebrow-line { display:block; width:32px; height:1px; background:#beb9aa; }
.hero-title { max-width:720px; margin:0 0 25px; font-family:var(--serif); font-size:clamp(74px, 10.7vw, 158px); font-weight:500; letter-spacing:-.065em; line-height:.76; }
.hero-subtitle { max-width:370px; margin-bottom:38px; color:#e0dbd0; font-family:var(--serif); font-size:23px; line-height:1.08; }
.hero-actions { display:flex; flex-wrap:wrap; gap:11px; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:48px; padding:0 20px; border:1px solid transparent; font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; transition:transform .18s ease, background .22s ease, color .22s ease, border-color .22s ease; }
.button:active { transform:scale(.97); }
.button--light { background:#f5f2eb; color:var(--ink); }
.button--light:hover { background:#fff; transform:translateY(-2px); }
.button--outline-light { border-color:rgba(255,255,255,.55); color:#fff; }
.button--outline-light:hover { border-color:#fff; background:rgba(255,255,255,.12); transform:translateY(-2px); }
.button--dark { background:var(--charcoal); color:#f5f2eb; }
.button--dark:hover { background:#394131; transform:translateY(-2px); }
.button--full { width:100%; }
.hero-scroll { display:flex; align-items:center; gap:14px; margin-top:auto; margin-bottom:34px; color:#d9d3c7; font-size:10px; letter-spacing:.15em; text-transform:uppercase; }
.hero-scroll svg { transition:transform .2s ease; }
.hero-scroll:hover svg { transform:translateY(4px); }
.hero-caption { position:absolute; right:44px; bottom:38px; display:flex; align-items:center; gap:11px; color:#c9c3b6; font-size:9px; letter-spacing:.16em; text-transform:uppercase; }
.caption-rule { width:45px; height:1px; background:rgba(255,255,255,.45); }
.intro-section { background:var(--cream); }
.intro-grid { display:grid; grid-template-columns:1fr minmax(390px, 2fr) 1fr; gap:45px; }
.intro-copy { padding-top:0; }
.intro-copy h2 { font-size:clamp(58px, 6.5vw, 92px); }
.large-copy { max-width:550px; margin-bottom:29px; color:#5e6259; font-family:var(--serif); font-size:27px; line-height:1.08; }
.text-link { display:inline-flex; align-items:center; gap:9px; padding:0 0 7px; border-bottom:1px solid var(--ink); font-size:10px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; transition:gap .2s ease; }
.text-link:hover { gap:14px; }
.intro-note { align-self:end; padding-bottom:4px; }
.note-quote { display:block; margin-bottom:8px; color:var(--olive); font-family:var(--serif); font-size:76px; line-height:.35; }
.intro-note p { max-width:220px; margin-bottom:17px; font-family:var(--serif); font-size:26px; line-height:.98; }
.note-author { color:#77786f; font-size:10px; letter-spacing:.1em; text-transform:uppercase; }
.section-dark { background:var(--charcoal); color:#f5f2eb; }
.section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:50px; margin-bottom:68px; }
.section-heading--light h2 { color:#f5f2eb; }
.section-heading--light .eyebrow { color:#a9ab98; }
.heading-aside { max-width:245px; margin:0 0 10px; color:#7c8275; font-family:var(--serif); font-size:20px; line-height:1.06; }
.services-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid rgba(245,242,235,.19); border-left:1px solid rgba(245,242,235,.19); }
.service-card { position:relative; display:flex; min-height:260px; flex-direction:column; justify-content:space-between; padding:24px 24px 22px; border-right:1px solid rgba(245,242,235,.19); border-bottom:1px solid rgba(245,242,235,.19); transition:background .25s ease, transform .25s var(--ease); }
.service-card:hover { background:#2d342b; transform:translateY(-4px); }
.service-top { display:flex; align-items:center; justify-content:space-between; color:#a9ab98; }
.service-number { font-size:10px; letter-spacing:.1em; }
.service-card h3 { max-width:190px; margin:0 0 12px; color:#efede6; font-family:var(--serif); font-size:27px; font-weight:500; line-height:.95; }
.service-card p { max-width:190px; margin:0; color:#969b8f; font-size:12px; line-height:1.5; }
.card-arrow { position:absolute; right:24px; bottom:22px; color:#a9ab98; transition:transform .2s ease; }
.service-card:hover .card-arrow { transform:translate(3px,-3px); }
.about-grid { display:grid; grid-template-columns:1.08fr 1fr; align-items:center; gap:clamp(55px, 10vw, 145px); }
.about-image-wrap { position:relative; max-width:540px; }
.about-image-wrap img { width:100%; aspect-ratio:4/5; object-fit:cover; }
.image-tag { position:absolute; right:-28px; bottom:34px; padding:18px 22px; background:#ddd4c7; color:var(--ink); font-family:var(--serif); font-size:19px; line-height:.95; }
.about-copy h2 { font-size:clamp(60px, 6vw, 91px); }
.about-copy > p:not(.eyebrow) { max-width:460px; color:#5e6259; font-family:var(--serif); font-size:23px; line-height:1.12; }
.signature { display:flex; flex-direction:column; gap:2px; margin-top:36px; }
.signature span { font-family:var(--serif); font-size:29px; font-style:italic; }
.signature small { color:#7c7c73; font-size:9px; letter-spacing:.13em; text-transform:uppercase; }
.gallery-section { background:#efece5; }
.gallery-grid { display:grid; grid-template-columns:1.25fr .75fr 1fr; grid-template-rows:repeat(2, minmax(260px, 360px)); gap:14px; }
.gallery-item { position:relative; min-height:260px; margin:0; overflow:hidden; background:#d0c7b9; }
.gallery-item--wide { grid-row:span 2; }
.gallery-item--tall { grid-row:span 2; }
.gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.gallery-item:hover img { transform:scale(1.045); }
.gallery-item::after { position:absolute; inset:0; background:linear-gradient(0deg,rgba(15,17,13,.7),transparent 50%); content:""; pointer-events:none; }
.gallery-item figcaption { position:absolute; z-index:1; right:20px; bottom:18px; left:20px; display:grid; grid-template-columns:30px 1fr; gap:2px 11px; color:#fff; }
.gallery-item figcaption span { grid-row:span 2; padding-top:2px; font-size:9px; letter-spacing:.1em; }
.gallery-item figcaption strong { font-family:var(--serif); font-size:27px; font-weight:500; line-height:.82; }
.gallery-item figcaption em { color:#d0ccc2; font-size:9px; font-style:normal; letter-spacing:.1em; text-transform:uppercase; }
.section-sand { background:var(--sand); }
.reasons-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid rgba(29,33,27,.18); }
.reason { display:grid; grid-template-columns:34px 1fr; gap:12px; padding:28px 22px 28px 0; border-bottom:1px solid rgba(29,33,27,.18); }
.reason:nth-child(3n+2),.reason:nth-child(3n+3) { padding-left:25px; border-left:1px solid rgba(29,33,27,.18); }
.reason svg { color:var(--olive); }
.reason h3 { margin-bottom:8px; font-family:var(--serif); font-size:25px; font-weight:500; line-height:.9; }
.reason p { max-width:230px; margin:0; color:#6d6e65; font-size:12px; line-height:1.45; }
.process-intro { display:grid; grid-template-columns:1fr 2fr; gap:45px; margin-bottom:72px; }
.process-intro h2 { font-size:clamp(60px, 6vw, 92px); }
.process-list { border-top:1px solid var(--line); }
.process-step { display:grid; grid-template-columns:70px 1.1fr 2fr 30px; align-items:center; gap:20px; padding:25px 0; border-bottom:1px solid var(--line); transition:padding .25s ease, background .25s ease; }
.process-step:hover { padding-right:12px; padding-left:12px; background:#ebe7df; }
.process-number { color:var(--olive); font-size:10px; font-weight:700; letter-spacing:.12em; }
.process-step h3 { margin:0; font-family:var(--serif); font-size:31px; font-weight:500; line-height:.9; }
.process-step p { max-width:430px; margin:0; color:#73756d; font-size:12px; line-height:1.45; }
.process-step svg { justify-self:end; color:var(--olive); }
.map-section { display:grid; grid-template-columns:42% 58%; min-height:505px; background:var(--charcoal); color:#f5f2eb; }
.map-copy { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:70px max(44px, calc((100vw - 1180px)/2)) 70px  max(44px, calc((100vw - 1180px)/2)); }
.map-copy h2 { margin-bottom:25px; color:#f5f2eb; font-size:clamp(56px, 6vw, 84px); }
.map-copy > p:not(.eyebrow) { max-width:325px; margin-bottom:32px; color:#a4a89c; font-family:var(--serif); font-size:22px; line-height:1.07; }
.text-link--light { border-color:#b6b7ad; color:#f5f2eb; }
.map-frame { min-height:505px; filter:grayscale(.35) sepia(.15); }
.map-frame iframe { display:block; width:100%; height:100%; min-height:505px; border:0; }
.contact-section { background:#f8f5ef; }
.contact-grid { display:grid; grid-template-columns:.85fr 1fr; gap:clamp(60px, 10vw, 150px); align-items:start; }
.contact-intro h2 { font-size:clamp(60px, 7vw, 100px); }
.contact-intro > p:not(.eyebrow) { max-width:440px; color:#62665d; font-family:var(--serif); font-size:24px; line-height:1.08; }
.contact-details { display:grid; gap:18px; margin-top:43px; }
.contact-details > * { display:flex; align-items:flex-start; gap:12px; }
.detail-icon { display:grid; width:31px; height:31px; flex:none; place-items:center; border:1px solid var(--line); border-radius:50%; color:var(--olive); }
.contact-details small { display:block; margin-bottom:4px; color:#8a8a7e; font-size:9px; letter-spacing:.14em; text-transform:uppercase; }
.contact-details a,.contact-details div > span:last-child { font-size:13px; line-height:1.3; }
.hours { display:flex; align-items:flex-start; gap:10px; margin-top:35px; color:#85867d; font-size:10px; letter-spacing:.05em; line-height:1.55; }
.hours svg { color:var(--olive); }
.form-card { padding:31px; background:#ebe5dc; box-shadow:0 20px 60px rgba(55,49,38,.08); }
.form-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:30px; padding-bottom:16px; border-bottom:1px solid #d0c8bb; color:var(--olive); font-size:10px; font-weight:700; letter-spacing:.17em; text-transform:uppercase; }
.form-top svg { color:#b19b79; }
#wallpaperContactForm { display:grid; gap:19px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:15px; }
#wallpaperContactForm label { display:grid; gap:8px; color:#64675e; font-size:10px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }
#wallpaperContactForm label span { color:#98988c; font-weight:400; letter-spacing:0; text-transform:none; }
#wallpaperContactForm input,#wallpaperContactForm textarea { width:100%; padding:12px 0; border:0; border-bottom:1px solid #c8c1b5; outline:none; resize:vertical; background:transparent; color:var(--ink); font:400 14px var(--serif); letter-spacing:0; text-transform:none; transition:border-color .2s ease; }
#wallpaperContactForm input:focus,#wallpaperContactForm textarea:focus { border-color:var(--olive); }
#wallpaperContactForm input::placeholder,#wallpaperContactForm textarea::placeholder { color:#9a9990; }
.form-note { margin:0; color:#8a897f; font-size:10px; line-height:1.45; text-align:center; }
.form-success { display:none; padding:14px 0; color:#4d6047; font-family:var(--serif); font-size:19px; line-height:1.05; }
.final-cta { background:#707866; color:#f5f2eb; }
.final-cta-inner { display:flex; align-items:center; justify-content:space-between; gap:40px; padding-top:88px; padding-bottom:88px; }
.final-cta h2 { margin:0; color:#f5f2eb; font-size:clamp(55px, 7vw, 96px); }
.site-footer { background:var(--charcoal); color:#f0ece3; padding:68px 0 25px; }
.footer-grid { display:grid; grid-template-columns:1fr 1fr; gap:60px; padding-bottom:65px; }
.brand--footer { color:#f0ece3; }
.footer-brand > p { max-width:190px; margin:22px 0 0; color:#8e9486; font-family:var(--serif); font-size:21px; line-height:1; }
.footer-links { display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.footer-links > div { display:flex; flex-direction:column; align-items:flex-start; gap:10px; }
.footer-links small { margin-bottom:8px; color:#99a08f; font-size:9px; letter-spacing:.15em; text-transform:uppercase; }
.footer-links button,.footer-links a,.footer-links span { color:#c0c2b8; font-size:11px; text-align:left; }
.footer-links button:hover,.footer-links a:hover { color:#fff; }
.footer-links span { color:#7f8678; line-height:1.5; }
.footer-bottom { display:flex; justify-content:space-between; padding-top:22px; border-top:1px solid rgba(245,242,235,.13); color:#757c70; font-size:9px; letter-spacing:.08em; text-transform:uppercase; }
.mobile-call { display:none; }
.reveal { animation:rise .75s var(--ease) both; }
.reveal-delay-1 { animation-delay:.08s; }.reveal-delay-2 { animation-delay:.15s; }.reveal-delay-3 { animation-delay:.22s; }.reveal-delay-4 { animation-delay:.3s; }
@keyframes rise { from { opacity:0; transform:translateY(20px); } to { opacity:1; transform:translateY(0); } }
@media (max-width: 900px) {
  .content-width { width:min(100% - 44px, 720px); }
  .site-header { padding:0 22px; }
  .desktop-nav { position:absolute; top:84px; right:15px; left:15px; display:none; padding:18px; background:rgba(245,242,235,.98); color:var(--ink); box-shadow:0 15px 30px rgba(25,27,22,.1); }
  .desktop-nav--open { display:flex; flex-direction:column; align-items:stretch; gap:0; }
  .desktop-nav button,.desktop-nav a { padding:14px 10px; text-align:left; }
  .nav-call { margin:6px 0 0; justify-content:center; text-align:center !important; }
  .menu-toggle { display:block; }
  .intro-grid,.about-grid,.contact-grid { grid-template-columns:1fr; gap:48px; }
  .intro-note { justify-self:end; }
  .about-image-wrap { max-width:500px; }
  .about-copy { max-width:600px; }
  .services-grid { grid-template-columns:repeat(2,1fr); }
  .gallery-grid { grid-template-columns:1fr 1fr; grid-template-rows:repeat(3, 310px); }
  .gallery-item--wide { grid-row:span 2; }
  .gallery-item--tall { grid-row:span 1; }
  .gallery-item:last-child { grid-column:span 2; }
  .map-section { grid-template-columns:1fr; }
  .map-copy { padding:80px 22px; }
  .map-frame,.map-frame iframe { min-height:400px; }
  .final-cta-inner { align-items:flex-start; flex-direction:column; }
}
@media (max-width: 600px) {
  .content-width { width:calc(100% - 36px); }
  .section-pad { padding:86px 0; }
  h2 { font-size:54px; }
  .hero { min-height:700px; }
  .hero-content { padding-top:50px; }
  .hero-title { font-size:76px; }
  .hero-subtitle { max-width:290px; font-size:21px; }
  .hero-actions { flex-direction:column; align-items:stretch; width:100%; max-width:285px; }
  .hero-actions .button { width:100%; }
  .hero-caption { right:18px; bottom:24px; }
  .hero-caption span:last-child { display:none; }
  .intro-grid { gap:35px; }
  .large-copy { font-size:24px; }
  .services-grid { grid-template-columns:1fr; }
  .service-card { min-height:220px; }
  .section-heading { align-items:flex-start; flex-direction:column; gap:0; margin-bottom:45px; }
  .heading-aside { margin:0; }
  .image-tag { right:-6px; bottom:18px; font-size:17px; }
  .gallery-grid { display:grid; grid-template-columns:1fr; grid-template-rows:360px repeat(3,260px); gap:10px; }
  .gallery-item--wide,.gallery-item--tall { grid-row:span 1; }
  .gallery-item:last-child { grid-column:auto; }
  .reasons-grid { grid-template-columns:1fr; }
  .reason,.reason:nth-child(3n+2),.reason:nth-child(3n+3) { padding:22px 0; border-left:0; }
  .process-intro { grid-template-columns:1fr; gap:30px; margin-bottom:48px; }
  .process-step { grid-template-columns:35px 1fr 22px; gap:10px; }
  .process-step p { grid-column:2 / 3; }
  .process-step svg { grid-column:3; grid-row:1; }
  .form-card { padding:22px 18px; }
  .form-row { grid-template-columns:1fr; gap:19px; }
  .footer-grid { grid-template-columns:1fr; gap:45px; }
  .footer-bottom { align-items:flex-start; flex-direction:column; gap:10px; }
  .mobile-call { position:fixed; z-index:19; right:14px; bottom:14px; display:inline-flex; align-items:center; gap:8px; padding:13px 16px; border-radius:2px; background:#f5f2eb; color:var(--ink); box-shadow:0 10px 25px rgba(0,0,0,.18); font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; } }
