/* Reusable service-page layout. Photo, copy and panels remain native editable blocks. */
.ctb-service-page { font-family: Arial, sans-serif; }
.ctb-service-page .ctb-section { padding-block: 48px; }
.ctb-service-page .ctb-section > .ctb-row { max-width: 1080px; }
.ctb-service-page .ctb-row { margin-block-start: 28px; gap: 32px; }
.ctb-service-page .ctb-row:first-child { margin-block-start: 0; }
.ctb-service-page .ctb-card { padding: 24px; border-radius: 6px; }
.ctb-service-page > .wp-block-post-content > .ctb-mobile-process { background: #fff; }
.ctb-service-page > .wp-block-post-content > .ctb-mobile-process > .ctb-row:first-child { text-align: center; }
.ctb-service-page > .wp-block-post-content > .ctb-mobile-process > .ctb-row:first-child h2:first-child { font-size: 18px; font-weight: 400; margin-block: 4px; }
.ctb-service-page > .wp-block-post-content > .ctb-mobile-process > .ctb-row:first-child h2:nth-child(2) { font-size: 28px; font-weight: 400; margin-block: 4px 30px; }
.ctb-service-hero.ctb-section { position: relative; isolation: isolate; background-color: #333; background-size: cover; background-position: center; padding: 28px clamp(20px,4vw,48px); color: #fff; }
.ctb-service-hero::before { content: ""; position: absolute; inset: 0; background: #0002; z-index: -1; pointer-events: none; }
.ctb-service-hero .ctb-service-hero-grid { display: grid; grid-template-columns: 2.1fr 1fr; gap: 32px; max-width: 1080px; margin: 0 auto; min-height: 606px; }
.ctb-service-hero .ctb-service-intro { padding: 66px 40px 50px; background: #000b; color: #fff; }
.ctb-service-hero .ctb-service-intro h1 { font: 700 36px/1.2 Arial,sans-serif; letter-spacing: 0; max-width: none; margin: 0; text-wrap: initial; }
.ctb-service-hero .ctb-service-intro p { font: 700 26px/1.8 Arial,sans-serif; margin: 48px 0 0; }
.ctb-service-hero .ctb-service-contact { padding: 36px 40px; background: #fffffff0; color: #333; }
.ctb-contact-widget .nf-form-cont { font: 400 16px/1.35 Arial,sans-serif; }
.ctb-contact-widget .nf-form-content { padding: 0; }
.ctb-contact-widget .nf-form-title h3 { font: 400 20px/1.2 Arial,sans-serif; letter-spacing: 0; margin: 0 0 8px; }
.ctb-contact-widget .nf-form-fields-required { font-size: 11px; line-height: 1.5; margin-bottom: 10px; }
.ctb-contact-widget .nf-field-container { margin-bottom: 12px; }
.ctb-contact-widget .nf-form-cont .label-above .nf-field-label { margin-bottom: 4px; line-height: 1.3; }
.ctb-contact-widget .nf-field-label label { font: 600 13px/1.3 Arial,sans-serif; margin: 0; }
.ctb-contact-widget .nf-form-cont input:not([type=button]):not([type=submit]),
.ctb-contact-widget .nf-form-cont textarea { padding: 9px 11px; height: 40px; min-height: 40px; font: 400 16px/1.25 Arial,sans-serif; border: 1px solid #bfc0c3; border-radius: 0; background: #f7f7f7; width: 100%; }
.ctb-contact-widget .nf-form-cont textarea { height: 64px; min-height: 64px; resize: vertical; }
.ctb-contact-widget .nf-form-cont input[type=button],.ctb-contact-widget .nf-form-cont input[type=submit] { border-radius: 0; height: 42px; padding: 11px 14px; background: #333; font: 400 16px/1.25 Arial,sans-serif; }
.ctb-contact-widget .nf-form-cont input[type=button]:hover,.ctb-contact-widget .nf-form-cont input[type=submit]:hover { background: var(--wp--preset--color--ink); }
.ctb-contact-widget .nf-after-field .nf-error-msg,.ctb-contact-widget .nf-form-errors { font-size: 13px; line-height: 1.4; }
.ctb-contact-widget .nf-form-cont .nf-response-msg:empty { padding: 0; }
.ctb-service-contact-links { margin-top: 16px; }
.ctb-service-contact-links p { margin: 10px 0 0; font: 700 16px/1.5 Arial,sans-serif; display: flex; align-items: center; gap: 14px; }
.ctb-service-contact-links p::before { content: "☎"; color: var(--wp--preset--color--service-green); font-size: 25px; line-height: 1; flex: 0 0 24px; text-align: center; }
.ctb-service-contact-links p + p::before { content: "✉"; }
.ctb-service-contact-links a { color: var(--wp--preset--color--service-link); text-decoration: none; overflow-wrap: anywhere; }
.ctb-service-contact-links a:hover { text-decoration: underline; }
/* Each graphic stays paired with its editable heading and list, including on mobile. */
.ctb-service-page .ctb-section.ctb-service-feature { background: var(--wp--preset--color--paper,#fff); }
.ctb-service-page .ctb-section.ctb-service-feature--stacks { background: #f3f7fb; }
.ctb-service-page .ctb-service-feature > .ctb-row { align-items: center !important; gap: clamp(28px,4vw,56px); }
.ctb-service-feature .ctb-feature-art { margin: 0; }
.ctb-service-feature .ctb-feature-art img { display: block; width: 100%; height: auto; border-radius: 16px; box-shadow: 0 16px 40px #102d431a; }
.ctb-service-feature .ctb-feature-copy > :first-child { margin-block-start: 0; }
.ctb-service-feature .ctb-eyebrow { color: var(--wp--preset--color--blue,#245a73); font-size: 12px; letter-spacing: .1em; margin-bottom: 12px; }
.ctb-service-feature h2 { color: var(--wp--preset--color--ink,#142e3c); font-size: clamp(28px,3vw,36px); margin-block: 0 24px; }
.ctb-service-feature .ctb-feature-list { padding-left: 22px; margin-block: 0; }
.ctb-service-feature .ctb-feature-list li { font-size: 16px; line-height: 1.65; padding-left: 4px; }
.ctb-service-feature .ctb-feature-list li + li { margin-top: 16px; }
.ctb-service-feature .ctb-feature-list li::marker { color: var(--wp--preset--color--service-link,#087db5); }
.ctb-service-feature .ctb-feature-list strong { color: var(--wp--preset--color--ink,#142e3c); }
@media (min-width: 782px) and (max-width: 1150px) {
 .ctb-service-hero .ctb-service-intro { padding: 48px 30px; }
 .ctb-service-hero .ctb-service-intro h1 { font-size: 32px; }
 .ctb-service-hero .ctb-service-intro p { font-size: 22px; }
 .ctb-service-hero .ctb-service-contact { padding-inline: 24px; }
}
@media (max-width: 781px) {
 .ctb-service-hero.ctb-section { padding: 20px; }
 .ctb-service-hero .ctb-service-hero-grid { grid-template-columns: 1fr; gap: 20px; min-height: 0; }
 .ctb-service-hero .ctb-service-intro,.ctb-service-hero .ctb-service-contact { padding: 28px 24px; }
 .ctb-service-hero .ctb-service-intro h1 { font-size: 30px; }
 .ctb-service-hero .ctb-service-intro p { font-size: 20px; line-height: 1.65; margin-top: 24px; }
 .ctb-service-page .ctb-section:not(.ctb-service-hero) { padding-block: 36px; }
 .ctb-service-page .ctb-service-feature > .ctb-row { gap: 28px; }
 .ctb-service-feature .ctb-feature-art { max-width: 500px; margin-inline: auto; }
}
