/* Reusable optional sections. Scoped to preserve every installed site layout. */
.cms-arrow{display:inline-block;width:20px;height:20px;flex:0 0 20px;vertical-align:middle}
.cms-block{--cms-section-heading:var(--cms-ink,#25323d);--cms-section-text:var(--cms-muted,#62686e);--cms-section-accent:var(--cms-primary,#1d71b8);--cms-section-accent-hover:var(--cms-primary-hover,#185f9b);--cms-section-align:left;--cms-content-start:0;--cms-content-end:auto;text-align:var(--cms-section-align);background:var(--cms-background,#f7f7f7);color:var(--cms-ink,#25323d);padding-block:88px;overflow-wrap:anywhere}
.cms-block *{box-sizing:border-box}
.cms-block.cms-align-center{--cms-section-align:center;--cms-content-start:auto;--cms-content-end:auto}
.cms-block.cms-align-right{--cms-section-align:right;--cms-content-start:auto;--cms-content-end:0}
.cms-block.cms-tone-tint{background:var(--cms-tint,#e8eef3)}
.cms-block-inner{width:100%;max-width:1320px;padding-inline:64px;margin-inline:auto}
.cms-block h2{color:var(--cms-section-heading);font-family:inherit;font-size:clamp(32px,3.7vw,48px);line-height:1.16;letter-spacing:-1.7px;font-weight:650;margin:0 0 25px;text-wrap:balance}
.cms-block p{font-size:16px;line-height:1.8;color:var(--cms-section-text);margin:0;text-wrap:pretty}
p.cms-block-text{max-width:760px;margin-inline-start:var(--cms-content-start);margin-inline-end:var(--cms-content-end)}
p.cms-block-text + :is(.cms-card-grid,.cms-faq-list){margin-top:36px}
.cms-block h2 + :is(.cms-card-grid,.cms-faq-list){margin-top:36px}
.cms-block-text h2,.cms-block-cta h2{max-width:760px;margin-inline-start:var(--cms-content-start);margin-inline-end:var(--cms-content-end)}
.cms-block-image_text:not(.cms-image-empty) .cms-block-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center}
.cms-image-copy{min-width:0}
.cms-image-figure{margin:0;min-width:0;overflow:hidden;border-radius:22px;aspect-ratio:4/3;background:#e6eaee}
.cms-image-figure img{display:block;width:100%;height:100%;object-fit:cover}
.cms-image-empty .cms-image-figure{display:none}
html[data-cms-inline-editor="true"] .cms-image-empty .cms-image-figure{display:block;aspect-ratio:auto;min-height:220px;margin-top:30px;background:transparent}
.cms-image-left .cms-image-figure{grid-column:1;grid-row:1}
.cms-image-left .cms-image-copy{grid-column:2;grid-row:1}
.cms-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:1fr;gap:22px;align-items:stretch}
.cms-item-card{display:flex;flex-direction:column;min-width:0;padding:30px;border:1px solid #dce1e5;border-radius:18px;background:#fff}
.cms-has-accent .cms-item-card{box-shadow:inset 0 3px 0 var(--cms-section-accent)}
.cms-item-card h3{font-size:22px;line-height:1.3;font-weight:600;letter-spacing:-.4px;margin:0 0 14px;color:var(--cms-section-heading)}
.cms-item-card p{font-size:15px;line-height:1.8}
.cms-faq-list{max-width:880px;margin-inline-start:var(--cms-content-start);margin-inline-end:var(--cms-content-end)}
.cms-faq-item{border:0;border-top:1px solid #cbd4dc}
.cms-faq-item:last-child{border-bottom:1px solid #cbd4dc}
.cms-faq-item summary{display:flex;align-items:center;justify-content:space-between;gap:24px;cursor:pointer;list-style:none;padding:24px 0;font-size:18px;font-weight:600;line-height:1.45;color:var(--cms-section-heading)}
.cms-faq-item summary::-webkit-details-marker{display:none}
.cms-faq-question{flex:1;min-width:0;text-align:var(--cms-section-align)}
.cms-faq-toggle{width:22px;height:22px;position:relative;flex:0 0 22px}
.cms-has-accent .cms-faq-toggle{color:var(--cms-section-accent)}
.cms-faq-toggle::before,.cms-faq-toggle::after{content:"";width:14px;height:1.5px;position:absolute;left:4px;top:10px;background:currentColor}
.cms-faq-toggle::after{transform:rotate(90deg)}
.cms-faq-item[open] .cms-faq-toggle::after{transform:none}
.cms-faq-item>div{padding:0 44px 24px 0}
.cms-block-button{display:inline-flex;align-items:center;justify-content:center;gap:24px;min-height:52px;padding:14px 23px;border-radius:9px;background:var(--cms-section-accent);color:#fff;text-decoration:none;font-size:14px;font-weight:600;line-height:1.5;margin-top:28px}
.cms-block-button:hover{background:var(--cms-section-accent-hover)}
.cms-block a.cms-block-button{color:#fff}
.cms-block :is(a,summary):focus-visible{outline:3px solid var(--cms-section-accent);outline-offset:5px}
@media(max-width:1100px){.cms-block-inner{padding-inline:40px}.cms-block-image_text:not(.cms-image-empty) .cms-block-inner{gap:38px}.cms-card-grid{gap:18px}.cms-item-card{padding:25px}}
@media(max-width:850px){.cms-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.cms-block{padding-block:60px}.cms-block-inner{padding-inline:24px}.cms-block h2{font-size:clamp(30px,8vw,40px);letter-spacing:-1px;margin-bottom:20px}.cms-block p{font-size:14px}.cms-block-image_text:not(.cms-image-empty) .cms-block-inner{grid-template-columns:minmax(0,1fr);gap:30px}.cms-image-left .cms-image-figure,.cms-image-left .cms-image-copy{grid-column:auto;grid-row:auto}.cms-image-left .cms-image-figure{order:-1}.cms-image-figure{border-radius:16px}.cms-card-grid{grid-template-columns:minmax(0,1fr);gap:16px}.cms-item-card{padding:25px}.cms-item-card h3{font-size:22px}.cms-faq-item summary{font-size:16px;padding-block:21px}.cms-faq-item>div{padding-right:0}.cms-block-button{width:fit-content;max-width:100%}}
@media(max-width:370px){.cms-block-inner{padding-inline:20px}}
@media(max-width:720px){.cms-card-grid{grid-auto-rows:auto}}
@media print{.cms-block{padding-block:30px}.cms-card-grid{display:block}.cms-item-card{break-inside:avoid;margin-bottom:15px}.cms-faq-item>div{display:block}.cms-image-figure{max-height:300px}}

/* Explicit text alignment is scoped to its own editable text, including split titles. */
cms-text.cms-aligned-text + br{display:none}
cms-text.cms-styled-text{overflow-wrap:anywhere}
.cms-card-grid[data-card-count="2"],.cms-card-grid[data-card-count="4"]{grid-template-columns:repeat(2,minmax(0,1fr))}
.cms-card-grid[data-card-count="1"]{grid-template-columns:minmax(0,1fr)}
@media(max-width:720px){.cms-card-grid[data-card-count]{grid-template-columns:minmax(0,1fr)}}

/* Section surfaces span the page; optional box settings only move their content. */
.cms-section-shell{width:100%;min-width:0}
.concept .cms-block{padding-block:105px}
:is(.concept,.cms-starter) .cms-layout-box{box-sizing:border-box;width:100%;max-width:var(--cms-box-width,1320px);margin-inline:auto;min-width:0;container-type:inline-size;overflow-wrap:anywhere}
:is(.concept,.cms-starter) .cms-layout-box>*{min-width:0}
:is(.concept,.cms-starter) .cms-layout-box.cms-box-left{margin-inline-start:max(0px,calc((100% - 1320px)/2));margin-inline-end:auto}
:is(.concept,.cms-starter) .cms-layout-box.cms-box-center{margin-inline:auto}
:is(.concept,.cms-starter) .cms-layout-box.cms-box-right{margin-inline-start:auto;margin-inline-end:max(0px,calc((100% - 1320px)/2))}
.cms-block-inner.cms-layout-box>.cms-faq-list{max-width:none;width:100%;margin-inline:0}

/* Image controls affect the picture frame, never the surrounding text column. */
.cms-image-figure.cms-image-settings{width:100%;max-width:100%;justify-self:center}
.cms-image-figure.cms-image-sized{width:min(100%,var(--cms-image-width,100%));margin-inline:auto}
.cms-image-figure.cms-image-ratio-set{aspect-ratio:var(--cms-image-ratio,4/3)}
.cms-image-figure.cms-image-settings>img{object-fit:var(--cms-image-fit,cover)}
.cms-image-figure.cms-image-original{aspect-ratio:auto}
.cms-image-figure.cms-image-original>img{height:auto;aspect-ratio:auto}
.cms-template-image.cms-image-sized{width:min(100%,var(--cms-image-width,100%));max-width:100%;margin-inline:auto;justify-self:center}
.cms-template-image.cms-image-ratio-set{height:auto;min-height:0;aspect-ratio:var(--cms-image-ratio,auto)}
.cms-template-image.cms-image-settings>img{object-fit:var(--cms-image-fit,cover)}
.cms-template-image.cms-image-ratio-set>img{width:100%;height:100%;aspect-ratio:var(--cms-image-ratio,auto)}
.cms-template-image.cms-image-original>img{height:auto;aspect-ratio:auto}

/* A narrower content box also gets an appropriate card count per row. */
@container (max-width:1000px){
  .concept .cms-layout-box .offer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .concept .cms-layout-box .offer-card{grid-column:auto}
  .concept .cms-layout-box .offer-web{grid-column:1/-1}
}
@container (max-width:850px){
  .cms-layout-box .cms-card-grid[data-card-count]{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cms-layout-box .cms-card-grid[data-card-count="1"]{grid-template-columns:minmax(0,1fr)}
}
@container (max-width:580px){
  .concept .cms-layout-box .offer-grid,.cms-layout-box .cms-card-grid[data-card-count]{grid-template-columns:minmax(0,1fr)}
  .concept .cms-layout-box .offer-web{grid-column:auto}
}
@media(min-width:721px) and (max-width:850px){.concept .cms-block-inner{padding-inline:30px}}
@media(max-width:720px){
  .concept .cms-block{padding-block:65px}
  :is(.concept,.cms-starter) .cms-layout-box:is(.cms-box-left,.cms-box-center,.cms-box-right),:is(.concept,.cms-starter) .cms-layout-box{width:100%;max-width:100%;margin-inline:0}
  .cms-layout-box .cms-card-grid[data-card-count]{grid-template-columns:minmax(0,1fr)}
}
@media print{.concept .cms-block{padding-block:30px}}

/* Optional website typography uses installed fonts and never remote resources. */
body.cms-font-system{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
body.cms-font-arial{font-family:Arial,Helvetica,sans-serif}
body.cms-font-verdana{font-family:Verdana,Geneva,sans-serif}
body.cms-font-georgia{font-family:Georgia,"Times New Roman",serif}
body.cms-font-trebuchet{font-family:"Trebuchet MS",Arial,sans-serif}
body:is(.cms-font-system,.cms-font-arial,.cms-font-verdana,.cms-font-georgia,.cms-font-trebuchet) :is(button,input,select,textarea){font-family:inherit}

/* Sizes interpolate between a readable mobile size and the chosen desktop size. */
cms-text.cms-sized-text{display:block;max-width:100%;min-width:0;font-size:clamp(var(--cms-text-small),var(--cms-text-fluid),var(--cms-text-size));line-height:1.3;letter-spacing:normal;overflow-wrap:anywhere;vertical-align:baseline}

/* Only explicit manual spacing replaces a site's outer/inner vertical padding. */
.cms-section-spacing{padding-top:var(--cms-space-top)!important;padding-bottom:var(--cms-space-bottom)!important}
.cms-section-spacing>.cms-section-content{padding-top:0!important;padding-bottom:0!important;min-height:0}
@media(max-width:720px){.cms-section-spacing{padding-top:calc(var(--cms-space-top) * .65)!important;padding-bottom:calc(var(--cms-space-bottom) * .65)!important}}

/* Sized heading fragments form their own lines, without the old parent font strut. */
cms-text.cms-sized-text + br{display:none}
body :is(h1,h2,h3)>:is(span,strong,em):has(>cms-text.cms-sized-text){display:block!important}
