:root {
  --forest-950: #0b1311;
  --forest-900: #101c18;
  --forest-850: #14241f;
  --forest-800: #193028;
  --forest-700: #28483c;
  --ivory-50: #fbf8f1;
  --ivory-100: #f3eee4;
  --ivory-200: #e4dccd;
  --stone-400: #aaa396;
  --stone-500: #817a6e;
  --ink-900: #171a18;
  --ink-700: #3e443f;
  --brass-400: #c5a36b;
  --brass-500: #ad8950;
  --wood-500: #946746;
  --white: #fff;
  --line-dark: rgba(255,255,255,.13);
  --line-light: rgba(23,26,24,.12);
  --shadow: 0 22px 70px rgba(11,19,17,.16);
  --radius-sm: 8px;
  --radius-md: 16px;
  --radius-lg: 26px;
  --container: 1200px;
  --serif: Georgia, 'Times New Roman', serif;
  --sans: Inter, Arial, Helvetica, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--ivory-50);
  color: var(--ink-900);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; }
button, input, textarea, select { font: inherit; }
::selection { background: var(--brass-400); color: var(--forest-950); }


.container { width: min(calc(100% - 40px), var(--container)); margin-inline: auto; }
.section { padding: 112px 0; }
.section--tight { padding: 74px 0; }
.section--dark { background: var(--forest-950); color: var(--ivory-50); }
.section--forest { background: var(--forest-900); color: var(--ivory-50); }
.section--ivory { background: var(--ivory-100); }
.section--white { background: var(--white); }

.svc-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 18px;
  color: #83683d;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.svc-eyebrow::before { content: ""; width: 32px; height: 1px; background: currentColor; }
/* Desktop hero sits on a photo; give the eyebrow its own dark backing so it stays readable regardless of the image behind it. Below 821px the hero switches to a plain light background (see max-width:820px block), so this does not apply there. */
@media (min-width: 821px) {
  .svc-hero .svc-eyebrow { color: #ead8b6; background-color: rgba(8, 15, 13, 0.78); padding: 4px 10px; }
}
.section--dark .svc-eyebrow, .section--forest .svc-eyebrow { color: #d6b67f; }

.display {
  margin: 0;
  font-family: var(--serif);
  font-weight: 400;
  letter-spacing: -.028em;
  line-height: .98;
}
.h2 { font-size: clamp(42px, 5.4vw, 72px); }
.h3 { font-size: clamp(30px, 3.2vw, 45px); }
.copy-lg { font-size: clamp(18px, 2vw, 21px); line-height: 1.72; color: var(--ink-700); }
.section--dark .copy-lg, .section--forest .copy-lg { color: rgba(251,248,241,.75); }
.muted { color: var(--stone-500); }

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 50px;
  padding: 13px 22px;
  border: 1px solid transparent;
  border-radius: 4px;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: .11em;
  font-size: 11px;
  font-weight: 700;
  transition: .2s ease;
}
.btn svg { width: 15px; height: 15px; }
.btn--primary { background: var(--ivory-50); color: var(--forest-950); }
.btn--primary:hover { background: var(--brass-400); transform: translateY(-1px); }
.btn--outline { color: var(--ivory-50); border-color: rgba(255,255,255,.45); }
.btn--outline:hover { border-color: var(--brass-400); color: var(--brass-400); }
.btn--dark { background: var(--forest-950); color: var(--ivory-50); }
.btn--dark:hover { background: var(--forest-800); transform: translateY(-1px); }
.btn--brass { background: var(--brass-400); color: var(--forest-950); }
.btn--brass:hover { background: #d4b47f; }


/* Hero */
.svc-hero {
  position: relative;
  min-height: 790px;
  display: grid;
  align-items: end;
  overflow: hidden;
  background: var(--forest-950);
  color: var(--white);
}
.svc-hero-media { position: absolute; inset: 0; background: linear-gradient(135deg, #27382f, #151e1b 58%, #4a3426); }
.svc-hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.svc-hero-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(8,15,13,.94) 0%, rgba(8,15,13,.78) 32%, rgba(8,15,13,.26) 62%, rgba(8,15,13,.10) 100%),
    linear-gradient(0deg, rgba(8,15,13,.68) 0%, transparent 36%);
}
.svc-hero-content { position: relative; z-index: 2; padding: 190px 0 82px; max-width: 770px; }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 34px; font-size: 11px; letter-spacing: .07em; text-transform: uppercase; opacity: .72; }
.breadcrumbs a { text-decoration: none; }
.breadcrumbs span[aria-hidden] { opacity: .5; }
.svc-hero h1 { margin: 0; font-family: var(--serif); font-weight: 400; font-size: clamp(58px, 7.6vw, 106px); line-height: .88; letter-spacing: -.035em; text-wrap: balance; }
.hero-lead { max-width: 650px; margin: 27px 0 0; font-size: clamp(18px, 1.8vw, 21px); line-height: 1.6; color: rgba(255,255,255,.80); }
.svc-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.hero-meta { display: flex; flex-wrap: wrap; gap: 9px 28px; margin-top: 44px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.17); font-size: 12px; color: rgba(255,255,255,.68); }
.hero-meta span { position: relative; padding-left: 15px; }
.hero-meta span::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--brass-400); position: absolute; left: 0; top: .67em; }

/* Answer band */
.answer-band { margin-top: -42px; position: relative; z-index: 4; }
.answer-card {
  background: var(--ivory-50);
  box-shadow: var(--shadow);
  display: grid;
  grid-template-columns: 180px minmax(0,1fr);
  gap: 38px;
  padding: 36px 42px;
  border-left: 4px solid var(--brass-400);
}
.answer-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .14em; color: #8a6e40; }
.answer-text { margin: 0; font-size: 18px; line-height: 1.7; color: var(--ink-700); }
.answer-text strong { color: var(--ink-900); }

/* Intro */
.intro-grid { display: grid; grid-template-columns: .95fr 1.05fr; gap: 80px; align-items: start; }
.intro-sticky { position: sticky; top: 120px; }
.intro-copy p:first-child { margin-top: 0; }
.feature-list { margin: 38px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--line-light); }
.feature-list li { display: grid; grid-template-columns: 38px 1fr; gap: 16px; padding: 21px 0; border-bottom: 1px solid var(--line-light); }
.feature-list svg { width: 22px; margin-top: 3px; color: var(--wood-500); }
.feature-list strong { display: block; font-size: 14px; margin-bottom: 2px; }
.feature-list span { display: block; color: #726b61; font-size: 14px; }

/* Media split */
.media-split { display: grid; grid-template-columns: 1.12fr .88fr; min-height: 640px; }
.media-panel { min-height: 580px; background: linear-gradient(135deg,#7d705f,#26342e); position: relative; overflow: hidden; }
.media-panel img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.media-panel::after { content:""; position:absolute; inset:0; background: linear-gradient(0deg,rgba(11,19,17,.26),transparent 40%); pointer-events:none; }
.media-copy { background: var(--forest-900); color: var(--ivory-50); padding: 80px 72px; display: flex; flex-direction: column; justify-content: center; }
.media-copy .svc-eyebrow { color: #d6b67f; }
.media-copy p { color: rgba(251,248,241,.72); }
.media-copy .mini-list { margin-top: 26px; }
.mini-list { display: grid; gap: 13px; }
.mini-list div { display: flex; gap: 11px; align-items: flex-start; font-size: 14px; }
.mini-list div::before { content:""; width: 8px; height: 8px; border: 1px solid var(--brass-400); transform: rotate(45deg); margin-top: 8px; flex: 0 0 auto; }

/* Comparison / options */
.section-head { display: grid; grid-template-columns: 1fr .72fr; gap: 70px; align-items: end; margin-bottom: 54px; }
.section-head p { margin: 0; color: #726b61; font-size: 17px; }
.option-grid { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--line-light); border-left: 1px solid var(--line-light); }
.option-card { padding: 36px 30px 40px; border-right: 1px solid var(--line-light); border-bottom: 1px solid var(--line-light); min-height: 300px; background: rgba(255,255,255,.36); }
.option-num { display: block; color: #ab884f; font-family: var(--serif); font-size: 26px; font-style: italic; margin-bottom: 42px; }
.option-card h3 { margin: 0 0 16px; font-family: var(--serif); font-size: 31px; font-weight: 400; line-height: 1.05; }
.option-card p { margin: 0; color: #726b61; font-size: 14px; }
.option-note { margin-top: 30px; max-width: 840px; color: #726b61; font-size: 13px; }

/* Process */
.process-wrap { display: grid; grid-template-columns: .72fr 1.28fr; gap: 90px; }
.svc-process-intro { position: sticky; top: 120px; align-self: start; }
.svc-process-list { counter-reset: step; border-top: 1px solid var(--line-dark); }
.process-step { counter-increment: step; display: grid; grid-template-columns: 70px 1fr; gap: 28px; padding: 32px 0; border-bottom: 1px solid var(--line-dark); }
.process-step::before { content: "0" counter(step); color: var(--brass-400); font-family: var(--serif); font-size: 25px; font-style: italic; }
.process-step h3 { margin: 0 0 8px; font-size: 18px; color: var(--ivory-50); }
.process-step p { margin: 0; color: rgba(251,248,241,.64); font-size: 14px; }

/* Decision matrix */
.matrix { overflow-x: auto; border: 1px solid var(--line-light); background: var(--white); }
.matrix table { border-collapse: collapse; width: 100%; min-width: 780px; }
.matrix th, .matrix td { text-align: left; vertical-align: top; padding: 21px 23px; border-bottom: 1px solid var(--line-light); border-right: 1px solid var(--line-light); }
.matrix tr:last-child td { border-bottom: 0; }
.matrix th:last-child, .matrix td:last-child { border-right: 0; }
.matrix th { background: var(--forest-950); color: var(--ivory-50); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.matrix td:first-child { font-weight: 700; width: 27%; }
.matrix td { color: var(--ink-700); font-size: 14px; }

/* Quote factors */
.factor-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: var(--line-dark); border: 1px solid var(--line-dark); }
.factor { background: var(--forest-900); padding: 30px; min-height: 200px; }
.factor svg { width: 25px; color: var(--brass-400); margin-bottom: 30px; }
.factor h3 { margin: 0 0 9px; font-size: 15px; }
.factor p { margin: 0; color: rgba(251,248,241,.58); font-size: 13px; }

/* Gallery proof */
.proof-strip { display: grid; grid-template-columns: 1.15fr .85fr; gap: 28px; align-items: stretch; }
.proof-large, .proof-small { position: relative; overflow: hidden; background: #d9d0c1; min-height: 520px; }
.proof-large img, .proof-small img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.proof-stack { display: grid; grid-template-rows: 1fr 1fr; gap: 28px; }
.proof-small { min-height: 246px; }
.proof-caption { position:absolute; left:22px; right:22px; bottom:20px; z-index:3; color:white; display:flex; justify-content:space-between; gap:20px; align-items:end; }
.proof-caption::before { content:""; position:absolute; inset:-70px -22px -20px; background:linear-gradient(0deg,rgba(11,19,17,.8),transparent); z-index:-1; }
.proof-caption strong { font-family:var(--serif); font-size:24px; font-weight:400; }
.proof-caption span { font-size:10px; text-transform:uppercase; letter-spacing:.1em; opacity:.78; }

/* FAQs */
.faq-grid { display: grid; grid-template-columns: .72fr 1.28fr; gap: 90px; }
.svc-faq-list { border-top: 1px solid var(--line-light); }
details { border-bottom: 1px solid var(--line-light); }
summary { cursor: pointer; list-style: none; padding: 25px 48px 25px 0; position: relative; font-weight: 600; font-size: 15px; }
summary::-webkit-details-marker { display:none; }
summary::after { content:"+"; position:absolute; right:0; top:22px; font-family:var(--serif); font-size:25px; font-weight:400; color:var(--brass-500); }
details[open] summary::after { content:"–"; }
.faq-answer { padding: 0 42px 24px 0; color:#726b61; font-size:14px; }
.faq-answer p { margin:0; }

/* Related */
.related-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.related-card { min-height:280px; padding:30px; text-decoration:none; border:1px solid var(--line-dark); display:flex; flex-direction:column; justify-content:space-between; transition:.2s; background:rgba(255,255,255,.025); }
.related-card:hover { border-color:var(--brass-400); transform:translateY(-3px); }
.related-card span { font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--brass-400); }
.related-card h3 { margin:14px 0; font-family:var(--serif); font-size:33px; font-weight:400; line-height:1; }
.related-card p { margin:0; color:rgba(251,248,241,.6); font-size:13px; }
.related-arrow { margin-top:30px; font-size:22px; color:var(--brass-400); }

/* CTA */
.cta { background: var(--brass-400); color:var(--forest-950); }
.cta-inner { display:grid; grid-template-columns:1fr auto; gap:60px; align-items:center; padding:80px 0; }
.cta h2 { margin:0; font-family:var(--serif); font-size:clamp(46px,6vw,76px); font-weight:400; line-height:.94; letter-spacing:-.025em; }
.cta p { margin:18px 0 0; max-width:650px; color:rgba(11,19,17,.72); }
.cta-actions { display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end; }



/* small utility */
.kicker { margin-top:22px; font-size:12px; color:var(--stone-500); }
.dark-note { border:1px solid var(--line-dark); padding:20px 22px; margin-top:30px; color:rgba(251,248,241,.64); font-size:13px; }
.source-note { font-size:11px; color:#726b61; margin-top:22px; }

@media (max-width: 1080px) {
  .media-copy { padding:60px 46px; }
  .factor-grid { grid-template-columns:repeat(2,1fr); }
}

@media (max-width: 820px) {
  .container { width:min(calc(100% - 30px), var(--container)); }
  .section { padding:80px 0; }
  /* Mobile: image on top, text below on a plain background — matches the landing page hero pattern */
  .svc-hero { display:flex; flex-direction:column; min-height:0; background:var(--ivory-50); color:var(--ink-900); }
  .svc-hero-media { position:relative; inset:auto; flex:none; height:clamp(240px,72vw,360px); width:100%; background:none; }
  .svc-hero-media img { position:static; }
  .svc-hero-media::after { content:none; }
  .svc-hero-content { position:static; padding:28px 0 40px; max-width:none; }
  .breadcrumbs { margin-bottom:20px; opacity:.6; }
  .svc-hero h1 { font-size:clamp(38px,10vw,52px); }
  .hero-lead { font-size:16px; max-width:none; color:var(--ink-700); }
  .hero-meta { margin-top:28px; gap:8px 18px; color:#726b61; border-top-color:var(--line-light); }
  .hero-meta span::before { background:var(--brass-500); }
  .svc-hero-actions .btn--primary { background:var(--forest-950); color:var(--ivory-50); }
  .svc-hero-actions .btn--primary:hover { background:var(--brass-400); color:var(--forest-950); }
  .svc-hero-actions .btn--outline { color:var(--forest-950); border-color:var(--line-light); }
  .svc-hero-actions .btn--outline:hover { border-color:var(--brass-400); color:var(--forest-950); }
  .answer-band { margin-top:0; }
  .answer-card { grid-template-columns:1fr; gap:10px; padding:28px 25px; border-left:0; border-top:4px solid var(--brass-400); }
  .intro-grid, .section-head, .process-wrap, .faq-grid, .proof-strip { grid-template-columns:1fr; gap:45px; }
  .intro-sticky, .svc-process-intro { position:static; }
  .media-split { grid-template-columns:1fr; }
  .media-panel { min-height:400px; }
  .media-copy { padding:54px 25px; }
  .option-grid { grid-template-columns:1fr; }
  .option-card { min-height:auto; }
  .process-step { grid-template-columns:56px 1fr; gap:16px; }
  .proof-stack { grid-template-columns:1fr 1fr; grid-template-rows:auto; }
  .proof-large { min-height:460px; }
  .proof-small { min-height:250px; }
  .related-grid { grid-template-columns:1fr; }
  .related-card { min-height:210px; }
  .cta-inner { grid-template-columns:1fr; padding:64px 0; gap:30px; }
  .cta-actions { justify-content:flex-start; }
}

@media (max-width: 560px) {
  .container { width: min(calc(100% - 24px), var(--container)); }
  .section { padding:70px 0; }
  .svc-hero-actions { display:grid; grid-template-columns:1fr; max-width:330px; }
  .svc-hero-actions .btn { width:100%; }
  .hero-meta { display:grid; grid-template-columns:1fr 1fr; font-size:11px; }
  .copy-lg { font-size:17px; }
  .factor-grid { grid-template-columns:1fr; }
  .proof-stack { grid-template-columns:1fr; }
  .proof-large { min-height:400px; }
  .proof-small { min-height:235px; }
  .cta-actions { display:grid; grid-template-columns:1fr; }
  .cta-actions .btn { width:100%; }
  .matrix { margin-inline:-12px; }
}
.frm-fluent-form{font-family:var(--sans)}.frm-fluent-form .ff-t-container{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.frm-fluent-form .ff-el-group{margin-bottom:14px}.frm-fluent-form .ff-el-input--label{display:block;margin-bottom:7px;font-size:11px;font-weight:600;letter-spacing:.01em;color:#3f403a}.frm-fluent-form .ff-el-is-required.asterisk-right:after{content:'*';color:var(--gold);margin-left:3px}.frm-fluent-form .ff-el-form-control{width:100%!important;border:1px solid var(--line)!important;border-radius:0!important;background:#fff!important;color:var(--ink)!important;outline:0;min-height:50px;padding:12px 13px!important;font-family:var(--sans)!important;font-size:14px!important;box-shadow:none!important}.frm-fluent-form textarea.ff-el-form-control{min-height:86px;resize:vertical}.frm-fluent-form .ff-el-form-control:focus{border-color:var(--gold)!important;box-shadow:0 0 0 2px rgba(137,103,49,.08)!important}.frm-fluent-form .ff-btn-submit{display:inline-flex!important;align-items:center;justify-content:center;min-height:50px;padding:13px 24px!important;background:var(--gold)!important;color:#fff!important;border:0!important;border-radius:0!important;font-size:13px!important;font-weight:600!important;cursor:pointer;font-family:var(--sans)!important;box-shadow:none!important}.frm-fluent-form .ff-btn-submit:hover{background:#74562b!important}
@media(max-width:760px){.frm-fluent-form .ff-t-container{grid-template-columns:1fr}}
