:root { --cms-primary:#14766c; --cms-secondary:#173b3d; --cms-accent:#b3403b; }
.cms-block { position:relative; background-image:var(--cms-background-image); background-position:center; background-size:cover; }
.cms-block-inner { width:min(100% - 36px, 1160px); margin-inline:auto; }
.cms-block-children { min-width:0; display:grid; gap:18px; margin-top:clamp(24px,4vw,44px); padding-left:20px; border-left:2px solid color-mix(in srgb,var(--cms-primary) 32%,transparent); text-align:left; }
.cms-block-children > .cms-block { min-width:0; }
.cms-block-children > .cms-block > .cms-block-inner { width:100%; max-width:none; }
.cms-block-children > .cms-spacing-small { padding-block:18px; }.cms-block-children > .cms-spacing-medium { padding-block:28px; }.cms-block-children > .cms-spacing-large { padding-block:40px; }
.cms-width-narrow .cms-block-inner { max-width:760px; }
.cms-width-wide .cms-block-inner { max-width:1360px; }
.cms-width-full .cms-block-inner { width:100%; max-width:none; }
.cms-spacing-small { padding-block:28px; }.cms-spacing-medium { padding-block:56px; }.cms-spacing-large { padding-block:88px; }
.cms-bg-white { background-color:#fff; }.cms-bg-soft { background-color:#f3f6f5; }.cms-bg-brand { color:#fff; background-color:var(--cms-secondary); }.cms-bg-accent { color:#fff; background-color:var(--cms-accent); }
.cms-align-center { text-align:center; }.cms-align-right { text-align:right; }
.cms-hero { min-height:clamp(440px,60vh,680px); display:grid; align-items:center; padding:clamp(40px,7vw,90px); color:#fff; background-image:linear-gradient(rgba(16,38,40,.7),rgba(16,38,40,.7)),var(--cms-hero-image); background-position:center; background-size:cover; }
.cms-hero.cms-overlay-none { background-image:var(--cms-hero-image); }.cms-hero.cms-overlay-light { background-image:linear-gradient(rgba(16,38,40,.25),rgba(16,38,40,.25)),var(--cms-hero-image); }.cms-hero.cms-overlay-dark { background-image:linear-gradient(rgba(8,22,23,.85),rgba(8,22,23,.85)),var(--cms-hero-image); }
.cms-hero-copy { width:min(820px,100%); }.cms-hero-copy.cms-align-center { margin-inline:auto; }
.cms-hero h1 { margin:10px 0 18px; color:inherit; font-size:56px; line-height:1.08; letter-spacing:0; }.cms-hero p { font-size:20px; line-height:1.7; }
.cms-eyebrow { color:#0b5f57; font-size:13px; font-weight:900; }.cms-hero .cms-eyebrow,.cms-bg-brand .cms-eyebrow,.cms-bg-accent .cms-eyebrow { color:#fff; }.cms-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:26px; }
.cms-hero-highlights { display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:28px; padding-top:18px; border-top:1px solid rgba(255,255,255,.35); font-size:13px; }.cms-hero-highlights span { display:inline-flex; align-items:center; gap:7px; }.cms-hero-highlights span::before { content:""; width:5px; height:5px; background:#9de4dc; }
.cms-prose { max-width:820px; margin-inline:auto; }.cms-prose p,.cms-image-text p,.cms-cta p { line-height:1.85; }
.cms-image-text { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(28px,6vw,80px); align-items:center; }.cms-image-text.cms-image-right figure { order:2; }
.cms-image-text figure,.cms-gallery figure { margin:0; }.cms-image-text img,.cms-gallery img,.cms-card img { width:100%; height:auto; display:block; object-fit:cover; }.cms-image-text figcaption,.cms-gallery figcaption { margin-top:8px; color:#617075; font-size:13px; }
.cms-card-grid,.cms-service-grid,.cms-stats,.cms-testimonials,.cms-gallery { display:grid; gap:18px; margin-top:26px; }.cms-columns-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }.cms-columns-3,.cms-service-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.cms-columns-4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.cms-block-intro { max-width:820px; line-height:1.8; }
.cms-card,.cms-quote { min-width:0; margin:0; padding:22px; border:1px solid #d7dfe1; border-radius:4px; background:#fff; color:#172126; }.cms-card img { aspect-ratio:16/9; margin:-22px -22px 18px; width:calc(100% + 44px); max-width:none; }
.cms-card-icon { display:inline-grid; min-width:38px; min-height:38px; place-items:center; margin-bottom:12px; color:var(--cms-primary); border:1px solid #bdd8d4; }.cms-text-link { color:var(--cms-primary); font-weight:800; }
.cms-stats { grid-template-columns:repeat(4,minmax(0,1fr)); }.cms-stat { padding:24px; border-left:3px solid var(--cms-primary); background:#fff; color:#172126; }.cms-stat strong { display:block; font-size:36px; }.cms-stat strong span { margin-left:4px; font-size:16px; }.cms-stat p { margin-bottom:0; }
.cms-testimonials { grid-template-columns:repeat(2,minmax(0,1fr)); }.cms-quote blockquote { margin:0 0 20px; font-size:18px; line-height:1.75; }.cms-quote figcaption { display:flex; gap:12px; align-items:center; }.cms-quote img { width:52px; height:52px; border-radius:50%; object-fit:cover; }.cms-quote span { display:grid; }.cms-quote small { color:#617075; }
.cms-faq { max-width:900px; margin-top:24px; }.cms-faq details { border-top:1px solid #cbd5d7; }.cms-faq details:last-child { border-bottom:1px solid #cbd5d7; }.cms-faq summary { padding:18px 4px; cursor:pointer; font-weight:850; }.cms-faq details div { padding:0 4px 20px; line-height:1.75; }
.cms-cta { max-width:820px; margin:auto; text-align:center; }.cms-gallery { grid-template-columns:repeat(3,minmax(0,1fr)); }.cms-gallery img { aspect-ratio:4/3; object-fit:cover; }
.cms-embed { width:min(100%,1000px); margin:24px auto 0; aspect-ratio:16/9; background:#e9efee; }.cms-embed iframe,.cms-embed video { width:100%; height:100%; display:block; border:0; object-fit:contain; }.cms-map { aspect-ratio:16/7; }.cms-embed-placeholder { height:100%; display:grid; place-items:center; padding:24px; color:#526267; border:1px dashed #9aabaa; text-align:center; }.cms-embed-caption { max-width:820px; margin:14px auto 0; color:#526267; line-height:1.7; }
.cms-contact-form { max-width:860px; margin:28px auto 0; padding:clamp(20px,4vw,38px); border:1px solid #d7dfe1; background:#fff; color:#172126; }.cms-form-heading { max-width:760px; margin:auto; text-align:center; }.cms-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }.cms-form-full { grid-column:1/-1; }.cms-consent { display:flex; gap:9px; align-items:flex-start; margin:20px 0; line-height:1.5; }.cms-consent input { width:auto; min-height:auto; margin-top:4px; }
.cms-spacer-small { min-height:20px; }.cms-spacer-medium { min-height:50px; }.cms-spacer-large { min-height:90px; }.cms-spacer hr { border:0; border-top:1px solid #d7dfe1; }
.cms-preview-bar { position:sticky; z-index:50; top:0; display:flex; justify-content:space-between; gap:16px; padding:9px 18px; color:#fff; background:#172126; font-size:13px; }.cms-hidden-block,.cms-block-error { padding:14px; color:#6f4d00; border:2px dashed #d09a25; background:#fff8df; text-align:center; }
@media (min-width:769px) { .cms-hide-desktop { display:none !important; } }
@media (max-width:1100px) and (min-width:769px) { .cms-hero h1 { font-size:54px; }.cms-hero p { font-size:18px; } }
@media (max-width:768px) { .cms-hide-mobile { display:none !important; }.cms-block-inner { width:min(100% - 28px,1160px); }.cms-block-children { padding-left:12px; }.cms-spacing-large { padding-block:58px; }.cms-image-text,.cms-columns-2,.cms-columns-3,.cms-columns-4,.cms-service-grid,.cms-stats,.cms-testimonials,.cms-gallery,.cms-form-grid { grid-template-columns:1fr; }.cms-image-text.cms-image-right figure { order:0; }.cms-hero { min-height:520px; padding:42px 22px; }.cms-hero h1 { font-size:40px; }.cms-gallery img { aspect-ratio:16/10; }.cms-preview-bar { position:static; display:grid; }.cms-actions .button { width:100%; text-align:center; } }
