/* Homepage follows the typography, palette and components of the service pages. */
.home-page { background:#fff; }
.home-page .container { max-width:1200px; padding-left:24px; padding-right:24px; }
.home-page .dm { line-height:1.8; }
.home-page .dm h1 { font-size:clamp(36px,4.2vw,58px); letter-spacing:-1.7px; line-height:1.13; }
.home-page .dm h2 { letter-spacing:-.8px; }
.home-page .dm h3 { font-size:22px; }
.home-skip { position:fixed; top:-90px; left:20px; padding:12px 20px; background:#173a60; color:#fff; z-index:2000; }
.home-skip:focus { top:12px; color:#fff; }
.home-hero { padding:160px 0 0; background:linear-gradient(125deg,#edf6ff 0%,#f8fbff 60%,#e8f3fd 100%); }
.home-hero h1 span { color:#3875ad; }
.home-lead { font-size:19px; margin-top:24px; }
.home-hero .dm-actions { margin-top:30px; }
.home-hero-notes { display:flex; flex-wrap:wrap; gap:16px; color:#52697d; font-size:13px; margin-bottom:30px; }
.home-hero-notes span::before { content:'✓'; color:#338b97; margin-right:7px; font-weight:800; }
.home-visual { position:relative; min-width:0; }
.home-visual img { border:1px solid #d4e4f2; border-radius:24px; box-shadow:0 24px 60px #173a6010; }
.home-visual-label { position:relative; margin:-22px 20px 0; background:white; border:1px solid #d5e4f0; border-radius:10px; padding:14px 18px; color:#244b6f; font-size:13px; box-shadow:0 10px 25px #173a600a; }
.home-status { display:inline-block; width:8px; height:8px; border-radius:50%; background:#338b97; margin-right:8px; }
.home-pillars { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; margin-top:60px; border-top:1px solid #caddeb; }
.home-pillars a { padding:28px 25px; color:#173a60; border-right:1px solid #caddeb; }
.home-pillars a:first-child { padding-left:0; }
.home-pillars a:last-child { border:0; }
.home-pillars a:hover { background:#fff8; }
.home-pillars span,.home-pillars strong,.home-pillars small { display:block; }
.home-pillars span { font-size:11px; letter-spacing:1.7px; font-weight:800; color:#3875ad; }
.home-pillars strong { font-size:21px; margin:4px 0; }
.home-pillars small { font-size:13px; color:#52697d; }
.home-section-heading { display:grid; grid-template-columns:1.1fr 1fr; gap:70px; align-items:end; margin-bottom:36px; }
.home-section-heading h2,.home-section-heading p:last-child { margin-bottom:0; }
.home-services-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.home-service { display:flex; flex-direction:column; padding:28px; border:1px solid #d9e5f0; border-radius:14px; background:#fff; transition:transform .2s,box-shadow .2s; }
.home-service:hover { transform:translateY(-4px); box-shadow:0 12px 32px #173a6010; border-color:#9dbdde; }
.home-service-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:24px; }
.home-service-top i { background:#edf5fd; color:#326da7; border-radius:12px; width:52px; height:52px; font-size:28px; display:grid; place-items:center; }
.home-service-top span { color:#6b849b; font-size:13px; }
.home-service h3 a { color:#173a60; }
.home-service h3 a:hover { color:#326da7; }
.home-service p { font-size:15px; }
.home-service .home-service-meta { font-size:12px; color:#52697d; padding-top:12px; border-top:1px solid #e6eef6; margin-top:auto; }
.home-text-link { color:#286397; font-size:14px; font-weight:800; }
.home-text-link:hover { color:#173a60; }
.home-text-link span { margin-left:6px; }
.home-approach { padding:12px 28px; border:1px solid #d9e5f0; background:#fff; border-radius:16px; }
.home-approach article { display:flex; gap:20px; padding:24px 0; border-bottom:1px solid #e0ebf4; }
.home-approach article:last-child { border:0; }
.home-approach article>span { color:#326da7; font-size:14px; font-weight:800; }
.home-approach h3 { font-size:20px!important; margin-bottom:8px; }
.home-approach p { margin-bottom:0; font-size:15px; }
.home-marketing-image { padding:24px; border-radius:20px; background:#edf5fd; }
.home-marketing-image p { text-align:center; margin:18px 0 0; font-size:14px; }
.home-process { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px; }
.home-process article { border-top:2px solid #9dbdde; padding-top:24px; }
.home-process span { color:#3875ad; font-size:14px; font-weight:800; }
.home-process h3 { margin:14px 0 12px; }
.home-process p { font-size:15px; margin-bottom:0; }
.home-project { overflow:hidden; border:1px solid #d9e5f0; border-radius:14px; background:white; }
.home-project>a { display:block; background:#edf5fd; }
.home-project img { width:100%; aspect-ratio:3/2; object-fit:cover; object-position:top; }
.home-project>div { padding:24px; }
.home-project .dm-eyebrow { font-size:11px; margin-bottom:8px; }
.home-project h3 { font-size:20px!important; }
.home-faq { max-width:850px!important; }
.home-contact { background:#173a60; }
.home-contact-inner { display:grid; grid-template-columns:1.4fr 1fr; gap:70px; align-items:center; }
.home-contact h2 { color:#fff!important; }
.home-contact p { color:#d1e2f0; }
.home-contact .dm-eyebrow { color:#a7d0f3!important; }
.home-contact .dm-button { background:#fff; color:#173a60; }
.home-contact .dm-button:hover { background:#e5f1fb; color:#173a60; }
.home-contact-inner>div:last-child { text-align:right; }
.home-contact-phone { display:block; color:#fff; font-size:22px; margin:18px 0 6px; }
.home-contact-phone:hover { color:#c5e0f7; }
.home-contact-inner>div:last-child p { font-size:13px; }
.home-footer { background:#edf5fc; padding:55px 0 0; color:#485e72; }
.home-footer-grid { display:grid; grid-template-columns:1.2fr .7fr 1.1fr; gap:65px; padding-bottom:36px; }
.home-footer img { max-width:240px; width:100%; height:auto; margin-bottom:18px; }
.home-footer h2 { font-size:17px; color:#173a60; }
.home-footer a { display:block; color:#285b87; margin-bottom:8px; overflow-wrap:anywhere; }
.home-footer p { color:#485e72; font-size:14px; }
.home-footer-bottom { border-top:1px solid #cbdfef; padding:20px 0; font-size:12px; }
@media(min-width:768px) { .home-page #nav .navbar { max-width:1200px; margin:auto; } }
@media(max-width:991px) { .home-services-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .home-section-heading { gap:30px; } .home-process { grid-template-columns:repeat(2,minmax(0,1fr)); } .home-footer-grid { gap:30px; } .home-contact-inner { gap:30px; } }
@media(max-width:767px) { .home-hero { padding-top:135px; } .home-page .dm h1 { letter-spacing:-1px; } .home-hero .dm-split { gap:26px; } .home-pillars,.home-section-heading,.home-contact-inner,.home-footer-grid { grid-template-columns:1fr; } .home-pillars { margin-top:40px; } .home-pillars a,.home-pillars a:first-child { padding:18px 0; border-right:0; border-bottom:1px solid #caddeb; } .home-section-heading { gap:18px; } .home-contact-inner>div:last-child { text-align:left; } .home-lead { font-size:18px; } }
@media(max-width:480px) { .home-services-grid,.home-process { grid-template-columns:1fr; } .home-service { padding:24px; } .home-page .container { padding-left:20px; padding-right:20px; } .home-visual-label { margin:-12px 12px 0; font-size:12px; } .home-page .dm-button { text-align:center; } }
@media(prefers-reduced-motion:reduce) { .home-service { transition:none; } .home-service:hover { transform:none; } }
