@import url('https://fonts.googleapis.com/css2?family=Big+Shoulders+Display:wght@600;700;800;900&family=Big+Shoulders+Text:wght@400;500;600;700&display=swap');

:root {
  --site-primary: #131313;
  --site-primary-light: #4c4c4c;
  --site-primary-dark: #010101;
  --site-secondary: #5f5f5f;
  --site-accent: #7563ff;
  --site-background: #f7f7f7;
  --site-surface: #ffffff;
  --site-text: #020202;
  --site-muted: #444444;
  --bs-body-bg: #f7f7f7;
  --bs-body-color: #020202;
  --bs-body-font-family: 'Big Shoulders Text', sans-serif;
  --bs-link-color: #131313;
  --bs-link-hover-color: #010101;
  --size-h1: clamp(2.2rem, 4.5vw, 3rem);
  --size-h2: 1.9rem;
  --size-h3: 1.4rem;
  --size-body: 1.06rem;
  --size-small: .9rem;
  --size-eyebrow: .74rem;
  --section-space: clamp(4rem, 7vw, 6rem);
  --line: rgba(95, 95, 95, .28);
}
* { border-radius: 0 !important; }
html { scroll-behavior: smooth; }
body { background: var(--bs-body-bg); color: var(--bs-body-color); font-family: var(--bs-body-font-family); font-size: var(--size-body); overflow-x: hidden; }
h1, h2, h3, h4, h5, h6 { font-family: 'Big Shoulders Display', serif; font-weight: 800; line-height: .98; text-wrap: balance; }
h1 { font-size: var(--size-h1); }
h2 { font-size: var(--size-h2); }
h3 { font-size: var(--size-h3); }
p, li { text-wrap: pretty; }
a { color: var(--site-primary); text-underline-offset: .22em; transition: color .16s ease; }
a:hover { color: var(--site-primary-dark); }
img { max-width: 100%; }
.btn { border-radius: 0; padding: .72rem 1.15rem; font-weight: 700; box-shadow: 2px 2px 0 currentColor; letter-spacing: .02em; transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease, color .15s ease; border-width: 1.5px; }
.btn:hover { transform: translate(1px, 1px); box-shadow: 1px 1px 0 currentColor; }
.btn-primary { background-color: var(--site-primary); border-color: var(--site-primary); color: #fff; }
.btn-primary:hover, .btn-primary:focus { background-color: var(--site-primary-dark); border-color: var(--site-primary-dark); color: #fff; }
.btn-outline-primary { color: var(--site-primary); border-color: var(--site-primary); background-color: transparent; }
.btn-outline-primary:hover, .btn-outline-primary:focus { background-color: var(--site-primary); border-color: var(--site-primary); color: #fff; }
.bg-primary { background-color: var(--site-primary) !important; }
.text-primary { color: var(--site-primary) !important; }
.border-primary { border-color: var(--site-primary) !important; }
.card { border: 1px solid var(--site-primary); border-radius: 0; box-shadow: 4px 4px 0 var(--site-accent); background: var(--site-surface); transition: transform .16s ease, box-shadow .16s ease; }
.card:hover { transform: translate(1px, 1px); box-shadow: 3px 3px 0 var(--site-accent); }
.form-control, .form-select { border: 1.5px solid var(--site-primary); border-radius: 0; padding: .72rem .8rem; background-color: var(--site-surface); }
.form-control:focus, .form-select:focus { border-color: var(--site-accent); box-shadow: 3px 3px 0 rgba(117, 99, 255, .45); }
.form-check-input { border: 1.5px solid var(--site-primary); }
.form-check-input:checked { background-color: var(--site-accent); border-color: var(--site-accent); }
.site-nav { min-height: 84px; border-bottom: 1px solid var(--line); background: rgba(247,247,247,.98); }
.navbar-brand { font-family: 'Big Shoulders Display', serif; font-size: 1.55rem; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.nav-logo { width: 44px; height: 44px; object-fit: contain; border: 1px solid var(--site-primary); }
.desktop-centered-brand { position: absolute; left: 50%; transform: translateX(-50%); top: 19px; }
.nav-link { font-weight: 700; position: relative; }
.nav-link.active::after, .nav-link:hover::after { content: ''; position: absolute; left: .5rem; bottom: .25rem; width: 24px; height: 3px; background: var(--site-accent); }
.navbar-toggler { border: 1.5px solid var(--site-primary); }
.section-band { padding-top: var(--section-space); padding-bottom: var(--section-space); }
.eyebrow { font-size: var(--size-eyebrow); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 1rem; }
.eyebrow::before { content: ''; display: inline-block; width: 28px; height: 3px; background: var(--site-accent); margin-right: .65rem; vertical-align: middle; }
.accent-title::after { content: ''; display: block; width: 48px; height: 4px; margin-top: .65rem; background: var(--site-accent); }
.text-center .accent-title::after, .accent-title.text-center::after { margin-left: auto; margin-right: auto; }
.hero { min-height: 650px; background: var(--site-background); }
.hero-grid { display: grid; grid-template-columns: 45% 55%; min-height: 650px; }
.hero-visual img { width: 100%; height: 100%; min-height: 650px; object-fit: cover; }
.hero-copy { padding: clamp(3rem, 7vw, 7rem); align-self: center; max-width: 760px; }
.hero-copy p { max-width: 56ch; font-size: 1.2rem; }
.about-band { display: grid; grid-template-columns: 40% 20% 20% 20%; padding: 0; background: var(--site-surface); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.about-visual img { width: 100%; height: 100%; min-height: 390px; object-fit: cover; }
.about-cell { padding: clamp(2rem, 4vw, 4.5rem) clamp(1.2rem, 2.5vw, 2.8rem); border-left: 1px solid var(--line); display: flex; flex-direction: column; justify-content: center; }
.about-cell strong { font-family: 'Big Shoulders Display', serif; font-size: 1.35rem; }
.services-band { border-top: 1px solid var(--line); background: var(--site-background); }
.prose-center { max-width: 64ch; margin-inline: auto; text-align: center; }
.services-image { max-width: 1160px; margin: 3rem auto 0; border: 1px solid var(--site-primary); }
.services-image img { display: block; width: 100%; max-height: 460px; object-fit: cover; }
.service-grid { max-width: 1160px; margin: 3rem auto 0; }
.price { font-family: 'Big Shoulders Display', serif; font-weight: 800; font-size: 1.5rem; font-variant-numeric: tabular-nums; }
.process-band { background: #eeeeee; padding-top: var(--section-space); padding-bottom: var(--section-space); }
.process-inner { max-width: 1280px; margin: -48px auto 0; padding: clamp(2rem, 5vw, 5rem); background: #eeeeee; border: 1px solid var(--line); display: grid; grid-template-columns: 70% 30%; }
.process-main { padding-right: clamp(2rem, 5vw, 5rem); }
.process-aside { border-left: 1px solid var(--site-primary); padding-left: clamp(1.5rem, 3vw, 3rem); }
.process-aside blockquote { font-family: 'Big Shoulders Display', serif; font-size: 1.5rem; font-weight: 700; }
.contact-band { background: var(--site-background); border-top: 1px solid var(--line); }
.contact-inner { max-width: 880px; margin-inline: auto; display: grid; grid-template-columns: 38% 62%; }
.contact-sticky { position: sticky; top: 110px; align-self: start; padding-right: 2rem; }
.contact-content { border-left: 1px solid var(--line); padding-left: clamp(1.5rem, 4vw, 3.5rem); }
.phone-display { display: inline-block; font-family: 'Big Shoulders Display', serif; font-size: clamp(1.65rem, 3vw, 2.35rem); font-weight: 900; font-variant-numeric: tabular-nums; }
.map-wrap { aspect-ratio: 16 / 10; border: 1px solid var(--site-primary); margin-top: 2rem; }
.map-wrap iframe { width: 100%; height: 100%; border: 0; }
.content-hero { padding: clamp(4rem, 8vw, 7rem) 0; border-bottom: 1px solid var(--line); }
.content-section { padding: clamp(3rem, 6vw, 5rem) 0; border-bottom: 1px solid var(--line); }
.content-narrow { max-width: 880px; }
.feature-list { list-style: none; padding: 0; margin: 1.5rem 0 0; }
.feature-list li { padding: .65rem 0; border-top: 1px solid var(--line); }
.feature-list li::before { content: '■'; color: var(--site-accent); font-size: .65rem; margin-right: .7rem; }
.summary-box { border: 1px solid var(--site-primary); padding: 1.4rem; background: var(--site-surface); position: sticky; top: 110px; }
.estimate { font-family: 'Big Shoulders Display', serif; font-size: 1.8rem; font-weight: 900; font-variant-numeric: tabular-nums; }
.private-fields[hidden] { display: none !important; }
.form-status { border-left: 4px solid var(--site-accent); padding: 1rem; background: #eeeaff; margin-top: 1rem; }
.legal-main { max-width: 820px; margin-inline: auto; padding: var(--section-space) 1rem; }
.legal-main h2 { margin-top: 2.6rem; }
.site-footer { border-top: 1px solid var(--site-primary); background: var(--site-surface); padding: 3.5rem 0 1.5rem; }
.footer-title { font-family: 'Big Shoulders Display', serif; font-size: 1.5rem; font-weight: 900; }
.footer-bottom { border-top: 1px solid var(--line); margin-top: 2.5rem; padding-top: 1.25rem; font-size: var(--size-small); }
.footer-links { display: flex; flex-wrap: wrap; gap: .7rem 1.1rem; }
.cookie-banner { position: fixed; z-index: 1080; left: 1rem; right: 1rem; bottom: 1rem; max-width: 720px; margin-inline: auto; padding: 1rem; border: 1.5px solid var(--site-primary); background: var(--site-surface); box-shadow: 5px 5px 0 var(--site-accent); }
.cookie-banner[hidden] { display: none; }
.icon-box svg { width: 28px; height: 28px; fill: var(--site-accent); }
.not-found { min-height: 60vh; display: grid; place-items: center; text-align: center; padding: var(--section-space) 1rem; }
@media (max-width: 991.98px) {
  .desktop-centered-brand { position: static; transform: none; }
  .nav-link.active::after, .nav-link:hover::after { left: 0; bottom: 0; }
  .navbar-collapse { padding: 1rem 0; }
  .hero-grid { grid-template-columns: 1fr; }
  .hero-visual { order: 2; }
  .hero-visual img { min-height: 420px; max-height: 520px; }
  .hero-copy { order: 1; max-width: none; text-align: center; }
  .hero-copy p { margin-inline: auto; }
  .about-band { grid-template-columns: 1fr 1fr; }
  .about-visual img { min-height: 330px; }
  .process-inner { grid-template-columns: 1fr; }
  .process-main { padding-right: 0; }
  .process-aside { border-left: 0; border-top: 1px solid var(--site-primary); padding: 2rem 0 0; margin-top: 2rem; }
}
@media (max-width: 575.98px) {
  .about-cell { min-height: 250px; }
  .contact-inner { grid-template-columns: 1fr; }
  .contact-sticky { position: static; padding: 0 0 2rem; }
  .contact-content { border-left: 0; border-top: 1px solid var(--line); padding: 2rem 0 0; }
  .footer-links { flex-direction: column; }
}
