/* Four equal service pillars: readable names, calm surfaces, explicit next steps. */
.cf-pillar-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.cf-pillar-card { display:flex; flex-direction:column; min-width:0; padding:30px; color:var(--cf-ink); border:1px solid #dce7f3; border-top:3px solid var(--cf-blue); border-radius:8px; background:linear-gradient(135deg,#fff 55%,#f5faff); transition:border-color .2s,box-shadow .2s; }
.cf-pillar-card:hover { color:var(--cf-ink); border-color:#87b6f0; box-shadow:0 12px 36px #16396b0c; }
.cf-pillar-card__head { display:flex; align-items:center; gap:14px; margin-bottom:16px; }
.cf-pillar-card__head > span { color:var(--cf-blue); font:700 1rem/1.4 Manrope,sans-serif; }
.cf-pillar-card__head p { margin:0; color:#52647a; font-size:.875rem; line-height:1.6; }
.cf-pillar-card__head > b { margin-left:auto; color:var(--cf-blue); font-size:1.375rem; }
.cf-site .cf-pillar-card h3 { margin:0 0 24px; font-size:clamp(1.25rem,2.15vw,1.75rem); line-height:1.5; letter-spacing:-.035em; font-weight:700; text-wrap:pretty; }
.cf-pillar-card__body { display:grid; grid-template-columns:144px minmax(0,1fr); align-items:center; gap:24px; margin-bottom:24px; }
.cf-pillar-card__body > p { margin:0; font-size:1rem; line-height:1.9; color:#52647a; }
.cf-pillar-card__visual { position:relative; aspect-ratio:1; overflow:hidden; display:grid; place-items:center; background:#f2f8fe; border:1px solid #e1ecf7; border-radius:4px; }
.cf-pillar-card__visual img { display:block; width:100%; height:100%; object-fit:contain; }
.cf-pillar-card__visual .cf-service-diagram { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%) scale(.4); width:340px; min-width:340px; transform-origin:center; }
.cf-pillar-card__foot { margin-top:auto; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; border-top:1px solid #e3ebf4; padding-top:20px; font-size:.875rem; line-height:1.7; }
.cf-pillar-card__foot > span { color:#60718a; }
.cf-pillar-card__foot strong { color:var(--cf-blue); font-weight:600; }
.cf-pillar-card__foot i { font-style:normal; margin-left:10px; }
.cf-services-overview-link { display:flex; justify-content:flex-end; margin-top:30px; }
.cf-four-services .cf-services-intro { min-height:0; padding:94px 0 54px; }
.cf-four-services .cf-services-intro > .cf-shell { width:min(1200px,calc(100% - 64px)); padding:0; }
.cf-services-intro__copy { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:64px; align-items:end; margin-bottom:52px; }
.cf-four-services .cf-services-intro h1 { font-size:clamp(2rem,4.1vw,3.75rem); line-height:1.4; letter-spacing:-.045em; }
.cf-services-intro h1 span { display:block; }
.cf-four-services .cf-services-intro .cf-page-hero__lead { font-size:1rem; line-height:2; margin:0 0 6px; }
.cf-four-services .cf-kicker,.cf-home-services .cf-kicker { font-size:.8125rem; }
.cf-service-jump { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border:1px solid #d8e5f3; border-radius:6px; overflow:hidden; background:#fff; }
.cf-service-jump a { position:relative; min-width:0; display:flex; flex-direction:column; align-items:flex-start; padding:22px 20px; color:var(--cf-navy); border-right:1px solid #d8e5f3; transition:background .2s; }
.cf-service-jump a:last-child { border:0; }
.cf-service-jump a:hover { background:#eef6ff; }
.cf-service-jump a > span { font:700 .875rem Manrope,sans-serif; color:var(--cf-blue); }
.cf-service-jump p { margin:16px 0 10px; font-size:.875rem; line-height:1.6; color:#566980; }
.cf-service-jump strong { margin-top:auto; font-size:1.0625rem; line-height:1.65; letter-spacing:-.035em; text-wrap:pretty; }
.cf-service-jump b { position:absolute; top:18px; right:20px; color:var(--cf-blue); font-size:1.25rem; }
.cf-pillar-detail { position:relative; padding:72px 0; border-bottom:1px solid #dce7f3; scroll-margin-top:110px; }
.cf-pillar-detail:last-child { border:0; }
.cf-legacy-anchor { position:absolute; top:0; scroll-margin-top:110px; }
.cf-pillar-detail__heading { margin-bottom:36px; }
.cf-pillar-detail__heading > p { display:flex; align-items:center; gap:18px; margin:0 0 16px; font:700 .8125rem/1.6 Manrope,sans-serif; letter-spacing:.06em; color:var(--cf-blue); }
.cf-pillar-detail__heading > p span { font-size:1.5rem; letter-spacing:-.03em; }
.cf-four-services .cf-pillar-detail__heading h2 { margin:0; font-size:clamp(1.45rem,3.2vw,2.65rem); font-weight:600; line-height:1.5; letter-spacing:-.04em; text-wrap:pretty; }
.cf-pillar-detail__body { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(32px,5vw,72px); align-items:start; }
.cf-pillar-detail__visual { display:grid; place-items:center; aspect-ratio:6/5; border:1px solid #e0eaf6; border-radius:6px; overflow:hidden; background:linear-gradient(135deg,#f5fbff,#edf5ff); }
.cf-pillar-detail__visual img { display:block; width:100%; height:100%; object-fit:contain; max-height:400px; }
.cf-pillar-detail__issue { border-left:2px solid #72b7eb; margin-top:24px; padding-left:18px; }
.cf-pillar-detail__issue h3 { margin:0 0 8px; font-size:.875rem; font-weight:700; color:#305789; }
.cf-pillar-detail__issue p { margin:0; font-size:1rem; line-height:1.85; color:#52647a; }
.cf-pillar-detail__content > h3 { margin:0 0 18px; font-size:clamp(1.375rem,2.2vw,1.875rem); font-weight:600; line-height:1.6; letter-spacing:-.035em; text-wrap:pretty; }
.cf-pillar-detail__content > p { font-size:1rem; line-height:1.9; color:#52647a; margin:0 0 28px; }
.cf-pillar-detail__content h4 { margin:26px 0 10px; font-size:.875rem; color:#305789; }
.cf-scope-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin:0; padding:0; list-style:none; column-gap:24px; }
.cf-scope-list li { position:relative; padding:12px 0 12px 18px; border-bottom:1px solid #e4ebf4; font-size:1rem; line-height:1.8; }
.cf-scope-list li::before { content:''; position:absolute; top:23px; left:0; width:5px; height:5px; background:var(--cf-blue); border-radius:50%; }
.cf-pillar-output { margin:28px 0 18px; padding:20px 22px; background:#eff6fe; border-radius:4px; }
.cf-pillar-output dt { font-size:.875rem; font-weight:700; color:#305789; margin-bottom:8px; }
.cf-pillar-output dd { margin:0; font-size:1rem; line-height:1.8; }
.cf-pillar-detail__content > .cf-pillar-detail__note { font-size:.875rem; line-height:1.85; }
.cf-pillar-detail__actions { display:flex; align-items:center; gap:24px; flex-wrap:wrap; }
.cf-pillar-detail__actions .cf-button { min-width:0; font-size:1rem; gap:28px; }
.cf-pillar-detail__actions .cf-text-link { font-size:.875rem; }
.cf-service-diagram { width:min(340px,90%); padding:22px; color:#234268; background:#fff; border:1px solid #d4e3f3; border-radius:6px; }
.cf-diagram-caption { display:block; font-size:1rem; font-weight:600; margin-bottom:20px; }
.cf-diagram-filters,.cf-diagram-channels { display:flex; gap:6px; justify-content:space-between; }
.cf-diagram-filters span,.cf-diagram-channels span { flex:1; background:#eef5fe; color:#2259a4; padding:8px 5px; text-align:center; font-size:.875rem; }
.cf-diagram-table { margin-top:16px; border:1px solid #e0e9f4; }
.cf-diagram-table > div { display:flex; justify-content:space-between; padding:10px 14px; font-size:.875rem; border-bottom:1px solid #e0e9f4; }
.cf-diagram-table > div:last-child { border:0; }
.cf-diagram-table > div:first-child { background:#f5f9ff; }
.cf-diagram-table > div span:last-child { color:#086e8d; }
.cf-service-diagram > p { margin:18px 0 0; color:#59718d; font-size:.875rem; text-align:center; }
.cf-diagram-down { display:block; text-align:center; color:#699acc; font-size:1.25rem; line-height:1.5; }
.cf-diagram-step { background:#f0f6ff; padding:12px; text-align:center; font-size:1rem; border:1px solid #c6dcf5; }
.cf-diagram-step--goal { color:#fff; background:#0759e6; border-color:#0759e6; }
.cf-service-consultation .cf-section-head { margin-bottom:36px; }
.cf-service-consultation .cf-section-head h2 { font-size:clamp(1.75rem,3.3vw,2.625rem); line-height:1.5; }
.cf-consult-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; list-style:none; margin:0; padding:0; }
.cf-consult-steps li { padding-top:24px; border-top:1px solid #a6c7ef; }
.cf-consult-steps span { color:var(--cf-blue); font:700 .875rem Manrope,sans-serif; }
.cf-consult-steps h3 { margin:18px 0 12px; font-size:1.25rem; }
.cf-consult-steps p { color:#52647a; font-size:1rem; line-height:1.9; margin:0; }
.cf-contact-service-selection { margin:0 0 24px; padding:18px 20px; border-left:3px solid var(--cf-blue); background:#eff6fe; color:#305789; font-size:1rem; line-height:1.8; }
.cf-contact-service-selection strong { display:block; color:var(--cf-navy); }
.cf-contact-guide .cf-contact-services { display:grid; gap:0; }
.cf-contact-guide .cf-contact-services li { display:block; }
.cf-contact-guide .cf-contact-services a > span { flex-shrink:0; font-size:.875rem; }
.cf-contact-services a { display:flex; gap:16px; align-items:baseline; font-size:1rem; color:var(--cf-navy); text-decoration:none; padding:6px 0; }
.cf-contact-services a:hover { color:var(--cf-blue); text-decoration:underline; text-underline-offset:5px; }
#contact-form { scroll-margin-top:120px; }
.cf-pillar-card:focus-visible,.cf-service-jump a:focus-visible,.cf-contact-services a:focus-visible,.cf-pillar-detail a:focus-visible { outline:3px solid #0759e6; outline-offset:4px; }
.cf-web-back { display:inline-block; color:#c6daf2; font-size:.875rem; margin-bottom:28px; }
.cf-web-back:hover { color:#fff; }
.cf-subpage.cf-web-refined .cf-page-hero { min-height:0; padding-block:76px; }
.cf-web-scope { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.cf-web-scope article { padding:28px; border-top:2px solid #a4c7ee; background:#f3f8fe; }
.cf-web-scope article > span { font:700 .875rem Manrope,sans-serif; color:var(--cf-blue); }
.cf-web-scope h3 { margin:24px 0 14px; font-size:1.25rem; line-height:1.6; }
.cf-web-scope p { margin:0; color:#52647a; font-size:1rem; line-height:1.9; }
.cf-web-related { margin-top:32px; padding:24px 0; border-block:1px solid #dce7f3; display:flex; align-items:center; flex-wrap:wrap; gap:16px 36px; }
.cf-web-related p { flex:1 1 420px; margin:0; color:#52647a; font-size:1rem; line-height:1.9; }
.cf-web-related .cf-text-link { font-size:1rem; }
.cf-web-price-note { margin:24px 0 0; font-size:1rem; line-height:1.9; color:#52647a; }
.cf-web-price-note a { color:var(--cf-blue); text-decoration:underline; text-underline-offset:4px; }
.cf-web-refined .cf-section-head h2 { font-size:clamp(1.75rem,3.8vw,3rem); line-height:1.5; }
.cf-web-refined .cf-price p { font-size:1rem; }
.cf-web-refined .cf-price .cf-price__name { font-size:.8125rem; }
.cf-web-refined .cf-faq summary { font-size:1.125rem; }
.cf-web-refined .cf-faq p { font-size:1rem; }
.cf-company-table dd > .cf-company-service { display:block; padding:4px 0; border:0; }
@media (max-width:1000px) {
    .cf-web-scope { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .cf-pillar-card { padding:24px; }
    .cf-pillar-card__body { grid-template-columns:112px minmax(0,1fr); gap:18px; }
    .cf-pillar-card__visual .cf-service-diagram { transform:translate(-50%,-50%) scale(.3); }
    .cf-service-jump { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .cf-service-jump a:nth-child(2) { border-right:0; }
    .cf-service-jump a:nth-child(-n+2) { border-bottom:1px solid #d8e5f3; }
    .cf-services-intro__copy { gap:30px; }
    .cf-scope-list { grid-template-columns:1fr; }
}
@media (max-width:760px) {
    .cf-web-scope { grid-template-columns:1fr; }
    .cf-pillar-grid { grid-template-columns:1fr; gap:18px; }
    .cf-pillar-card__body { grid-template-columns:120px minmax(0,1fr); }
    .cf-pillar-card__visual .cf-service-diagram { transform:translate(-50%,-50%) scale(.33); }
    .cf-site .cf-pillar-card h3 { font-size:clamp(1.125rem,4.8vw,1.65rem); }
    .cf-four-services .cf-services-intro { padding:60px 0 32px; }
    .cf-four-services .cf-services-intro > .cf-shell { width:calc(100% - 32px); }
    .cf-services-intro__copy { grid-template-columns:1fr; gap:24px; margin-bottom:30px; }
    .cf-four-services .cf-services-intro h1 { font-size:clamp(1.75rem,6.6vw,2.75rem); }
    .cf-service-jump a { padding:18px 14px; }
    .cf-service-jump strong { font-size:1rem; }
    .cf-service-jump p { font-size:.875rem; }
    .cf-pillar-detail { padding:48px 0; }
    .cf-pillar-detail__body { grid-template-columns:1fr; gap:28px; }
    .cf-pillar-detail__heading { margin-bottom:24px; }
    .cf-pillar-detail__visual { aspect-ratio:auto; height:280px; }
    .cf-pillar-detail__visual img { height:280px; }
    .cf-pillar-detail__visual .cf-service-diagram { transform:scale(.85); }
    .cf-consult-steps { grid-template-columns:1fr; gap:24px; }
    .cf-pillar-detail__actions .cf-button { width:100%; justify-content:space-between; padding-inline:22px; }
    .cf-services-overview-link { justify-content:flex-start; }
    .cf-services-overview-link a { font-size:.9375rem; }
}
@media (max-width:380px) {
    .cf-pillar-card { padding:18px; }
    .cf-pillar-card__body { grid-template-columns:88px minmax(0,1fr); gap:14px; }
    .cf-pillar-card__visual .cf-service-diagram { transform:translate(-50%,-50%) scale(.23); }
    .cf-pillar-detail__heading > p { font-size:.75rem; gap:10px; }
    .cf-pillar-detail__visual .cf-service-diagram { transform:scale(.8); }
}
@media (prefers-reduced-motion:reduce) { .cf-pillar-card,.cf-service-jump a { transition:none; } }
