:root {
  --burgundy: #7F1D1D;
  --burgundy-deep: #4b1111;
  --gold: #D97706;
  --gold-light: #f7c86f;
  --cream: #FFFBEB;
  --white: #FFFFFF;
  --ink: #1F2937;
  --muted: #6B7280;
  --line: #eadcbf;
  --gray: #F3F4F6;
  --display: "Playfair Display", "Cormorant Garamond", Georgia, serif;
  --body: Inter, "Open Sans", "Source Sans Pro", Arial, sans-serif;
  --shadow: 0 18px 45px rgba(54, 28, 14, .11);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 86px; }
body { margin: 0; background: var(--white); color: var(--ink); font-family: var(--body); font-size: 16px; line-height: 1.65; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }
.container { width: min(100% - 40px, 1180px); margin-inline: auto; }
.skip-link { position: fixed; z-index: 200; top: -100px; left: 16px; padding: 10px 15px; background: var(--gold); color: #271405; font-weight: 700; border-radius: 3px; }
.skip-link:focus { top: 14px; }

.site-header { position: sticky; z-index: 100; top: 0; background: rgba(255,255,255,.98); border-bottom: 1px solid var(--gold); box-shadow: 0 4px 18px rgba(31, 41, 55, .07); }
.header-inner { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.brand { display: inline-flex; align-items: center; min-height: 54px; color: var(--burgundy-deep); }
.brand img { width: 46px; height: 46px; flex: 0 0 auto; }
.brand-copy { display: grid; padding-left: 8px; line-height: 1.05; }
.brand-copy strong { font-family: var(--display); font-size: 1.35rem; letter-spacing: -.03em; }
.brand-copy span { color: var(--muted); font-size: .55rem; letter-spacing: .09em; margin-top: 5px; text-transform: uppercase; }
.desktop-nav, .header-cta { display: none; }
.mobile-menu { position: relative; }
.mobile-menu summary { display: grid; place-content: center; width: 46px; height: 46px; padding: 10px; list-style: none; cursor: pointer; border: 1px solid var(--line); border-radius: 3px; }
.mobile-menu summary::-webkit-details-marker { display: none; }
.mobile-menu summary span { display: block; width: 22px; height: 2px; background: var(--burgundy); margin: 3px 0; transition: transform .22s ease, opacity .22s ease; }
.mobile-menu[open] summary span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.mobile-menu[open] summary span:nth-child(2) { opacity: 0; }
.mobile-menu[open] summary span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
.mobile-nav { position: absolute; top: calc(100% + 11px); right: 0; width: min(300px, calc(100vw - 40px)); padding: 12px; background: var(--white); border: 1px solid var(--line); border-top: 3px solid var(--gold); border-radius: 3px; box-shadow: var(--shadow); }
.mobile-nav a { display: block; min-height: 44px; padding: 10px 12px; color: var(--ink); font-weight: 700; border-bottom: 1px solid var(--gray); }
.mobile-nav a:last-child { border-bottom: 0; }
.mobile-nav .nav-estimate { margin-top: 8px; background: var(--burgundy); color: white; text-align: center; }

.hero { position: relative; min-height: 90vh; display: grid; overflow: hidden; isolation: isolate; background: var(--burgundy-deep); }
.hero-media, .hero-media img { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-media img { object-fit: cover; object-position: center; }
.hero-overlay { position: absolute; inset: 0; background: linear-gradient(110deg, rgba(75, 17, 17, .93) 0%, rgba(104, 22, 22, .78) 42%, rgba(68, 15, 15, .35) 78%, rgba(31, 16, 14, .20) 100%); }
.hero-content { position: relative; z-index: 1; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; min-height: 90vh; padding-top: 66px; padding-bottom: 66px; color: var(--white); animation: rise .8s ease-out both; }
.eyebrow { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; color: var(--gold); font-size: .72rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.eyebrow::before { content: ""; width: 28px; height: 1px; background: currentColor; }
.eyebrow.light { color: var(--gold-light); }
h1, h2, h3 { color: var(--burgundy-deep); font-family: var(--display); font-weight: 600; line-height: 1.12; }
h1 { max-width: 800px; margin: 0; color: var(--white); font-size: clamp(3rem, 10vw, 6.5rem); letter-spacing: -.055em; text-wrap: balance; }
h2 { margin: 0; font-size: clamp(2.25rem, 6vw, 4rem); letter-spacing: -.045em; text-wrap: balance; }
h3 { margin: 0 0 12px; font-size: 1.45rem; letter-spacing: -.025em; }
.hero-copy { max-width: 650px; margin: 22px 0 0; font-size: clamp(1rem, 2.2vw, 1.2rem); line-height: 1.7; }
.hero-actions { display: flex; flex-direction: column; width: 100%; gap: 12px; margin-top: 28px; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 18px; border: 1px solid transparent; border-radius: 3px; font-size: .82rem; font-weight: 800; letter-spacing: .03em; text-align: center; transition: transform .25s ease, background-color .25s ease, border-color .25s ease, box-shadow .25s ease; }
.button span { margin-left: 8px; font-size: 1.2em; }
.button:hover { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(0,0,0,.18); }
.button-gold { background: var(--gold); color: #2d1603; }
.button-gold:hover { background: var(--gold-light); }
.button-ghost { color: white; border-color: rgba(255,255,255,.7); }
.button-ghost:hover { background: rgba(255,255,255,.12); }
.button-burgundy { width: 100%; background: var(--burgundy); color: var(--white); cursor: pointer; }
.button-burgundy:hover { background: var(--burgundy-deep); }
.trust-line { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin: 30px 0 0; color: #fff5db; font-size: .78rem; font-weight: 700; letter-spacing: .02em; }
.trust-line span { color: var(--gold-light); font-size: 1rem; }
.trust-line b { color: var(--gold-light); }

.section { padding: 78px 0; }
.section-white { background: var(--white); }
.section-cream { background: var(--cream); }
.section-heading { max-width: 760px; margin-bottom: 38px; }
.section-heading.centered { margin-inline: auto; text-align: center; }
.section-heading.centered .eyebrow { justify-content: center; }
.section-heading > p:last-child { margin: 15px 0 0; color: #4c5561; }
.service-grid { display: grid; gap: 16px; }
.service-card { position: relative; padding: 28px 23px; background: var(--white); border: 1px solid #eee9dd; border-top: 3px solid transparent; border-radius: 4px; box-shadow: 0 5px 18px rgba(71, 48, 15, .04); transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease; }
.service-card:hover { transform: translateY(-7px); border-top-color: var(--gold); box-shadow: var(--shadow); }
.service-card p { margin: 0; color: var(--muted); font-size: .95rem; }
.service-icon { display: grid; width: 52px; height: 52px; place-items: center; margin-bottom: 21px; color: var(--burgundy); background: #fff8e9; border: 1px solid #f3ddb2; border-radius: 3px; transition: color .28s ease, background-color .28s ease; }
.service-card:hover .service-icon { color: var(--gold); background: var(--cream); }
.service-icon svg { width: 32px; height: 32px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

.gallery { background-image: linear-gradient(rgba(127,29,29,.025) 1px, transparent 1px), linear-gradient(90deg, rgba(127,29,29,.025) 1px, transparent 1px); background-size: 24px 24px; }
.gallery-heading { display: grid; gap: 14px; align-items: end; }
.gallery-heading > p { margin-bottom: 0; }
.gallery-grid { display: grid; gap: 14px; }
.gallery-item { position: relative; aspect-ratio: 4 / 3; margin: 0; overflow: hidden; background: var(--burgundy-deep); border-radius: 4px; }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease; }
.gallery-item::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(46, 11, 11, .86), transparent 57%); opacity: .85; transition: opacity .35s ease; }
.gallery-item figcaption { position: absolute; z-index: 1; bottom: 0; left: 0; width: 100%; padding: 20px; color: white; font-family: var(--display); font-size: 1.16rem; line-height: 1.2; transform: translateY(2px); transition: transform .35s ease; }
.gallery-item:hover img { transform: scale(1.07); }
.gallery-item:hover::after { opacity: 1; }
.gallery-item:hover figcaption { transform: translateY(-5px); }

.about-grid { display: grid; gap: 40px; align-items: center; }
.about-image-wrap { position: relative; max-width: 520px; }
.about-image-wrap picture, .about-image-wrap img { display: block; width: 100%; }
.about-image-wrap img { min-height: 440px; object-fit: cover; border-radius: 4px; }
.about-image-wrap::before { content: ""; position: absolute; z-index: 1; top: 14px; right: -12px; width: 46%; height: 36%; border: 1px solid var(--gold); pointer-events: none; }
.image-monogram { position: absolute; z-index: 2; bottom: -13px; right: -9px; display: grid; width: 76px; height: 76px; place-content: center; background: var(--burgundy); color: var(--gold-light); border: 1px solid var(--gold); font-family: var(--display); font-size: 1.8rem; font-weight: 700; }
.about-copy > p:not(.eyebrow) { margin: 19px 0; color: #4d5560; }
.benefit-list { display: grid; gap: 12px; padding: 0; margin: 25px 0 26px; list-style: none; }
.benefit-list li { position: relative; padding-left: 28px; font-weight: 600; }
.benefit-list li::before { content: "✦"; position: absolute; left: 0; color: var(--gold); }
.text-link { display: inline-flex; gap: 8px; align-items: center; padding-bottom: 4px; color: var(--burgundy); border-bottom: 1px solid var(--gold); font-weight: 800; }
.text-link:hover { color: var(--gold); }

.testimonials { position: relative; overflow: hidden; background: var(--burgundy-deep); color: var(--white); }
.testimonials::before, .testimonials::after { content: "✦"; position: absolute; color: rgba(247, 200, 111, .12); font-family: var(--display); font-size: 22rem; line-height: .5; }
.testimonials::before { top: 8%; left: -6%; }.testimonials::after { right: -6%; bottom: 2%; }
.testimonials .container { position: relative; z-index: 1; }
.light-heading h2, .light-heading > p:last-child { color: var(--white); }
.light-heading > p:last-child { color: #f9e9c3; }
.testimonial-grid { display: grid; gap: 16px; }
.testimonial-card { margin: 0; padding: 26px; background: rgba(255,255,255,.065); border: 1px solid rgba(247, 200, 111, .37); border-radius: 4px; }
.stars { color: var(--gold-light); letter-spacing: 3px; font-size: .9rem; }
.testimonial-card blockquote { margin: 18px 0 21px; font-family: var(--display); font-size: 1.22rem; line-height: 1.45; }
.testimonial-card figcaption { display: grid; color: #f4d999; font-size: .81rem; }
.testimonial-card figcaption strong { color: white; }

.contact-grid { display: grid; gap: 40px; }
.contact-info > p:not(.eyebrow) { color: #4d5560; }
.contact-info address { display: grid; gap: 11px; margin: 25px 0 21px; font-style: normal; }
.contact-info address a, .contact-info address p { display: flex; gap: 12px; align-items: flex-start; margin: 0; color: var(--ink); }
.contact-info address a:hover { color: var(--burgundy); }
.contact-info address span:not(.contact-mark) { display: grid; font-size: .94rem; }
.contact-info address b { color: var(--burgundy); font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; }
.contact-mark { color: var(--gold); line-height: 1.6; }
.service-area { max-width: 620px; margin: 0 0 24px; font-size: .94rem; }
.contact-info iframe { display: block; box-shadow: 0 8px 22px rgba(66, 45, 15, .09); }
.form-wrap { align-self: start; padding: 28px 21px; background: var(--white); border-top: 4px solid var(--gold); border-radius: 4px; box-shadow: var(--shadow); }
.form-kicker { margin: 0 0 21px; color: var(--burgundy); font-family: var(--display); font-size: 1.32rem; font-weight: 700; }
.form-row { display: grid; gap: 15px; }
.field { margin-bottom: 17px; }
.field label { display: block; margin-bottom: 7px; color: var(--ink); font-size: .78rem; font-weight: 800; letter-spacing: .055em; text-transform: uppercase; }
.field label span { color: var(--burgundy); }.field label .optional { color: var(--muted); font-weight: 500; text-transform: none; }
.field input, .field textarea { display: block; width: 100%; min-height: 46px; padding: 11px 12px; color: var(--ink); background: #fffdf7; border: 1px solid #d5d1c7; border-radius: 3px; transition: border-color .22s ease, box-shadow .22s ease; }
.field small { display: block; margin-top: 6px; color: var(--muted); font-size: .75rem; }
.field textarea { min-height: 126px; resize: vertical; }.field input:focus, .field textarea:focus { border-color: var(--gold); outline: 0; box-shadow: 0 0 0 3px rgba(217, 119, 6, .14); }
.required-note { margin: -4px 0 20px; color: var(--muted); font-size: .76rem; }.required-note span { color: var(--burgundy); font-weight: 800; }
.error-message { color: #a11212 !important; font-weight: 700; }
#form-success { padding: 20px; background: #edfaef; color: #166534; border: 1px solid #86efac; border-radius: 3px; font-weight: 700; }

.site-footer { background: #28100f; color: #f6ead2; }
.footer-grid { display: grid; gap: 30px; padding: 52px 0 32px; }
.footer-brand { display: inline-block; color: white; font-family: var(--display); font-size: 2rem; line-height: 1; }.footer-brand em { color: var(--gold-light); font-style: normal; }
.site-footer p { margin: 12px 0 0; color: #dcc9a5; font-size: .87rem; }.site-footer nav { display: flex; flex-wrap: wrap; gap: 7px 17px; align-content: start; }.site-footer nav a, .site-footer address a { min-height: 32px; color: white; font-size: .9rem; }.site-footer nav a:hover, .site-footer address a:hover { color: var(--gold-light); }
.site-footer address { display: grid; gap: 5px; font-style: normal; }.site-footer address p { margin-top: 2px; }
.footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; padding: 19px 0; border-top: 1px solid rgba(255,255,255,.13); }.footer-bottom p { margin: 0; }.back-top { display: inline-flex; gap: 8px; align-items: center; color: var(--gold-light); font-size: .85rem; font-weight: 800; }.back-top span { font-size: 1.2rem; }

@keyframes rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
@media (min-width: 480px) { .container { width: min(100% - 56px, 1180px); }.hero-actions { flex-direction: row; width: auto; }.hero-actions .button { min-width: 194px; }.service-grid { grid-template-columns: repeat(2, 1fr); }.gallery-grid { grid-template-columns: repeat(2, 1fr); }.form-row { grid-template-columns: repeat(2, 1fr); gap: 13px; }.footer-grid { grid-template-columns: 1.2fr 1fr; }.footer-grid address { grid-column: 1 / -1; } }
@media (min-width: 768px) { .header-inner { min-height: 82px; }.mobile-menu { display: none; }.desktop-nav { display: flex; align-items: center; gap: 18px; }.desktop-nav a { position: relative; min-height: 44px; display: inline-flex; align-items: center; color: #46505c; font-size: .8rem; font-weight: 800; }.desktop-nav a::after { content: ""; position: absolute; right: 0; bottom: 7px; left: 0; height: 1px; background: var(--gold); transform: scaleX(0); transform-origin: left; transition: transform .2s ease; }.desktop-nav a:hover { color: var(--burgundy); }.desktop-nav a:hover::after { transform: scaleX(1); }.header-cta { display: inline-flex; align-items: center; justify-content: center; min-height: 43px; padding: 9px 14px; color: var(--burgundy); border: 1px solid var(--gold); border-radius: 3px; font-size: .75rem; font-weight: 800; }.header-cta:hover { background: var(--gold); color: #2c1605; }.hero-content { align-items: center; text-align: center; }.hero-overlay { background: linear-gradient(90deg, rgba(75,17,17,.82), rgba(75,17,17,.5) 45%, rgba(30,8,7,.58)); }.section { padding: 96px 0; }.gallery-heading { grid-template-columns: 1fr minmax(300px, 440px); }.about-grid { grid-template-columns: .88fr 1fr; gap: 7vw; }.testimonial-grid { grid-template-columns: repeat(3, 1fr); }.contact-grid { grid-template-columns: 1fr 1fr; gap: 7vw; }.form-wrap { padding: 34px; }.footer-grid { grid-template-columns: 1.35fr .8fr 1.05fr; }.footer-grid address { grid-column: auto; } }
@media (min-width: 1024px) { .container { width: min(100% - 80px, 1180px); }.brand img { width: 51px; height: 51px; }.brand-copy strong { font-size: 1.5rem; }.desktop-nav { gap: 25px; }.header-cta { padding-inline: 17px; }.hero-actions { margin-top: 34px; }.service-grid { grid-template-columns: repeat(4, 1fr); }.service-card { padding: 32px 25px; }.gallery-grid { grid-template-columns: repeat(3, 1fr); gap: 18px; }.gallery-item figcaption { padding: 23px; }.about-image-wrap img { min-height: 540px; }.about-grid { gap: 9vw; }.contact-grid { gap: 9vw; }.footer-grid { padding-top: 65px; } }
@media (min-width: 1200px) { .hero-content { min-height: calc(90vh - 82px); }.section { padding: 112px 0; }.service-grid { gap: 20px; }.gallery-grid { gap: 20px; }.testimonial-grid { gap: 20px; }.testimonial-card { padding: 30px; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; } }
