/* Conditional stylesheet: every selector is confined to regional page content. */
.estate-region { --region-ink:#172333; --region-muted:#556273; --region-line:#cbd4df; --region-accent:#214ccd; padding-top:28px; padding-bottom:72px; color:var(--region-ink); overflow-wrap:anywhere; }
.estate-region *, .estate-region *::before, .estate-region *::after { box-sizing:border-box; }
.estate-region h1, .estate-region h2, .estate-region h3 { color:var(--region-ink); font-family:var(--font-heading,'Manrope','Segoe UI',sans-serif); }
.estate-region h2 { margin:0 0 24px; font-size:clamp(1.7rem,3vw,2.5rem); line-height:1.2; letter-spacing:-.035em; }
.estate-region h3 { margin:0 0 14px; font-size:1.25rem; line-height:1.35; }
.estate-region a { text-underline-offset:5px; }
.estate-region a:focus-visible, .estate-region summary:focus-visible { outline:3px solid var(--region-accent); outline-offset:5px; }
.estate-region p { line-height:1.75; }
.estate-region .estate-region-hero { position:static; inset:auto; z-index:auto; display:grid; grid-template-columns:1.45fr 1fr; gap:0; padding:0; margin:0; border:1px solid var(--region-line); border-radius:20px; overflow:hidden; background:#fff; }
.estate-region-hero > div { min-width:0; padding:clamp(28px,4vw,52px); }
.estate-region-hero h1 { margin:0 0 24px; font-size:clamp(2.15rem,4vw,3.6rem); line-height:1.1; letter-spacing:-.045em; }
.estate-region-hero p { max-width:54ch; color:var(--region-muted); }
.estate-region-eyebrow { display:block; margin:0 0 18px; color:var(--region-muted); font-size:.75rem; line-height:1.6; letter-spacing:.08em; font-weight:600; text-transform:uppercase; }
.estate-region-lead { font-size:clamp(1.125rem,1.6vw,1.45rem); }
.estate-region-actions { display:flex; flex-wrap:wrap; gap:20px; align-items:center; margin-top:28px; }
.estate-region-actions > a:not(.estate-region-button) { display:inline-flex; align-items:center; min-height:44px; font-size:.9375rem; line-height:1.5; }
.estate-region-hero .estate-region-conditions-link { margin:16px 0 0; font-size:.875rem; }
.estate-region-button { display:inline-flex; justify-content:center; align-items:center; min-height:50px; padding:13px 22px; border-radius:10px; background:var(--region-accent); color:#fff; font-size:.9375rem; font-weight:600; text-decoration:none; }
.estate-region-button:hover { background:#193ba5; color:#fff; }
.estate-region-hero-note { position:relative; isolation:isolate; padding:clamp(28px,4vw,48px); background:#edf3fd; min-width:0; }
.estate-region .estate-region-hero-note::before { content:''; position:absolute; inset:0; z-index:-1; background:url('images/region-coverage.svg') center / cover no-repeat; opacity:.9; pointer-events:none; }
.estate-region .estate-region-hero-note h2 { color:var(--region-ink); margin:0 0 24px; }
.estate-region .estate-region-hero-note .estate-region-eyebrow { color:var(--region-muted); }
.estate-region .estate-region-hero-note p { color:#405673; }
.estate-region .estate-region-hero-note a { display:block; width:fit-content; color:#193f84; margin-top:20px; }
.estate-region-phone { font-size:clamp(1.125rem,1.8vw,1.5rem); font-weight:600; }
.estate-region section.estate-region-section { padding:0; margin:52px 0 0; scroll-margin-top:110px; }
.estate-region-copy { margin-top:38px; max-width:900px; color:var(--region-muted); line-height:1.8; }
.estate-region-copy h2 { margin-top:42px; }
.estate-region-copy h3 { margin-top:28px; }
.estate-region-copy p { margin:0 0 20px; }
.estate-region-copy ul, .estate-region-copy ol { padding-left:23px; margin:20px 0; }
.estate-region-copy li { margin-bottom:10px; }
.estate-region-copy strong { color:var(--region-ink); }
.estate-region-copy table { border-collapse:collapse; width:100%; margin:24px 0; background:#fff; }
.estate-region-copy th, .estate-region-copy td { padding:18px 20px; border:1px solid var(--region-line); text-align:left; vertical-align:top; }
.estate-region-copy th { width:26%; min-width:112px; overflow-wrap:normal; color:var(--region-ink); font-weight:600; }
.estate-region-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.estate-region-card { display:flex; flex-direction:column; min-width:0; padding:28px; border:1px solid var(--region-line); border-radius:16px; background:#fff; text-decoration:none; }
.estate-region-card p { color:var(--region-muted); margin:0 0 24px; }
.estate-region-card-link { margin-top:auto; padding-top:8px; color:var(--region-accent); font-size:.9375rem; font-weight:600; }
.estate-region-card:hover { border-color:var(--region-accent); background:#f7f9ff; }
.estate-region section.estate-region-dark { border-radius:18px; background:#172a40; padding:clamp(25px,4vw,45px); color:#fff; }
.estate-region-dark h2, .estate-region-dark strong { color:#fff; }
.estate-region-dark p, .estate-region-dark .estate-region-copy { color:#c5d2e4; }
.estate-region-dark .estate-region-copy { margin:0; }
.estate-region-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px; padding:0; margin:30px 0 0; list-style:none; counter-reset:region-step; }
.estate-region-steps li { counter-increment:region-step; }
.estate-region-steps li::before { content:'0' counter(region-step); display:block; color:#a6bfe4; margin-bottom:18px; }
.estate-region-steps strong { font-size:1.125rem; }
.estate-region-steps p { margin:12px 0 0; }
.estate-region-faq { border-top:1px solid var(--region-line); }
.estate-region-faq details { border:0; border-bottom:1px solid var(--region-line); border-radius:0; padding:0; background:transparent; }
.estate-region-faq summary { padding:24px 8px; cursor:pointer; font-size:1.125rem; font-weight:600; line-height:1.55; }
.estate-region-faq details > div { padding:0 8px 24px; max-width:850px; color:var(--region-muted); }
.estate-region-faq p { margin:0 0 12px; }
.estate-region-related { display:flex; flex-wrap:wrap; gap:18px 32px; margin-top:48px; padding-top:28px; border-top:1px solid var(--region-line); font-size:.9375rem; }
.estate-region-editor { margin-top:48px; padding:24px; border:1px dashed var(--region-line); border-radius:12px; }
.estate-region-editor h2 { font-size:1.25rem; }
.estate-region .estate-region-examples { margin-top:44px; padding-top:32px; border-top:1px solid var(--region-line); }
.estate-region .estate-region-examples > h2 { margin-top:0; }
.estate-region .estate-region-example-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; align-items:stretch; margin:24px 0 0; }
@media (min-width:1001px) { .estate-region .estate-region-example-grid:has(> .wp-block-column:nth-child(3):last-child) { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (min-width:1001px) {
  .estate-region > .estate-region-copy:has(> .estate-region-examples .estate-region-example-grid > .wp-block-column:nth-child(3):last-child) { max-width:none; }
  .estate-region > .estate-region-copy:has(> .estate-region-examples .estate-region-example-grid > .wp-block-column:nth-child(3):last-child) > :not(.estate-region-examples),
  .estate-region > .estate-region-copy > .estate-region-examples h2,
  .estate-region > .estate-region-copy > .estate-region-examples .estate-region-examples-intro { max-width:900px; }
}
.estate-region .estate-region-example-grid > .wp-block-column { min-width:0; display:flex; }
.estate-region .estate-region-example { width:100%; min-width:0; background:#fff; border:1px solid var(--region-line); border-radius:16px; overflow:hidden; }
.estate-region .estate-region-example-photo { margin:0; padding:0; }
.estate-region .estate-region-example-photo img { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; }
.estate-region .estate-region-example-body { padding:24px; }
.estate-region .estate-region-example-body h3 { margin:16px 0 20px; }
.estate-region .estate-region-example-body p { font-size:.9375rem; line-height:1.7; margin:0 0 16px; }
.estate-region .estate-region-example-body p:last-child { margin-bottom:0; }
.estate-region .estate-region-example-body .estate-region-example-label { display:inline-flex; padding:5px 10px; border-radius:6px; background:#edf2ff; color:var(--region-accent); font-size:.75rem; line-height:1.4; font-weight:700; }
@media (max-width:700px) { .estate-region .estate-region-example-grid { grid-template-columns:1fr; } .estate-region .estate-region-example-body { padding:22px; } }
@media (max-width:600px) { .estate-region-actions { align-items:stretch; gap:12px; } .estate-region-actions > a { width:100%; } .estate-region-related a { display:flex; align-items:center; min-height:44px; } }
@media (max-width:900px) { .estate-region .estate-region-hero { grid-template-columns:1fr; } .estate-region-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .estate-region-steps { gap:24px; } }
@media (max-width:600px) { .estate-region { padding-top:20px; padding-bottom:44px; } .estate-region-hero > div, .estate-region-hero-note { padding:26px 22px; } .estate-region-hero h1 { font-size:2.125rem; } .estate-region h2 { font-size:1.75rem; } .estate-region-grid, .estate-region-steps { grid-template-columns:1fr; } .estate-region-card { padding:24px; } .estate-region section.estate-region-section { margin-top:36px; } .estate-region-copy th, .estate-region-copy td { padding:13px 10px; font-size:.9375rem; } .estate-region-related { flex-direction:column; } }

/* Final interior-page layer. Homepage and calculator styles remain untouched. */
body:not(.home) :is(.estate-region-button, .estate-about-button, .estate-contacts-request, .estate-pricing-button),
body:not(.home).estate-service-view .estate-entry-content .estate-service-action {
  min-height: 54px;
  border-radius: var(--radius, 12px);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.5;
}

/* Structural cards share a radius; thumbnails, icons and badges keep theirs. */
body:not(.home) .estate-region :is(.estate-region-hero, .estate-region-card, .estate-region-example),
body:not(.home) .estate-region-catalog .estate-catalog-hero,
body:not(.home) .estate-about :is(.estate-about-hero, .estate-about-service, .estate-about-document),
body:not(.home) .estate-pricing section.estate-pricing-group {
  border-radius: var(--card-radius, 18px);
}

/* Use one section interval instead of stacking padding on both neighbours. */
body:not(.home) .estate-about section.estate-about-story {
  padding: 48px 0 0;
}
body:not(.home) .estate-about :is(section.estate-about-services, section.estate-about-documents, section.estate-about-work) {
  padding: 48px 0 0;
}
body:not(.home) .estate-about section.estate-about-principles {
  margin-top: 48px;
}
body:not(.home) .estate-report-guide > .eyebrow + h2 {
  margin-top: 0;
}

/* Override global section padding only on the regional examples container. */
body:not(.home) .estate-region section.estate-region-examples {
  padding: 32px 0 0;
}
body:not(.home) .estate-region .estate-region-examples h2 {
  margin-top: 0;
  margin-bottom: 24px;
}

/* Both two-card and three-card rows align with the surrounding page blocks.
   WordPress may insert an inner group wrapper; keep only prose constrained. */
@media (min-width: 1001px) {
  body:not(.home) .estate-region > .estate-region-copy:has(.estate-region-examples) {
    max-width: none;
  }
  body:not(.home) .estate-region > .estate-region-copy > .wp-block-group__inner-container {
    max-width: none;
  }
  body:not(.home) .estate-region > .estate-region-copy:has(> .estate-region-examples .estate-region-example-grid > .wp-block-column:nth-child(3):last-child) > :is(table, .wp-block-table),
  body:not(.home) .estate-region > .estate-region-copy > .wp-block-group__inner-container > :is(table, .wp-block-table) {
    max-width: none;
  }
  body:not(.home) .estate-region > .estate-region-copy > :not(.estate-region-examples):not(.wp-block-group__inner-container):not(table):not(.wp-block-table),
  body:not(.home) .estate-region > .estate-region-copy > .wp-block-group__inner-container > :not(.estate-region-examples):not(table):not(.wp-block-table),
  body:not(.home) .estate-region .estate-region-examples :is(h2, .estate-region-examples-intro) {
    max-width: 900px;
  }
}

/* The regional programme table is a page-width panel, not a prose column. */
body:not(.home) .estate-region > .estate-region-copy table {
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid var(--line);
  border-radius: var(--card-radius, 18px);
  overflow: hidden;
}
body:not(.home) .estate-region > .estate-region-copy table :is(th, td) {
  border: 0;
  border-bottom: 1px solid var(--line);
}
body:not(.home) .estate-region > .estate-region-copy table :is(th, td) + :is(th, td) {
  border-left: 1px solid var(--line);
}
body:not(.home) .estate-region > .estate-region-copy table > :is(tbody, tfoot):last-child > tr:last-child > :is(th, td) {
  border-bottom: 0;
}

@media (max-width: 600px) {
  body:not(.home) .estate-about section.estate-about-story,
  body:not(.home) .estate-about :is(section.estate-about-services, section.estate-about-documents, section.estate-about-work) {
    padding: 32px 0 0;
  }
  body:not(.home) .estate-about section.estate-about-principles {
    margin-top: 32px;
  }
}

/* Suppress the textual no-JS fallback only after navigation is enhanced. */
body:not(.home) .estate-mobile-nav.is-enhanced noscript {
  display: none;
}

