/* Decorative marks derived from the approved logo-inspired ornament series.
   The SVG files keep their transparent edges and are versioned by the build.
   Pseudo-elements carry no information and never intercept pointer events. */
/* Heading ornaments were removed sitewide. Keep the authored HTML classes
   and anchors, without generating a mark or reserving an icon-sized slot. */
.brand-section-heading::before,
.brand-page-intro::before {
  content:none;
}

.brand-photo-frame,
.home-page .brand-photo-frame,
.service-page .brand-photo-frame {
  position:relative;
  overflow:visible;
  isolation:isolate;
}
.brand-photo-frame > img {
  position:relative;
  z-index:1;
  border-radius:var(--site-radius,12px);
}
.brand-photo-frame::before,
.brand-photo-frame::after {
  content:'';
  position:absolute;
  z-index:0;
  background-position:center;
  background-size:contain;
  background-repeat:no-repeat;
  pointer-events:none;
  opacity:.8;
}
.brand-photo-frame::before {
  width:220px;
  height:220px;
  left:-44px;
  bottom:-30px;
  background-image:url('/media/corner-fragment.84ed821b38aa69ac.svg');
}
.brand-photo-frame::after {
  width:190px;
  height:85px;
  right:-14px;
  top:-28px;
  background-image:url('/media/paired-strokes.aa2d1ff509ae0219.svg');
}

/* Native-size photographs use the same photo role, scaled to their slot.
   Only the decoration changes; image dimensions and cover/contain stay intact. */
.brand-photo-frame.service-feature-compact::before {width:180px;height:180px;left:-24px;bottom:-22px;}
.brand-photo-frame.service-feature-compact::after {width:165px;height:74px;right:-10px;top:-24px;}

/* A single secondary photograph gets one diagonal mark, behind the photo.
   Hidden original white placeholder photographs do not receive this class. */
.brand-side-photo {
  position:relative;
  isolation:isolate;
}
.brand-side-photo::after {
  content:'';
  position:absolute;
  right:-20px;
  bottom:-24px;
  width:150px;
  height:163px;
  z-index:-1;
  background:url('/media/diagonal-trail.b7aae8221e76bffc.svg') center/contain no-repeat;
  opacity:.75;
  pointer-events:none;
}

/* Terminal marks use normal flow, away from controls and information. */
.brand-contact-panel::after,
.brand-state-panel::after {
  content:'';
  display:block;
  flex:none;
  pointer-events:none;
}
.brand-contact-panel::after {
  width:90px;
  height:72px;
  margin:20px 0 0;
  background:url('/media/small-splashes.4a2f50913cb7c3cd.svg') center/contain no-repeat;
  opacity:.75;
}
.brand-state-panel::after {
  width:150px;
  height:63px;
  margin:24px auto 0;
  background:url('/media/footer-mark.73af7d8292e674a1.svg') center/contain no-repeat;
  opacity:.6;
}

.home-page .brand-gallery-frame {
  position:relative;
  isolation:isolate;
}
.home-page .brand-gallery-frame::after {
  display:none;
}

/* Service heroes have the approved curved paint mark above the continuous
   page grid, with all reading content and controls on the next layer. */
.service-page .service-hero-band {
  position:relative;
  isolation:isolate;
}
.service-page .service-hero-band::before {
  content:'';
  position:absolute;
  z-index:0;
  pointer-events:none;
  inset:18px 22px;
  background-color:#d5dfe9;
  opacity:.3;
  -webkit-mask:url('/media/service-arc-grid.1e9f64ba789090e0.svg') center/contain no-repeat;
  mask:url('/media/service-arc-grid.1e9f64ba789090e0.svg') center/contain no-repeat;
}
.service-page .service-hero-band > .service-container {
  position:relative;
  z-index:1;
}
@media(max-width:991px) {
  .service-page .service-hero-band::before {
    inset:16px 8px auto;
    height:min(86vw,420px);
  }
}

/* Service photographs share the approved full-page background.
   Keep their own dimensions and stacking, without the former painted mask. */
.service-page .service-feature-wrap {
  position:relative;
  isolation:isolate;
}
.service-page .service-feature-wrap::before {
  content:none;
}
.service-page .service-feature-media {position:relative;z-index:1;}
.service-page .service-feature-media.brand-photo-frame::before,
.service-page .service-feature-media.brand-photo-frame::after {display:none;}

/* Work sample photographs share the homepage grid without extra painted marks.
   Keep card focus and gallery controls in their existing stacking contexts. */
.home-page .home-gallery-grid {position:relative;isolation:isolate;}
.home-page .home-gallery-grid::before,
.home-page .home-gallery-grid::after {content:none;}
.home-page .home-gallery-card {position:relative;z-index:1;}

/* FAQ cards share the continuous page grid. The former painted mark is gone;
   keep the existing content layers and focus ring clearance. */
.service-page .service-faq {position:relative;isolation:isolate;}
.service-page .service-faq::before {
  content:none;
}
.service-page .service-faq-heading,
.service-page .service-faq-list {position:relative;z-index:1;}

/* Hero and company share the faint paint treatment with distinct silhouettes. */
.home-page .header-wrapper,
.home-page .home-company {
  position:relative;
  isolation:isolate;
}
.home-page .header-wrapper::before,
.home-page .home-company::before {
  content:'';
  position:absolute;
  z-index:0;
  pointer-events:none;
  background-color:#d5dfe9;
  -webkit-mask:url('/media/wide-grid.97be7c3aca5aa6c3.svg') center/contain no-repeat;
  mask:url('/media/wide-grid.97be7c3aca5aa6c3.svg') center/contain no-repeat;
}
.home-page .header-wrapper::before {
  -webkit-mask-image:url('/media/hero-split-grid.6730b5308ad7778d.svg');
  mask-image:url('/media/hero-split-grid.6730b5308ad7778d.svg');
}
.home-page .section-header-large,
.home-page .home-company > .container-large-2 {
  position:relative;
  z-index:1;
}
.home-page .header-wrapper::before,
.home-page .home-company::before {
  inset:18px 22px;
  opacity:.3;
}
/* These two photographs share the larger homepage section background. */
.home-page .header-wrapper .brand-photo-frame::before,
.home-page .header-wrapper .brand-photo-frame::after,
.home-page .home-company .brand-photo-frame::before,
.home-page .home-company .brand-photo-frame::after {display:none;}

/* The approved tax callout has its own low painted silhouette. Its mask is
   decorative and leaves the authority logo/link column clear. */
.home-page .home-tax-note::before {
  content:'';
  position:absolute;
  pointer-events:none;
  z-index:0;
  inset:10px 32% 6px 18px;
  background-color:#d5dfe9;
  opacity:.3;
  -webkit-mask:url('/media/tax-sweep.97cbbd3e02558f36.svg') center/contain no-repeat;
  mask:url('/media/tax-sweep.97cbbd3e02558f36.svg') center/contain no-repeat;
}
@media(max-width:767px) {
  .home-page .home-tax-note::before {
    inset:8px 8px auto 0;
    height:calc(100% - 170px);
    opacity:.24;
  }
}

/* One continuous homepage grid runs from below the header through the tax section.
   The existing service/contact grids retain their separate page scopes. */
.home-page .home-grid-region,
.service-page .service-main,
.contact-page .form-section-karma {
  position:relative;
  isolation:isolate;
  --section-grid-size:48px;
  --section-grid-strength:.12;
}
.home-page .home-grid-region,
.service-page .service-main,
.contact-page .form-section-karma {background-color:#f3f6fa;}
.home-page .home-grid-region::before,
.service-page .service-main::before,
.contact-page .form-section-karma::before {
  content:'';
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:url('/media/rough-grid.469909afe2d4a3df.svg') 37px 25px/var(--section-grid-size) var(--section-grid-size) repeat;
  opacity:var(--section-grid-strength);
}
/* Start the horizontal seam at the header boundary at every tile size.
   The vector seam is halfway down its tile, hence the half-tile offset. */
.home-page .home-grid-region::before,
.service-page .service-main::before {
  background-position-y:calc(var(--section-grid-size) / -2);
}
.home-page .home-grid-region > .header-wrapper,
.home-page .home-grid-region > .home-services,
.home-page .home-grid-region > .home-gallery,
.home-page .home-grid-region > .home-process,
.home-page .home-grid-region > .home-company,
.home-page .home-grid-region > .home-trust {
  position:relative;
  z-index:1;
  background-color:transparent;
}
.service-page .service-main > .service-hero-band,
.service-page .service-main > .service-container,
.contact-page .form-section-karma > .container {position:relative;z-index:1;}
.contact-page .block-karma::before,
.contact-page .brand-page-intro::before {display:none;}
/* Preserve the desktop card height without stacking a second decoration. */
.contact-page .brand-contact-panel::after {visibility:hidden;background:none;}

@media(max-width:991px) {
  /* The card sits above the form here; its hidden mark needs no flow space. */
  .contact-page .brand-contact-panel::after {display:none;}
  .home-page .home-company::before {inset:auto 8px 14px;height:65vw;}
  /* Keep the hero paint visible above the stacked photograph. */
  .home-page .header-wrapper::before {inset:20px 8px auto;height:auto;aspect-ratio:300/190;}
  .brand-photo-frame::before {width:180px;height:180px;left:-24px;bottom:-22px;}
  .brand-photo-frame::after {width:165px;height:74px;right:-10px;top:-24px;}
}
/* A one-pixel native grid stays crisp on dense mobile displays. The filtered
   192px SVG otherwise shrinks its 2.6px strokes below half a CSS pixel at 36px.
   Put alpha in the line color, without fading a page-height image layer. */
@media(max-width:767px) {
  .home-page .home-grid-region::before,
  .service-page .service-main::before,
  .contact-page .form-section-karma::before {
    background-image:conic-gradient(from 90deg at 1px 1px,transparent 90deg,rgb(120 144 165 / var(--section-grid-strength)) 0);
    background-position:calc(37px + var(--section-grid-size) / 2) calc(25px + var(--section-grid-size) / 2);
    opacity:1;
  }
  .home-page .home-grid-region::before,
  .service-page .service-main::before {background-position-y:0;}
}
@media(max-width:599px) {
  .home-page .home-grid-region,
  .service-page .service-main,
  .contact-page .form-section-karma {--section-grid-size:36px;}
  .brand-photo-frame::before,
  .brand-photo-frame.service-feature-compact::before {width:140px;height:140px;left:-10px;bottom:-16px;}
  .brand-photo-frame::after,
  .brand-photo-frame.service-feature-compact::after {width:140px;height:63px;right:-4px;top:-19px;}
  .brand-side-photo::after {right:-6px;bottom:-18px;width:120px;height:130px;}
  .brand-contact-panel::after {width:75px;height:60px;margin-top:16px;}
}
