/* Toolbelt CMS v2.18.59 — Dynamic Pages premium section styles.
   Exclusive opt-in selectors: never affect Service Pages or legacy Dynamic Page sections. */
.custom-page .tb-dp-benefits--elevated .benefit-grid{gap:20px}
.custom-page .tb-dp-benefits--elevated .benefit-card{border-radius:18px;padding:clamp(24px,3vw,38px);box-shadow:0 9px 28px rgba(12,38,58,.07);overflow:hidden}
.custom-page .tb-dp-benefits--outlined .benefit-grid{gap:16px}
.custom-page .tb-dp-benefits--outlined .benefit-card{background:transparent;border:1px solid var(--brand-border);border-radius:12px}
.custom-page .tb-dp-benefits--accent-rail .benefit-grid{gap:16px}
.custom-page .tb-dp-benefits--accent-rail .benefit-card{border:1px solid var(--brand-border);border-left:5px solid var(--brand-accent);border-radius:8px;padding:26px 28px}
.custom-page .tb-dp-benefits--hover-none .benefit-card:hover{transform:none;box-shadow:none;border-color:var(--brand-border)}
.custom-page .tb-dp-benefits--hover-lift .benefit-card:hover{transform:translateY(-8px);box-shadow:0 20px 42px rgba(9,33,52,.15);border-color:var(--brand-accent)}
.custom-page .tb-dp-process--cards .process-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));gap:17px;border:0}
.custom-page .tb-dp-process--cards .process-step{border:1px solid var(--brand-border);border-radius:16px;padding:30px;min-height:250px;background:rgba(255,255,255,.065)}
.custom-page .tb-dp-process--cards .process-step>span{margin-bottom:28px}
.custom-page .tb-dp-process--timeline .process-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:0;max-width:920px;margin-inline:auto;border:0}
.custom-page .tb-dp-process--timeline .process-step{position:relative;min-height:0;padding:20px 28px 32px 64px;margin-left:20px;border:0;border-left:2px solid var(--brand-accent)}
.custom-page .tb-dp-process--timeline .process-step:last-child{border-left-color:transparent}
.custom-page .tb-dp-process--timeline .process-step::before{content:'';position:absolute;left:-8px;top:23px;width:13px;height:13px;border-radius:50%;background:var(--brand-accent);box-shadow:0 0 0 5px var(--brand-light)}
.custom-page .tb-dp-process--timeline .process-step>span{margin-bottom:12px}
.custom-page .tb-dp-process--arrows .process-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;border:0}
.custom-page .tb-dp-process--arrows .process-step{position:relative;padding:30px 26px;border:1px solid var(--brand-border);border-radius:13px;min-height:230px}
.custom-page .tb-dp-process--arrows .process-step:not(:last-child)::after{content:'→';position:absolute;z-index:2;right:-19px;top:38%;height:30px;width:30px;display:grid;place-items:center;color:var(--brand-accent);font-weight:900;font-size:1.4rem;background:var(--brand-light);border-radius:50%}
.custom-page .tb-dp-process--arrows .process-step>span{margin-bottom:24px}
/* Suppress connectors at each row boundary instead of pointing into empty space. */
.custom-page .tb-dp-process--arrows .process-step:nth-child(4n)::after{display:none}
@media(max-width:1100px){
 .custom-page .tb-dp-process--arrows .process-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .custom-page .tb-dp-process--arrows .process-step:nth-child(4n):not(:last-child)::after{display:grid}
 .custom-page .tb-dp-process--arrows .process-step:nth-child(3n)::after{display:none}
}
@media(max-width:900px){
 .custom-page .tb-dp-process--arrows .process-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .custom-page .tb-dp-process--arrows .process-step::after{display:none!important}
}
@media(max-width:600px){
 .custom-page .tb-dp-process--arrows .process-grid{grid-template-columns:1fr}
 .custom-page .tb-dp-process--cards .process-grid{grid-template-columns:1fr}
 .custom-page .tb-dp-process--timeline .process-step{padding-right:8px}
 .custom-page .tb-dp-benefits--elevated .benefit-grid,.custom-page .tb-dp-benefits--outlined .benefit-grid,.custom-page .tb-dp-benefits--accent-rail .benefit-grid{grid-template-columns:1fr}
}
@media(hover:none){.custom-page .tb-dp-benefits .benefit-card:hover{transform:none}}
@media(prefers-reduced-motion:reduce){.custom-page .tb-dp-benefits .benefit-card{transition:none}.custom-page .tb-dp-benefits .benefit-card:hover{transform:none}}


/* v2.18.60: opt-in advanced Dynamic Page text/image presentation.
   Explicit page + section scope; existing sections and Service Pages do not load this. */
.custom-page section.tb-dp-text-image--layout-balanced .block-text-image:not(.block-text-image--no-image){grid-template-columns:repeat(2,minmax(0,1fr))}
.custom-page section.tb-dp-text-image--layout-image-led .block-text-image:not(.block-text-image--no-image){grid-template-columns:minmax(0,2fr) minmax(0,3fr)}
.custom-page section.tb-dp-text-image--layout-copy-led .block-text-image:not(.block-text-image--no-image){grid-template-columns:minmax(0,3fr) minmax(0,2fr)}
/* Keep the larger column attached to the intended subject when the image is left. */
.custom-page section.tb-dp-text-image--layout-image-led .block-text-image.block-image-left:not(.block-text-image--no-image){grid-template-columns:minmax(0,3fr) minmax(0,2fr)}
.custom-page section.tb-dp-text-image--layout-copy-led .block-text-image.block-image-left:not(.block-text-image--no-image){grid-template-columns:minmax(0,2fr) minmax(0,3fr)}
.custom-page section.tb-dp-text-image--layout-stacked .block-text-image:not(.block-text-image--no-image){display:flex;flex-direction:column;align-items:stretch;gap:clamp(24px,4vw,55px)}
.custom-page section.tb-dp-text-image--layout-stacked .block-text-image .block-copy{order:0;max-width:900px}
.custom-page section.tb-dp-text-image--layout-stacked .block-text-image .block-media{order:1;width:100%}
.custom-page section.tb-dp-text-image--layout-stacked .block-text-image .dynamic-content-frame{max-height:650px}
.custom-page section.tb-dp-text-image--vertical-top .block-text-image{align-items:start}
.custom-page section.tb-dp-text-image--vertical-center .block-text-image{align-items:center}
.custom-page section.tb-dp-text-image--vertical-bottom .block-text-image{align-items:end}
.custom-page section.tb-dp-text-image--focus-top .block-media .tb-image-frame-surface img{object-position:center top}
.custom-page section.tb-dp-text-image--focus-bottom .block-media .tb-image-frame-surface img{object-position:center bottom}
.custom-page section.tb-dp-text-image--focus-left .block-media .tb-image-frame-surface img{object-position:left center}
.custom-page section.tb-dp-text-image--focus-right .block-media .tb-image-frame-surface img{object-position:right center}
.custom-page section.tb-dp-text-image--sizing-landscape .block-media,
.custom-page section.tb-dp-text-image--sizing-portrait .block-media,
.custom-page section.tb-dp-text-image--sizing-natural .block-media{min-height:0}
.custom-page section.tb-dp-text-image--sizing-landscape .block-media>.dynamic-content-frame{height:auto;min-height:0;aspect-ratio:16/10}
.custom-page section.tb-dp-text-image--sizing-portrait .block-media>.dynamic-content-frame{height:auto;min-height:0;aspect-ratio:3/4}
.custom-page section.tb-dp-text-image--sizing-landscape .block-media .tb-image-frame-surface img,
.custom-page section.tb-dp-text-image--sizing-portrait .block-media .tb-image-frame-surface img{min-height:0}
/* Natural media must not be forced into the legacy 440px crop. */
.custom-page section.tb-dp-text-image--sizing-natural .block-media>.dynamic-content-frame{height:auto;min-height:0;aspect-ratio:auto}
.custom-page section.tb-dp-text-image--sizing-natural .block-media .dynamic-content-frame .tb-image-frame-surface{position:relative;inset:auto;height:auto;aspect-ratio:auto}
.custom-page section.tb-dp-text-image--sizing-natural .block-media .tb-image-frame-surface img{height:auto;min-height:0;object-fit:contain}
/* Content-match follows the grid track rather than imposing the legacy 440px crop. */
@media(min-width:901px){
 .custom-page section.tb-dp-text-image--sizing-match .block-text-image:not(.block-text-image--no-image){align-items:stretch}
 .custom-page section.tb-dp-text-image--sizing-match .block-media{display:flex;min-height:320px;min-width:0;align-self:stretch}
 .custom-page section.tb-dp-text-image--sizing-match .block-media>.dynamic-content-frame{flex:1;min-height:100%;height:auto;display:flex;flex-direction:column}
 .custom-page section.tb-dp-text-image--sizing-match .block-media .dynamic-content-frame .tb-image-frame-surface{flex:1;min-height:320px;height:100%;position:relative;aspect-ratio:auto}
 .custom-page section.tb-dp-text-image--sizing-match .block-media .tb-image-frame-surface>img{position:absolute;inset:0;height:100%;min-height:0;width:100%;object-fit:cover}
}
/* Height-matching is meaningful only for side-by-side composition; stacked sections use a wide image. */
@media(min-width:901px){
 .custom-page section.tb-dp-text-image--layout-stacked.tb-dp-text-image--sizing-match .block-media{display:block;min-height:0}
 .custom-page section.tb-dp-text-image--layout-stacked.tb-dp-text-image--sizing-match .block-media>.dynamic-content-frame{display:block;min-height:0;height:auto;aspect-ratio:16/9}
 .custom-page section.tb-dp-text-image--layout-stacked.tb-dp-text-image--sizing-match .block-media .dynamic-content-frame .tb-image-frame-surface{position:absolute;inset:0;height:100%;min-height:0}
}
@media(max-width:900px){
 .custom-page section.tb-dp-text-image--layout-balanced .block-text-image:not(.block-text-image--no-image),
 .custom-page section.tb-dp-text-image--layout-image-led .block-text-image:not(.block-text-image--no-image),
 .custom-page section.tb-dp-text-image--layout-copy-led .block-text-image:not(.block-text-image--no-image),
 .custom-page section.tb-dp-text-image--layout-image-led .block-text-image.block-image-left:not(.block-text-image--no-image),
 .custom-page section.tb-dp-text-image--layout-copy-led .block-text-image.block-image-left:not(.block-text-image--no-image){grid-template-columns:1fr}
 .custom-page section.tb-dp-text-image--vertical-top .block-text-image,
 .custom-page section.tb-dp-text-image--vertical-bottom .block-text-image{align-items:stretch}
 .custom-page section.tb-dp-text-image--sizing-match .block-media{min-height:0}
 .custom-page section.tb-dp-text-image--sizing-match .block-media>.dynamic-content-frame{height:auto;min-height:0;aspect-ratio:4/3}
 .custom-page section.tb-dp-text-image--sizing-match .block-media .tb-image-frame-surface img{min-height:0}
}
/* Optional premium editorial treatments keep core section typography unmodified. */
.custom-page section.tb-dp-rich--statement .block-rich{max-width:980px}
.custom-page section.tb-dp-rich--statement .block-rich h2{font-size:clamp(2.65rem,5.4vw,5.7rem);line-height:1.04;letter-spacing:-.045em}
.custom-page section.tb-dp-rich--statement .block-rich .prose{max-width:780px}
.custom-page section.tb-dp-rich--soft-panel .block-rich{max-width:980px;padding:clamp(28px,5vw,70px);background:color-mix(in srgb,var(--brand-light) 74%,white);border:1px solid var(--brand-border);border-radius:20px}
.custom-page section.tb-dp-rich--soft-panel.block-bg-dark .block-rich,
.custom-page section.tb-dp-rich--soft-panel.block-bg-brand .block-rich{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2)}
.custom-page section.tb-dp-rich--accent-rail .block-rich{max-width:980px;border-left:5px solid var(--brand-accent);padding-left:clamp(22px,4vw,58px)}
.custom-page section.tb-dp-rich--spacing-compact{padding-block:clamp(42px,5vw,66px)}
.custom-page section.tb-dp-rich--spacing-spacious{padding-block:clamp(100px,11vw,160px)}
@media(max-width:600px){
 .custom-page section.tb-dp-text-image--layout-stacked .block-text-image .dynamic-content-frame{max-height:none}
 .custom-page section.tb-dp-rich--soft-panel .block-rich{padding:24px 20px;border-radius:14px}
 .custom-page section.tb-dp-rich--accent-rail .block-rich{padding-left:18px}
}

/* v2.18.61 — Coherent Page Design. Opt-in Dynamic Pages only.
   Uses the live global brand, typography and button tokens without editing site.css. */
.custom-page.tb-dp-coherent{
 --tb-dp-section-gap:clamp(72px,8vw,112px);
 --tb-dp-heading-size:clamp(2.15rem,4vw,3.65rem);
}
.custom-page.tb-dp-coherent.tb-dp-rhythm--compact{--tb-dp-section-gap:clamp(46px,5.5vw,76px)}
.custom-page.tb-dp-coherent.tb-dp-rhythm--spacious{--tb-dp-section-gap:clamp(102px,10vw,156px)}
.custom-page.tb-dp-coherent.tb-dp-heading--supporting{--tb-dp-heading-size:clamp(1.85rem,3vw,2.7rem)}
.custom-page.tb-dp-coherent.tb-dp-heading--display{--tb-dp-heading-size:clamp(2.7rem,5vw,4.8rem)}
.custom-page.tb-dp-coherent > section.tb-dp-coherent-block{padding-block:var(--tb-dp-section-gap)}
.custom-page.tb-dp-coherent > section.tb-dp-coherent-block.tb-dp-spacing--compact{padding-block:clamp(46px,5.5vw,76px)}
.custom-page.tb-dp-coherent > section.tb-dp-coherent-block.tb-dp-spacing--balanced{padding-block:clamp(72px,8vw,112px)}
.custom-page.tb-dp-coherent > section.tb-dp-coherent-block.tb-dp-spacing--spacious{padding-block:clamp(102px,10vw,156px)}
/* Each component uses its original markup; the coherent role changes headings only. */
.custom-page.tb-dp-coherent > section.tb-dp-coherent-block:not(.custom-html-block) h2{
 font-family:var(--font-heading,var(--site-font));font-size:var(--tb-dp-heading-size);
 font-weight:var(--heading-weight,700);letter-spacing:var(--heading-letter-spacing,-.045em);line-height:1.08;
}
.custom-page.tb-dp-coherent > section.tb-dp-coherent-block.tb-dp-heading--section{--tb-dp-heading-size:clamp(2.15rem,4vw,3.65rem)}
.custom-page.tb-dp-coherent > section.tb-dp-coherent-block.tb-dp-heading--supporting{--tb-dp-heading-size:clamp(1.85rem,3vw,2.7rem)}
.custom-page.tb-dp-coherent > section.tb-dp-coherent-block.tb-dp-heading--display{--tb-dp-heading-size:clamp(2.7rem,5vw,4.8rem)}
.custom-page.tb-dp-coherent > section.tb-dp-coherent-block:not(.custom-html-block) :is(.block-heading,.block-copy,.block-rich,.block-faq-intro,.dynamic-contact,.custom-cta-inner) .eyebrow{
 font-family:var(--font-body,var(--site-font));letter-spacing:.14em;
}
.custom-page.tb-dp-coherent > section.tb-dp-coherent-block:not(.custom-html-block) :is(.block-copy,.block-rich,.block-heading,.block-faq-intro) .prose,
.custom-page.tb-dp-coherent > section.tb-dp-coherent-block:not(.custom-html-block) :is(.block-copy,.block-rich,.block-heading,.block-faq-intro) .prose p{
 font-family:var(--font-body,var(--site-font));line-height:var(--body-line-height,1.7);
}
.custom-page.tb-dp-coherent > section.tb-dp-coherent-block:not(.custom-html-block) :is(.benefit-card,.process-step) h3{
 font-family:var(--font-heading,var(--site-font));letter-spacing:var(--heading-letter-spacing,-.02em);
}
/* Buttons retain the existing site's global primary CTA treatment by design. */
.custom-page.tb-dp-coherent.tb-dp-accent--rule > section.tb-dp-coherent-block:not(.custom-html-block) :is(.block-heading,.block-copy,.block-rich,.block-faq-intro) h2::after{
 content:'';display:block;width:clamp(42px,5vw,70px);height:3px;background:var(--brand-accent);margin-top:19px;
}
.custom-page.tb-dp-coherent.tb-dp-accent--eyebrow > section.tb-dp-coherent-block:not(.custom-html-block) :is(.block-heading,.block-copy,.block-rich,.block-faq-intro,.dynamic-contact,.custom-cta-inner) .eyebrow{
 padding-left:14px;border-left:3px solid var(--brand-accent);
}
@media(max-width:900px){
 .custom-page.tb-dp-coherent{--tb-dp-heading-size:clamp(2rem,5vw,3rem)}
 .custom-page.tb-dp-coherent.tb-dp-heading--display{--tb-dp-heading-size:clamp(2.35rem,6vw,3.6rem)}
 .custom-page.tb-dp-coherent.tb-dp-heading--supporting{--tb-dp-heading-size:clamp(1.75rem,4.2vw,2.3rem)}
 .custom-page.tb-dp-coherent > section.tb-dp-coherent-block.tb-dp-heading--display{--tb-dp-heading-size:clamp(2.35rem,6vw,3.6rem)}
 .custom-page.tb-dp-coherent > section.tb-dp-coherent-block.tb-dp-heading--section{--tb-dp-heading-size:clamp(2rem,5vw,3rem)}
 .custom-page.tb-dp-coherent > section.tb-dp-coherent-block.tb-dp-heading--supporting{--tb-dp-heading-size:clamp(1.75rem,4.2vw,2.3rem)}
}
@media(max-width:600px){
 .custom-page.tb-dp-coherent{--tb-dp-section-gap:64px}
 .custom-page.tb-dp-coherent.tb-dp-rhythm--compact{--tb-dp-section-gap:42px}
 .custom-page.tb-dp-coherent.tb-dp-rhythm--spacious{--tb-dp-section-gap:90px}
 .custom-page.tb-dp-coherent > section.tb-dp-coherent-block.tb-dp-spacing--compact{padding-block:42px}
 .custom-page.tb-dp-coherent > section.tb-dp-coherent-block.tb-dp-spacing--balanced{padding-block:64px}
 .custom-page.tb-dp-coherent > section.tb-dp-coherent-block.tb-dp-spacing--spacious{padding-block:90px}
}


/* v2.19.01 — shared opt-in edge-to-edge Text + Image composition.
   Reuses canonical Section Library markup, image frames and typography.
   Only selected sections are affected; Service Page builder is untouched. */
.custom-page section.tb-dp-text-image--layout-edge {
  padding-block:clamp(32px,5vw,76px);
}
.custom-page section.tb-dp-text-image--layout-edge.tb-dp-edge-width-full {padding-block:0}
.custom-page section.tb-dp-text-image--layout-edge .block-text-image:not(.block-text-image--no-image){
  width:min(1440px,calc(100% - 40px));max-width:none;
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0;align-items:stretch;min-height:390px;overflow:hidden;
}
.custom-page section.tb-dp-text-image--layout-edge.tb-dp-edge-width-full .block-text-image:not(.block-text-image--no-image){
  width:100%;max-width:none;
}
.custom-page section.tb-dp-text-image--layout-edge.tb-dp-edge-height-minimum .block-text-image:not(.block-text-image--no-image){min-height:560px}
.custom-page section.tb-dp-text-image--layout-edge .block-copy{
  display:flex;flex-direction:column;justify-content:center;align-items:flex-start;
  min-width:0;min-height:0;margin:0;background:var(--tb-edge-panel-bg,#fff);
  color:var(--tb-edge-panel-ink,#16191b);padding:clamp(36px,5.2vw,88px);
}
.custom-page section.tb-dp-text-image--layout-edge.tb-dp-edge-padding-compact .block-copy{padding:clamp(26px,3.3vw,52px)}
.custom-page section.tb-dp-text-image--layout-edge.tb-dp-edge-padding-spacious .block-copy{padding:clamp(48px,7vw,118px)}
.custom-page section.tb-dp-text-image--layout-edge.tb-dp-text-image--vertical-top .block-copy{justify-content:flex-start}
.custom-page section.tb-dp-text-image--layout-edge.tb-dp-text-image--vertical-bottom .block-copy{justify-content:flex-end}
.custom-page section.tb-dp-text-image--layout-edge .block-copy h2{color:var(--tb-edge-panel-ink,#16191b)}
.custom-page section.tb-dp-text-image--layout-edge .block-copy .prose p{color:color-mix(in srgb,var(--tb-edge-panel-ink,#16191b) 85%,var(--tb-edge-panel-bg,#fff))}
.custom-page section.tb-dp-text-image--layout-edge .block-copy .prose{max-width:750px}
.custom-page section.tb-dp-text-image--layout-edge .block-media{
  display:block;position:relative;min-height:0;height:100%;align-self:stretch;
  width:100%;margin:0;overflow:hidden;
}
.custom-page section.tb-dp-text-image--layout-edge .block-media::before{display:none!important}
.custom-page section.tb-dp-text-image--layout-edge .block-media>.dynamic-content-frame{
  position:absolute;inset:0;width:100%;height:100%;min-height:0;
  margin:0;max-height:none;box-shadow:none;
}
.custom-page section.tb-dp-text-image--layout-edge .block-media .tb-image-frame-surface{
  position:absolute;inset:0;width:100%;height:100%;border-radius:0!important;clip-path:none!important;
}
.custom-page section.tb-dp-text-image--layout-edge .block-media .tb-image-frame-surface img{
  position:absolute;inset:0;width:100%;height:100%;min-height:0;
  object-fit:cover;box-shadow:none;border-radius:0;
}
/* Flush layouts deliberately suppress floating frame decorations/shadows. */
.custom-page section.tb-dp-text-image--layout-edge .tb-image-frame .tb-frame-decoration{display:none}
.custom-page section.tb-dp-text-image--layout-edge .tb-image-frame .tb-image-frame-surface{transform:none}
@media(max-width:900px){
 .custom-page section.tb-dp-text-image--layout-edge .block-text-image:not(.block-text-image--no-image){
   grid-template-columns:minmax(0,1fr);min-height:0;gap:0;
 }
 .custom-page section.tb-dp-text-image--layout-edge .block-media{
   order:0!important;height:auto;min-height:0;aspect-ratio:4/3;
 }
 .custom-page section.tb-dp-text-image--layout-edge .block-copy{
   order:1!important;min-height:0;padding:clamp(28px,5vw,54px);
 }
 .custom-page section.tb-dp-text-image--layout-edge.tb-dp-edge-padding-compact .block-copy{padding:clamp(22px,4vw,40px)}
 .custom-page section.tb-dp-text-image--layout-edge.tb-dp-edge-padding-spacious .block-copy{padding:clamp(32px,6vw,60px)}
 .custom-page section.tb-dp-text-image--layout-edge .block-media>.dynamic-content-frame{
   position:absolute;inset:0;height:100%;min-height:0;aspect-ratio:auto;
 }
 .custom-page section.tb-dp-text-image--layout-edge .block-media .dynamic-content-frame .tb-image-frame-surface{position:absolute;inset:0;height:100%;min-height:0}
 .custom-page section.tb-dp-text-image--layout-edge .block-media .tb-image-frame-surface img{height:100%;min-height:0}
 .custom-page section.tb-dp-text-image--layout-edge.tb-dp-edge-height-minimum .block-text-image:not(.block-text-image--no-image){min-height:0}
}
@media(max-width:600px){
 .custom-page section.tb-dp-text-image--layout-edge .block-text-image:not(.block-text-image--no-image){width:calc(100% - 28px)}
 .custom-page section.tb-dp-text-image--layout-edge.tb-dp-edge-width-full .block-text-image:not(.block-text-image--no-image){width:100%}
}
