/* Homepage sections: business needs first, with linked technical service names. */
.home-section {
  --home-teal:#226458;
  --home-warm:#f4efe5;
  padding:80px 0;
}
.home-section-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:32px;
  margin-bottom:36px;
}
.home-section-heading h2 { margin:0; font-size:clamp(2rem,3.1vw,2.625rem); }
.home-section-heading > p { max-width:350px; margin:0; font-size:.9375rem; }
.home-section .eyebrow, .home-contact .eyebrow { margin-bottom:16px; }
.home-label { font-size:.6875rem; letter-spacing:.1em; font-weight:750; }
.home-action { display:flex; align-items:center; justify-content:space-between; gap:20px; font-size:.875rem; font-weight:650; text-decoration:none; }
.home-action > span:last-child { font-size:1.125rem; }
.home-start { background:#fff; }
.home-path {
  position:relative;
  display:flex;
  height:100%;
  flex-direction:column;
  overflow:hidden;
  border:1px solid #d9ddce;
  border-radius:16px;
  color:var(--navy);
  text-decoration:none;
  background:#edf1e8;
}
.home-path-run { background:#f3eee4; border-color:#e4dac8; }
.home-path-copy { position:relative; z-index:1; flex:1; display:flex; flex-direction:column; padding:28px; }
.home-path .home-label { color:#325b48; }
.home-path-run .home-label { color:#78591d; }
.home-path h3 { font-size:1.75rem; margin:18px 0 16px; line-height:1.17; }
.home-path p { font-size:.875rem; margin-bottom:20px; color:#47564c; }
.home-path-run p { color:#625843; }
.home-path-terms { display:block; font-size:.75rem; line-height:1.7; color:#465145; }
.home-path-run .home-path-terms { color:#625843; }
.home-path .home-action { margin-top:auto; padding-top:24px; color:var(--indigo); }
.home-path-art { display:block; width:100%; aspect-ratio:20/9; overflow:hidden; flex-shrink:0; }
.home-path img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.home-path:hover, .home-resource:hover { color:var(--navy); }
.home-path:hover .home-action, .home-resource:hover .home-action { text-decoration:underline; }
.home-next-move { display:flex; flex-wrap:wrap; align-items:center; gap:12px 24px; margin-top:28px; font-size:.8125rem; }
.home-next-move > span { color:var(--muted); margin-right:auto; }
.home-next-move a { padding:6px 0; font-weight:600; text-decoration:none; }
.home-next-move a:hover { text-decoration:underline; }
.home-next-move a span { margin-left:6px; }
.home-services { background:#f5f5f8; border-top:1px solid var(--border); }
.home-service-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.home-service {
  display:flex;
  flex-direction:column;
  padding:30px;
  background:#fff;
  border:1px solid var(--border);
  border-radius:14px;
  scroll-margin-top:115px;
}
.home-service-label { display:flex; align-items:center; gap:12px; color:var(--indigo); margin-bottom:22px; }
.home-service-icon { display:grid; place-items:center; width:44px; height:44px; flex-shrink:0; background:#eeecf8; border-radius:12px; }
.home-service-icon svg { width:25px; height:25px; }
.home-service:nth-child(3n) .home-service-label { color:var(--home-teal); }
.home-service:nth-child(3n) .home-service-icon { background:#e8f2ed; }
.home-service:nth-child(4) .home-service-label { color:#7c5b22; }
.home-service:nth-child(4) .home-service-icon { background:#f6f0e3; }
.home-service h3 { font-size:1.625rem; line-height:1.25; max-width:430px; margin-bottom:14px; }
.home-service-description { font-size:.9375rem; margin-bottom:22px; }
.home-service-links { list-style:none; padding:0; margin:0 0 24px; }
.home-service-links li { border-top:1px solid #e8eaf0; }
.home-service-links a { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:12px 0; text-decoration:none; }
.home-service-links strong { font-size:.875rem; font-weight:650; }
.home-service-links small { display:block; font-size:.75rem; color:var(--muted); line-height:1.6; margin-top:3px; }
.home-service-links a:hover strong { text-decoration:underline; }
.home-service-links a > span:last-child { flex-shrink:0; }
.home-service-note { border-left:2px solid #b8d1c6; padding:4px 0 4px 16px; font-size:.875rem; max-width:380px; margin-bottom:24px; }
.home-service-benefit { display:flex; gap:10px; margin:auto 0 0; padding:14px 16px; background:#f2f5f2; border-radius:8px; color:#355448; font-size:.8125rem; line-height:1.6; }
.home-service-benefit > span { font-weight:700; }
.home-services-help { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-top:30px; }
.home-services-help p { font-size:.875rem; margin:0; }
.home-services-help strong { color:var(--navy); display:block; }
.home-services-help .button { flex-shrink:0; font-size:.875rem; }
.home-working { background:var(--navy); color:#fff; }
.home-working h2 { font-size:clamp(2rem,3vw,2.625rem); }
.home-working-intro { color:#c5ccda; font-size:.9375rem; max-width:480px; }
.home-work-steps { list-style:none; padding:0; margin:28px 0; }
.home-work-steps li { display:flex; gap:18px; padding:17px 0; border-top:1px solid #ffffff24; }
.home-work-steps li > span { font-size:.75rem; color:#d9c68e; padding-top:2px; }
.home-work-steps h3 { font-size:1.0625rem; letter-spacing:-.015em; margin-bottom:7px; }
.home-work-steps p { font-size:.8125rem; color:#c5ccda; margin:0; max-width:400px; }
.home-working-link { display:inline-flex; align-items:center; gap:30px; color:#fff; font-size:.875rem; font-weight:600; padding:6px 0; }
.home-handover { background:#f8f6f0; border-radius:14px; padding:32px; color:var(--navy); box-shadow:12px 12px 0 #ffffff0c; }
.home-handover-top { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:24px; color:var(--indigo); }
.home-handover-mark { font-size:2rem; font-weight:750; line-height:1; }
.home-handover h3 { font-size:1.625rem; }
.home-handover > p { font-size:.8125rem; max-width:350px; }
.home-handover-list { margin:24px 0; }
.home-handover-list > div { border-top:1px solid #dcded7; padding:17px 0; }
.home-handover-list dt { font-size:.875rem; margin-bottom:5px; }
.home-handover-list dt span { display:inline-block; width:24px; color:var(--home-teal); }
.home-handover-list dd { margin:0 0 0 24px; font-size:.8125rem; color:var(--muted); }
.home-handover > .home-action { border-top:1px solid #dcded7; padding-top:20px; }
.home-library { background:#fff; }
.home-resource { display:flex; flex-direction:column; height:100%; color:var(--navy); text-decoration:none; border:1px solid var(--border); border-radius:12px; padding:24px; }
.home-resource-type { font-size:.625rem; letter-spacing:.08em; font-weight:700; color:var(--muted); }
.home-resource-art { display:block; width:100%; aspect-ratio:3/2; overflow:hidden; margin:20px 0 24px; border-radius:8px; background:#f4efe5; }
.home-resource-art img { display:block; width:100%; height:100%; object-fit:cover; }
.home-resource h3 { font-size:1.375rem; line-height:1.3; }
.home-resource p { font-size:.875rem; margin:12px 0 26px; }
.home-resource .home-action { color:var(--indigo); margin-top:auto; font-size:.8125rem; }
.home-contact { padding:0 0 80px; }
.home-contact-inner { display:flex; align-items:center; justify-content:space-between; gap:40px; border-radius:16px; background:#eeecf7; padding:48px; border:1px solid #dfdbee; }
.home-contact h2 { font-size:clamp(2rem,3vw,2.625rem); }
.home-contact p:not(.eyebrow) { max-width:570px; font-size:.9375rem; margin:0; }
.home-contact-actions { display:flex; flex-direction:column; align-items:flex-start; gap:20px; flex-shrink:0; }
.home-contact-actions .button { font-size:.875rem; }
.home-contact-actions p:not(.eyebrow) { font-size:.75rem; }
.home-contact-actions > .home-action { align-self:stretch; }
/* Scope the Bootstrap column widths after the site's shared CDN fallback. */
@media (min-width:992px) {
  .home-section .col-lg-6 { width:50%; }
}
@media (min-width:768px) {
  .home-section .col-md-4 { width:33.333333%; }
}
@media (max-width:1199px) {
  .home-path-copy { padding:24px; }
  .home-path h3 { font-size:1.5rem; }
}
@media (max-width:991px) {
  .home-section { padding:60px 0; }
  .home-section-heading { align-items:flex-start; flex-direction:column; gap:20px; }
  .home-section-heading > p { max-width:600px; }
  .home-path-copy { padding:28px; }
  .home-path h3 { font-size:1.75rem; }
  .home-next-move > span { width:100%; }
  .home-service { padding:24px; }
  .home-service h3 { font-size:1.4375rem; }
  .home-service-grid { gap:18px; }
  .home-handover { max-width:620px; }
  .home-resource { padding:18px; }
  .home-contact-inner { padding:32px; }
  .home-contact-actions { flex-shrink:1; }
}
@media (max-width:767px) {
  .home-section { padding:48px 0; }
  .home-section-heading { margin-bottom:28px; }
  .home-path-copy { padding:24px; }
  .home-path-art { aspect-ratio:2/1; }
  .home-path h3 { font-size:1.625rem; }
  .home-path .home-action { padding-top:20px; }
  .home-next-move { gap:8px 18px; }
  .home-next-move a { padding:10px 0; }
  .home-service-grid { grid-template-columns:minmax(0,1fr); }
  .home-service h3 { font-size:1.5rem; }
  .home-service-links { margin-bottom:18px; }
  .home-services-help { align-items:flex-start; flex-direction:column; }
  .home-handover { padding:24px; box-shadow:6px 6px 0 #ffffff0c; }
  .home-resource { padding:24px; }

  .home-contact { padding-bottom:48px; }
  .home-contact-inner { align-items:flex-start; flex-direction:column; gap:28px; padding:28px 24px; }
  .home-contact-actions { width:100%; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
}

/* Supporting diagrams reserve their space before scripts and images load. */
.home-services-intro { flex:0 0 350px; max-width:100%; }
@media (min-width:992px) {
  .home-services .home-section-heading { align-items:center; }
}
.home-services-intro p { font-size:.9375rem; margin:16px 0 0; }
.home-connections { display:block; width:100%; height:auto; aspect-ratio:9/4; }
.home-handover-flow { display:block; width:100%; height:auto; max-height:74px; margin-top:24px; }
.home-contact-inner { position:relative; overflow:hidden; }
.home-contact-inner::before, .home-contact-inner::after {
  content:'';
  position:absolute;
  width:300px;
  height:300px;
  border:1px solid #37308312;
  border-radius:50%;
  right:15%;
  top:-190px;
  pointer-events:none;
}
.home-contact-inner::after { width:380px; height:380px; right:calc(15% - 40px); top:-230px; }
.home-contact-inner > * { position:relative; z-index:1; }
.home-path:focus-visible, .home-resource:focus-visible { outline-offset:5px; }
.home-service:focus-within { border-color:#9388c4; }
@media (prefers-reduced-motion:no-preference) {
  .home-path, .home-resource { transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
  .home-service { transition:border-color .25s ease, box-shadow .25s ease; }
  .home-path img { transition:transform .55s cubic-bezier(.2,.7,.2,1); }
  .home-service-icon { transition:transform .25s ease; }
  .home-action > span:last-child, .home-service-links a > span:last-child { transition:transform .2s ease; }
  .home-path:focus-visible, .home-resource:focus-visible { transform:translateY(-3px); box-shadow:0 12px 28px #11182b0d; }
  .home-service:focus-within .home-service-icon { transform:rotate(-5deg); }
  .home-action:focus-visible > span:last-child, .home-service-links a:focus-visible > span:last-child { transform:translate(2px,-2px); }
  .home-entered .home-draw { stroke-dasharray:1; animation:home-line-draw 1.1s ease both; }
}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .home-path:hover, .home-resource:hover { transform:translateY(-4px); box-shadow:0 14px 30px #11182b0d; }
  .home-path:hover img { transform:scale(1.035); }
  .home-service:hover { border-color:#b5acd4; box-shadow:0 8px 24px #11182b08; }
  .home-service:hover .home-service-icon { transform:rotate(-5deg); }
  .home-path:hover .home-action > span:last-child,
  .home-resource:hover .home-action > span:last-child,
  .home-action:hover > span:last-child,
  .home-service-links a:hover > span:last-child { transform:translate(2px,-2px); }
}
@keyframes home-line-draw {
  from { stroke-dashoffset:1; }
  to { stroke-dashoffset:0; }
}
@media (max-width:991px) {
  .home-services-intro { display:flex; align-items:center; gap:28px; flex-basis:auto; width:100%; }
  .home-connections { width:300px; flex-shrink:0; }
  .home-services-intro p { margin:0; }
}
@media (max-width:575px) {
  .home-services-intro { flex-direction:column; align-items:flex-start; gap:20px; }
  .home-connections { width:100%; max-width:350px; }
}
