:root {
  --site-primary: #b94259;
  --site-primary-dark: #5b0003;
  --site-accent: #571500;
  --site-secondary: #72885c;
  --site-surface: #ffecf4;
  --site-secondary-text: #745254;
  --bs-body-bg: #f7e8eb;
  --bs-body-color: #1d0b0c;
  --bs-body-font-family: 'Newsreader', serif;
  --bs-link-color: #b94259;
  --bs-link-hover-color: #5b0003;
  --type-body: 1.125rem;
  --type-small: .95rem;
  --type-eyebrow: .78rem;
  --type-h1: clamp(2.4rem, 5vw, 3.4rem);
  --type-h2: 2.2rem;
  --type-h3: 1.5rem;
  --section-space: clamp(5rem, 8vw, 7rem);
}
* { box-sizing: border-box; }
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(--type-body); line-height: 1.55; overflow-x: hidden; }
h1, h2, h3, h4, h5, h6 { font-family: 'Newsreader', serif; font-weight: 600; line-height: 1.05; text-wrap: balance; }
h1 { font-size: var(--type-h1); } h2 { font-size: var(--type-h2); } h3 { font-size: var(--type-h3); }
p { max-width: 68ch; text-wrap: pretty; }
a { color: var(--site-primary); text-underline-offset: .18em; transition: color .2s ease; }
a:hover { color: var(--site-primary-dark); }
.btn { border-radius: 8px; padding: .7rem 1.15rem; font-weight: 600; box-shadow: none; letter-spacing: .01em; transition: background-color .2s ease, border-color .2s ease, color .2s ease; border-width: 1px; }
.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, .form-control, .form-select, .form-check-input, .navbar-toggler, img, iframe { border-radius: 0 !important; box-shadow: none !important; }
.form-control, .form-select { border-color: #b99094; background: #fff7f8; font-size: 1rem; padding: .7rem .8rem; }
.form-control:focus, .form-select:focus { border-color: var(--site-primary); box-shadow: 0 0 0 .15rem rgba(185,66,89,.16) !important; }
.navbar { background: #f7e8eb; border-bottom: 1px solid rgba(114,136,92,.55); }
.navbar-brand { color: var(--bs-body-color); font-weight: 650; font-size: 1.25rem; text-decoration: none; }.navbar-brand:hover { color: var(--site-primary-dark); }
.brand-logo { width: 34px; height: 34px; object-fit: contain; }
.nav-link { color: var(--bs-body-color); font-size: 1rem; }.nav-link:hover, .nav-link:focus { color: var(--site-primary); }
.section-rule { width: 60%; border: 0; border-top: 1px solid var(--site-secondary); margin: 0 auto; opacity: .75; }
.eyebrow { color: var(--site-secondary-text); font-size: var(--type-eyebrow); letter-spacing: .1em; text-transform: uppercase; margin-bottom: 1rem; }
.site-section { padding: var(--section-space) 0; }
.hero { position: relative; min-height: 620px; display: flex; align-items: end; isolation: isolate; padding: clamp(3rem, 7vw, 6rem); background: #f7e8eb; }
.hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.hero-panel { max-width: 720px; padding: clamp(2rem, 4vw, 3.5rem); background: rgba(247,232,235,.94); border-left: 5px solid var(--site-primary); }
.hero-panel .lead { font-size: 1.3rem; }
.about-section { background: var(--site-surface); padding: clamp(7.5rem, 12vw, 10.5rem) 0; }
.about-column { border-top: 1px solid var(--site-secondary); padding-top: 1.2rem; }
.services-section { background: rgba(226,129,129,.18); }.services-overlap { margin-top: -48px; background: #f7e8eb; padding: clamp(2rem, 4vw, 3rem); border-top: 4px solid var(--site-primary); }
.price-list { border-top: 1px solid var(--site-secondary); }.price-item { border-bottom: 1px solid rgba(114,136,92,.65); padding: 1rem 0; }.price-item strong { font-variant-numeric: tabular-nums; white-space: nowrap; }
.service-figure { margin: 2.2rem 0 0; }.service-figure img { width: 100%; height: 330px; object-fit: cover; }.service-figure figcaption { font-size: var(--type-small); color: var(--site-secondary-text); margin-top: .55rem; }
.process-section { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, 42vw); background: var(--site-surface); }.process-copy { padding: var(--section-space) clamp(1.5rem, 7vw, 10rem); padding-right: clamp(1.5rem, 5vw, 6rem); }.process-visual img { width: 100%; height: 100%; min-height: 560px; object-fit: cover; }
.process-step { border-top: 1px solid var(--site-secondary); padding-top: 1rem; }.step-no { font-variant-numeric: tabular-nums; color: var(--site-primary); font-size: 1.1rem; }
.contact-section { display: grid; grid-template-columns: minmax(320px, 42vw) minmax(0, 1fr); background: #f7e8eb; }.contact-map iframe { width: 100%; height: 100%; min-height: 610px; border: 0; }.contact-copy { padding: var(--section-space) clamp(1.5rem, 7vw, 10rem); padding-left: clamp(1.5rem, 5vw, 6rem); }.contact-detail { border-top: 1px solid var(--site-secondary); padding-top: .8rem; }.phone-large { display: inline-block; font-size: 1.65rem; font-variant-numeric: tabular-nums; color: var(--bs-body-color); }
.page-hero { padding: clamp(4rem, 8vw, 7rem) 0; border-bottom: 1px solid var(--site-secondary); }.content-section { padding: clamp(3.5rem, 6vw, 5.5rem) 0; }.content-section + .content-section { border-top: 1px solid rgba(114,136,92,.65); }.content-section .price-callout { border-left: 4px solid var(--site-primary); padding-left: 1.2rem; font-size: 1.22rem; }
.form-panel { background: var(--site-surface); border: 1px solid rgba(114,136,92,.7); padding: clamp(1.5rem, 4vw, 3rem); }.confirmation { display: none; border: 1px solid var(--site-secondary); padding: 1.5rem; background: #f7e8eb; }.confirmation.is-visible { display: block; }
.legal-main { max-width: 880px; margin: 0 auto; padding: clamp(4rem, 8vw, 7rem) 1.5rem; }.legal-main h2 { margin-top: 2.5rem; font-size: 1.7rem; }.legal-main h3 { margin-top: 1.6rem; font-size: 1.25rem; }
.site-footer { border-top: 1px solid var(--site-secondary); padding-top: 1.35rem; font-size: var(--type-small); }.footer-top { padding-bottom: 1.3rem; }.footer-name { font-weight: 650; font-size: 1.12rem; }.footer-links a { margin-right: .8rem; white-space: nowrap; }.footer-bottom { text-align: center; border-top: 1px solid rgba(114,136,92,.5); padding: .8rem 0; }
.cookie-banner { display: none; position: fixed; z-index: 1055; right: 1rem; bottom: 1rem; max-width: 440px; padding: 1.2rem; background: #ffecf4; border: 1px solid var(--site-secondary); }.cookie-banner.is-visible { display: block; }.cookie-banner p { font-size: var(--type-small); margin-bottom: .8rem; }
.not-found { max-width: 700px; margin: 0 auto; padding: clamp(6rem, 14vw, 10rem) 1.5rem; }.not-found ul { padding-left: 1.2rem; }
@media (max-width: 991.98px) { .navbar .btn { margin-top: .8rem; }.process-section, .contact-section { grid-template-columns: 1fr; }.process-copy, .contact-copy { padding: var(--section-space) 1.5rem; }.process-visual { order: 2; }.process-visual img { min-height: 360px; }.contact-map { order: 2; }.contact-map iframe { min-height: 360px; }.hero { min-height: 550px; } }
@media (max-width: 575.98px) { body { font-size: 1.06rem; }.hero { padding: 1.25rem; align-items: end; }.hero-panel { padding: 1.5rem; }.hero-panel .lead { font-size: 1.12rem; }.service-figure img { height: 250px; }.footer-links a { display: inline-block; margin-bottom: .35rem; } }
