/* September 2026: image-led native Elementor sections. Explicit editor widths
   and typography remain owned by Elementor's existing control bridge. */
body.family-field { --ac-gold: var(--accent,#ea7d00); --ac-kicker: var(--accent,#ea7d00); }

/* Plain Elementor service section: layout is stored in native controls, not
   .rev-* rules. Opt out of the legacy importer root-flattening only. */
body.family-field.tpi-elementor-managed:not(.elementor-editor-active)
.tpi-elementor-page-content > .elementor > .e-con.e-parent.tpi-editable-services {
  display: var(--display, flex) !important;
}
/* Low-specificity image-ratio defaults; native Image width/height/fit controls
   can override these. Do not fix container widths, padding or typography here. */
:where(.tpi-editable-service-photo) img { aspect-ratio: 4 / 5; object-fit: cover; }
:where(.tpi-editable-support-photo) img { aspect-ratio: 1; }
:where(.tpi-editable-services) .elementor-heading-title { hyphens: none; overflow-wrap: normal; }
@media (max-width: 1024px) {
  :where(.tpi-editable-support-photo) img { aspect-ratio: 16 / 9; }
}
@media (max-width: 767px) {
  :where(.tpi-editable-service-photo) img { aspect-ratio: 4 / 3; }
  :where(.tpi-editable-support-photo) img { aspect-ratio: 16 / 9; }
}
/* Additional CSS defines cream bands for the light view. Match their surfaces
   to the existing light-on-dark text and logo variants when dark mode is used. */
html[data-theme="dark"] body.family-field .ac-section:is(.tpi-native-component--ac-story,.tpi-native-component--ac-process,.tpi-native-component--ac-group) { background:var(--paper-deep)!important; border-color:var(--ac-rule); }
html[data-theme="dark"] body.family-field .ac-section:is(.tpi-native-component--ac-principles,.tpi-native-component--ac-contact) { background:var(--ac-paper)!important; border-color:var(--ac-rule); }
body.family-field .rev-stack { display:flex; flex-direction:column; align-items:stretch; gap:32px; padding-block:0; }
body.family-field :is(.rev-renewal,.rev-process) { display:block !important; background:var(--paper); padding-block:64px; }
body.family-field.tpi-elementor-managed:not(.elementor-editor-active) :is(.rev-renewal,.rev-process,.rev-quote-panel) .tpi-native-widget { display:block !important; }
body.family-field .rev-stack > .elementor-widget-heading { width:100%; max-width:none; margin:0; }
body.family-field :is(.rev-renewal,.rev-process,.rev-enquiry,.rev-decisions) :is(h2,h3) { hyphens:none; word-break:normal; overflow-wrap:normal; margin:0; line-height:1.2; }
body.family-field .rev-service-photos { display:flex; flex-direction:row; align-items:flex-start; gap:32px; padding:0; }
body.family-field .rev-service { display:flex; flex-direction:column; flex:1 1 0; width:calc((100% - 64px)/3); min-width:0; gap:18px; padding:0; background:none; border:0; }
body.family-field .rev-photo { width:100%; margin:0; padding:0; }
body.family-field .rev-photo img,
body.family-field img.rev-photo { display:block; width:100%; height:auto; object-fit:cover; border-radius:0; filter:none; transform:none; }
body.family-field .rev-service .rev-photo img,
body.family-field .rev-service img.rev-photo { aspect-ratio:4/5; object-position:center; }
body.family-field .rev-support { display:flex; flex-direction:row; flex-wrap:wrap; align-items:stretch; gap:32px; padding:0; border:0; }
body.family-field .rev-support-card { display:flex; flex-direction:row; align-items:stretch; flex:1 1 0; min-width:0; width:calc((100% - 32px)/2); padding:0; gap:0; background:var(--page); border-top:2px solid var(--accent); }
body.family-field .rev-support-card > .rev-photo { flex:0 0 44%; width:44%; }
body.family-field .rev-support-card .rev-photo img { height:100%; min-height:216px; aspect-ratio:1; object-fit:cover; }
body.family-field .rev-support-card > .elementor-widget-heading { flex:1 1 56%; width:56%; min-width:0; align-self:center; padding:24px; }
body.family-field .rev-support-card h3 { line-height:1.3; font-weight:600; text-wrap:balance; }
body.family-field .rev-capabilities .field-capability-index { display:flex; flex-direction:row; flex-wrap:wrap; gap:28px; border:0; background:none; }
body.family-field .rev-capabilities .field-capability-index > article { display:flex; flex-direction:column; justify-content:flex-start; width:calc((100% - 28px)/2); min-height:0; padding:0; gap:16px; border:0; background:none; }
body.family-field .rev-index-photo { width:100%; }
body.family-field .rev-index-photo img,
body.family-field img.rev-index-photo { width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; display:block; }
body.family-field .rev-stack > .elementor-widget-button { align-self:center; width:fit-content; }
body.family-field .rev-process-layout { display:flex; flex-direction:row; align-items:stretch; gap:56px; padding:0; }
body.family-field .rev-process-layout > .rev-photo { flex:1 1 52%; width:52%; }
body.family-field .rev-process-layout > .rev-photo img { aspect-ratio:4/3; height:100%; }
body.family-field .rev-process-list { display:flex; flex-direction:column; justify-content:center; gap:0; flex:1 1 44%; width:44%; padding:0; }
body.family-field .rev-process-list > .elementor-widget-heading { width:100%; padding:23px 0; border-bottom:1px solid var(--line); }
body.family-field .rev-process-list > .elementor-widget-heading:last-child { border-bottom:0; }
body.family-field .rev-process-list h3 { font-weight:500; }
body.family-field .rev-decisions .field-responsibility__layout { display:flex; flex-direction:row; align-items:center; gap:56px; }
body.family-field .rev-decisions .field-responsibility__layout > div:first-child { width:43%; flex:0 1 43%; }
body.family-field .rev-decisions .field-responsibility__row { display:flex; flex-direction:row; flex-wrap:wrap; width:57%; flex:1 1 57%; gap:16px 40px; border:0; }
body.family-field .rev-decisions .field-responsibility__row > article { width:calc((100% - 40px)/2); min-width:0; padding:22px 0; border:0; border-bottom:1px solid #67665c; background:none; }
body.family-field .rev-decisions :is(h2,h3) { color:#f4f0e5; }
body.family-field .rev-decisions .field-responsibility__row h3 { font-weight:500; }
body.family-field .rev-enquiry .field-enquiry__spread { display:flex; flex-direction:row; align-items:flex-start; gap:64px; }
body.family-field .rev-enquiry .field-faq { flex:1 1 52%; width:52%; min-width:0; }
body.family-field .rev-quote-panel { display:flex; flex-direction:column; flex:1 1 44%; width:44%; min-width:0; gap:24px; background:none; border:0; box-shadow:none; padding:0; }
body.family-field .rev-quote-panel .rev-photo img,
body.family-field .rev-quote-panel img.rev-photo { aspect-ratio:16/9; }
body.family-field .rev-quote-panel .field-contact-panel { display:flex; flex-direction:row; align-items:center; flex-wrap:wrap; gap:24px; padding:0; background:none; border:0; }
body.family-field .rev-quote-panel .field-contact-panel > .elementor-widget-button { width:auto; flex:0 1 auto; }
body.family-field .rev-quote-panel .field-contact-panel .button--secondary { background:none; color:var(--ink); border:0; text-decoration:underline; text-underline-offset:5px; padding-inline:0; }
body.family-field .rev-legal { max-width:34ch; font-size:13px; line-height:1.6; color:var(--muted); }
body.family-field .rev-legal p { margin:16px 0 0; font-size:inherit; line-height:inherit; }
body.family-field .field-photo-strip figcaption { gap:0; }
body.family-field .field-capability-index > article { grid-template-columns:1fr; }
body.family-field .field-route-cta .eyebrow,
body.family-field .site-footer__mast { color:#211c17; }
body.family-field :is(.button--primary,.field-route-cta) { color:#211c17; }
body.family-field .button--primary .elementor-button-text { color:#211c17; }
body.family-field .rev-lab-section .tpi-gal[data-layout="mosaic"] .tpi-gal__img { width:100%; height:100%; object-fit:cover; }
@media(max-width:1024px){
 body.family-field .rev-service-photos { gap:20px; }
 body.family-field .rev-service { width:calc((100% - 40px)/3); }
 body.family-field .rev-support-card { width:100%; flex-basis:100%; }
 body.family-field .rev-support-card .rev-photo img { aspect-ratio:16/9; }
 body.family-field :is(.rev-process-layout,.rev-enquiry .field-enquiry__spread,.rev-decisions .field-responsibility__layout) { gap:32px; }
}
@media(max-width:720px){
 body.family-field :is(.rev-renewal,.rev-process) { padding-block:44px; }
 body.family-field .rev-stack { gap:24px; }
 body.family-field :is(.rev-service-photos,.rev-process-layout,.rev-enquiry .field-enquiry__spread,.rev-decisions .field-responsibility__layout) { flex-direction:column; gap:32px; }
 body.family-field :is(.rev-service,.rev-process-layout > .rev-photo,.rev-process-list,.rev-enquiry .field-faq,.rev-quote-panel,.rev-decisions .field-responsibility__layout > div:first-child,.rev-decisions .field-responsibility__row) { width:100%; flex-basis:auto; }
 body.family-field .rev-service .rev-photo img,
 body.family-field .rev-service img.rev-photo { aspect-ratio:4/3; }
 body.family-field .rev-process-list > .elementor-widget-heading { padding:16px 0; }
 body.family-field .rev-decisions .field-responsibility__row { gap:10px 24px; }
 body.family-field .rev-decisions .field-responsibility__row > article { width:calc((100% - 24px)/2); }
 body.family-field .rev-support { flex-direction:column; gap:32px; }
 body.family-field .rev-support-card { flex-direction:column; width:100%; flex-basis:auto; }
 body.family-field .rev-support-card > .rev-photo,
 body.family-field .rev-support-card > .elementor-widget-heading { width:100%; flex-basis:auto; }
 body.family-field .rev-support-card .rev-photo img { height:auto; min-height:0; aspect-ratio:16/9; }
 body.family-field .rev-support-card > .elementor-widget-heading { padding:20px; }
 body.family-field .rev-capabilities .field-capability-index > article { width:100%; }
}
@media(max-width:420px){
 body.family-field .rev-decisions .field-responsibility__row > article { width:100%; }
}
