/* Editorial sections: readable copy, restrained glass, and one clear next step. */
.seo-section { padding: clamp(56px, 7vw, 104px) 0; }
.seo-section h2 { font-size: clamp(2rem, 3.5vw, 3.25rem); line-height: 1.12; letter-spacing: -.04em; margin-bottom: 24px; text-wrap: balance; }
.seo-section h3 { font-size: 1.5rem; line-height: 1.25; letter-spacing: -.025em; }
.seo-section p { font-size: 1.0625rem; line-height: 1.7; color: #47566c; }
.seo-section .seo-note, .seo-note { font-size: .875rem; line-height: 1.6; }
.seo-section-head { display: flex; justify-content: space-between; align-items: end; gap: 36px; margin-bottom: 40px; }
.seo-section-head > p { max-width: 430px; }
.seo-grid { display: grid; gap: 24px; }
.seo-grid-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.seo-grid-four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.seo-card { padding: 32px; border: 1px solid #d8e2f1; border-radius: 18px; background: rgba(255,255,255,.72); backdrop-filter: blur(12px); }
.seo-card > span { display: block; font-size: .875rem; color: #b5400a; margin-bottom: 28px; }
.seo-card p:last-child { margin-bottom: 0; }
.seo-services { background: #eaf0fc; }
.seo-service { display: flex; flex-direction: column; color: #10264d; text-decoration: none; }
.seo-service:hover { border-color: #245bd6; color: #10264d; }
.seo-service p { flex: 1; }
.seo-service b { font-size: .9375rem; }
.seo-section-foot { display: flex; justify-content: space-between; gap: 24px; align-items: center; margin-top: 32px; }
.seo-section-foot p { margin: 0; max-width: 640px; }
.seo-section-foot .btn { flex-shrink: 0; }
.seo-project { min-width: 0; }
.seo-project-image { padding: 28px 32px 0; background: #eaf0fc; border-radius: 24px; }
.seo-project-image img { display: block; width: 100%; height: auto; aspect-ratio: 390/844; object-fit: contain; object-position: top; border-radius: 16px 16px 0 0; }
.seo-project-copy { padding: 24px 4px; }
.seo-project-copy .section-eyebrow { letter-spacing: .08em; font-size: .8125rem; }
.seo-project-copy p { font-size: 1rem; }
.seo-project-copy a { font-weight: 650; text-underline-offset: 4px; }
.seo-region { border-block: 1px solid #d8e2f1; background: #f0f4fc; }
.seo-region-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.seo-region-links a { display: flex; justify-content: space-between; gap: 16px; padding: 20px 0; border-bottom: 1px solid #cbd8ed; color: #10264d; text-decoration: none; font-size: 1.125rem; }
.seo-region-links a:hover { color: #b5400a; }
.seo-industries { display: flex; flex-wrap: wrap; gap: 12px; }
.seo-industries a { border: 1px solid #cbd8ed; padding: 14px 22px; border-radius: 99px; text-decoration: none; color: #10264d; }
.seo-industries a:hover { background: #eaf0fc; }
.seo-reviews { background: linear-gradient(125deg,#eaf0fc,#fbf9f6 55%,#dae7ff); }
.seo-review-link { color: #10264d; font-weight: 650; line-height: 1.8; text-underline-offset: 4px; }
.seo-review-link span, .seo-review > span { color: #b5400a; letter-spacing: .1em; }
.seo-review { padding: 32px; margin: 0; border: 1px solid #fff; border-radius: 18px; background: rgba(255,255,255,.66); backdrop-filter: blur(16px); display: flex; flex-direction: column; }
.seo-review blockquote { font-size: 1.375rem; line-height: 1.5; letter-spacing: -.025em; margin: 24px 0; flex: 1; }
.seo-review figcaption { font-weight: 650; }
.seo-review figcaption span { display: block; font-size: .875rem; font-weight: 400; color: #47566c; }
.seo-faq-wrap { max-width: 900px; }
.seo-faq { border-bottom: 1px solid #cbd8ed; }
.seo-faq summary { position: relative; padding: 24px 40px 24px 0; font-size: 1.125rem; font-weight: 650; cursor: pointer; list-style: none; }
.seo-faq summary::-webkit-details-marker { display: none; }
.seo-faq summary::after { content: '+'; position: absolute; right: 4px; font-size: 1.5rem; top: 20px; }
.seo-faq[open] summary::after { content: '−'; }
.seo-faq p { padding-right: 28px; }
.seo-final-cta { background: #10264d; color: #fff; }
.wd-site main .seo-final-cta h2, .wd-site main .seo-final-cta p { color: #fff; }
.wd-site main .seo-final-cta .section-eyebrow, .wd-site main .seo-final-cta a:not(.btn) { color: #ffd4ad; }
.wd-site main .seo-final-cta a:not(.btn):hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.seo-final-cta em, .seo-work-intro em { font-family: Georgia, serif; font-weight: 400; }
.seo-portfolio-item { margin: 0; background: #eaf0fc; border-radius: 20px; overflow: hidden; padding: 20px 20px 0; }
.seo-portfolio-item img { width: 100%; height: auto; aspect-ratio: 390/844; object-fit: contain; object-position: top; display: block; border-radius: 12px; }
.seo-portfolio-item figcaption { padding: 20px 0; }
.seo-portfolio-item figcaption span { display: block; color: #47566c; font-size: .9375rem; }
.seo-work-intro h1 { font-size: clamp(2.5rem,5vw,4.5rem); letter-spacing: -.045em; line-height: 1.08; }
.seo-work-intro p { max-width: 650px; }
.wd-site .at-home-copy .seo-hero-intro { font-size: 1.0625rem; line-height: 1.7; }
.wd-site .at-home-title.seo-home-title { font-size: clamp(2.65rem,4.1vw,4rem); line-height: 1.08; text-wrap: balance; }
.seo-hero-review { margin-top: 24px; font-size: .9375rem; }
.seo-hero-review a { color: #10264d; text-underline-offset: 4px; }
.seo-hero-review small { display: block; color: #47566c; margin-top: 5px; font-size: .8125rem; }
.wd-site .at-home-actions .seo-phone-link { font-size: 1rem; padding: 12px 0; }
:is(.seo-section,.at-home-hero) a:focus-visible, .seo-faq summary:focus-visible { outline: 3px solid #b5400a; outline-offset: 5px; }
@media(max-width:1199px) { .seo-grid-four { grid-template-columns: repeat(2,minmax(0,1fr)); } .seo-project-image { padding: 20px 20px 0; } }
@media(max-width:767px) { .seo-grid-three,.seo-region-grid { grid-template-columns: 1fr; } .seo-region-grid { gap: 20px; } .seo-section-head,.seo-section-foot { flex-direction: column; align-items: start; gap: 16px; } .seo-section-head { margin-bottom: 28px; } .seo-card,.seo-review { padding: 26px; } .seo-project-image { padding: 24px 32px 0; max-width: 440px; margin: auto; } .seo-grid-three { gap: 32px; } .seo-portfolio { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; } .seo-portfolio-item { padding: 10px 10px 0; } .seo-portfolio-item figcaption { font-size: .9375rem; } }
@media(max-width:479px) { .seo-grid-four,.seo-portfolio { grid-template-columns: 1fr; } .seo-portfolio-item { max-width: 380px; width: 100%; margin: auto; padding: 20px 20px 0; } }

/* A calm, readable closing section shared across the site. */
.wd-site .at-footer-bottom.wd-footer-meta { padding: 56px 0 30px; background: radial-gradient(ellipse at 100% 0, #1d4076 0, transparent 65%), #10264d; color: #d8e5ff; }
.wd-footer-topline { display: grid; grid-template-columns: 1.3fr 1fr; gap: 64px; padding-bottom: 38px; }
.wd-site .wd-footer-meta p { color: #d8e5ff; font-size: 1rem; line-height: 1.65; }
.wd-footer-eyebrow { display: block; margin-bottom: 16px; color: #ffd4ad; font-size: .8125rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 600; }
.wd-site .wd-footer-meta .wd-footer-title { color: #fff; font-size: clamp(1.75rem, 2.6vw, 2.5rem); line-height: 1.2; letter-spacing: -.025em; margin-bottom: 18px; }
.wd-site footer .at-footer-bottom.wd-footer-meta a { color: #e4edff; text-decoration: none; }
.wd-site footer .at-footer-bottom.wd-footer-meta a:hover { color: #ffd4ad; }
.wd-site footer .at-footer-bottom.wd-footer-meta a:focus-visible { outline: 3px solid #ffd4ad; outline-offset: 5px; border-radius: 3px; }
.wd-site .wd-footer-meta .wd-footer-area { display: inline-flex; align-items: center; gap: 18px; min-height: 44px; color: #ffd4ad; }
.wd-footer-contact { justify-self: end; padding-top: 4px; }
.wd-site .wd-footer-meta .wd-footer-phone { display: inline-block; color: #fff; font-size: clamp(1.5rem, 2.5vw, 2rem); line-height: 1.4; font-weight: 600; min-height: 44px; margin-bottom: 6px; }
.wd-footer-socials { display: flex; gap: 10px; margin-top: 22px; }
.wd-site .wd-footer-socials a { display: inline-flex; width: 44px; height: 44px; align-items: center; justify-content: center; border: 1px solid #ffffff30; border-radius: 50%; background: #ffffff09; }
.wd-site .wd-footer-socials a:hover { background: #ffffff16; border-color: #ffd4ad; }
.wd-footer-fineprint { border-top: 1px solid #ffffff26; display: grid; grid-template-columns: 1fr auto; gap: 14px 24px; padding-top: 20px; align-items: center; }
.wd-footer-legal { display: flex; flex-wrap: wrap; gap: 0 24px; }
.wd-footer-legal a { display: inline-flex; align-items: center; min-height: 44px; font-size: .9375rem; }
.wd-site .wd-footer-meta .wd-footer-copyright { font-size: .875rem; margin: 0; }
.wd-site .wd-footer-meta .wd-footer-cookies { grid-column: 1 / -1; margin: 0; font-size: .875rem; max-width: 820px; }
.wd-site .wd-footer-cookies a { text-decoration: underline; text-underline-offset: 3px; }
.wd-accessibility-copy { max-width: 760px; margin-inline: auto; }
.wd-accessibility-copy h2 { font-size: clamp(1.4rem, 2.5vw, 1.85rem); margin-top: 36px; }
.wd-accessibility-copy p, .wd-accessibility-copy li { font-size: 1.0625rem; line-height: 1.8; }
.wd-accessibility-help { background: #eef3ff; border-left: 3px solid #cc4d0b; padding: 24px 28px; border-radius: 0 16px 16px 0; margin: 32px 0; }
.wd-accessibility-help h2 { margin-top: 0; }
@media (max-width: 991px) { .wd-footer-fineprint { grid-template-columns: 1fr; } }
@media (max-width: 767px) { .wd-site .at-footer-bottom.wd-footer-meta { padding: 40px 0 30px; } .wd-footer-topline { grid-template-columns: 1fr; gap: 32px; padding-bottom: 30px; } .wd-footer-contact { justify-self: start; } .wd-footer-legal { gap: 0 20px; } .wd-accessibility-help { padding: 22px; } }
