/* Scoped additions only: original theme palette, header/footer and page layouts retained. */
.elementor .hps-process-hero { background-position: center center; }
.elementor .hps-process-hero .elementor-widget-text-editor { max-width: 850px; margin-inline: auto; }
.elementor .hps-process-step { padding: 26px 28px; gap: 12px; border: 1px solid #c9c9c9; border-radius: 14px; box-shadow: 0 1px 7px rgba(0,0,0,.22); background: #fff; text-align: center; justify-content: center; }
.elementor .hps-process-step .hps-process-step-number h3 { color: #171717; --hps-heading-size: var(--hps-font-h3); }
.elementor .hps-process-step .elementor-widget-heading h3 { --hps-heading-size: var(--hps-font-h3); }
.elementor .hps-process-steps-grid { gap: 48px 18px !important; }
.elementor .hps-process-step .elementor-widget-text-editor { color: var(--hps-muted); font-size: var(--hps-font-body); line-height: var(--hps-line-body); }
.elementor .hps-process-benefits-grid { align-items: center; gap: 48px; }
.elementor .hps-process-benefits-grid img { display:block; width:100%; height:auto; }
.elementor .hps-process-faq .elementor-tab-title { background: var(--hps-navy); color:#fff; padding:18px 20px; font-family:inherit; }
.elementor .hps-process-faq .elementor-accordion-item { border-color:var(--hps-navy); }
.elementor .hps-process-cta { margin:8px 10px; width:calc(100% - 20px); border-radius:16px; overflow:hidden; }
.elementor .hps-about-services .hps-card { background:#fff; }
.hps-idea-hover { transition:transform .28s ease,box-shadow .28s ease; }
.hps-idea-hover .elementor-widget-image,.hps-idea-hover.elementor-widget-image,.hps-idea-hover.elementor-widget-image .elementor-widget-container { overflow:hidden; border-radius:inherit; }
.hps-idea-hover img { transition:transform .55s cubic-bezier(.2,.7,.3,1); }
@media(hover:hover) and (pointer:fine){
  .hps-idea-hover:hover { transform:translateY(-5px); box-shadow:0 12px 24px rgba(20,43,75,.15); }
  .hps-idea-hover:hover img { transform:scale(1.035); }
}
.hps-idea-hover:focus-within { transform:translateY(-3px); box-shadow:0 8px 18px rgba(20,43,75,.14); }
/* Both faces remain in the same grid cell; no fixed height or clipped copy. */
.elementor .hps-flip-card { display:grid !important; grid-template-columns:minmax(0,1fr) !important; grid-template-rows:auto !important; gap:0 !important; position:relative; perspective:1100px; cursor:pointer; overflow:visible; }
.hps-flip-front,.hps-flip-back { grid-area:1 / 1; min-width:0; width:100%; border-radius:inherit; backface-visibility:hidden; -webkit-backface-visibility:hidden; transition:transform .55s cubic-bezier(.2,.65,.3,1),visibility 0s .275s; }
.hps-flip-front { display:flex; background:inherit; transform:rotateY(0deg); visibility:visible; }
.hps-flip-back { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; padding:24px; background:var(--hps-navy); color:#fff; transform:rotateY(-180deg); text-align:center; visibility:hidden; }
.hps-flip-back strong { font-size:clamp(17px,1.4vw,22px); line-height:1.3; }
.hps-flip-back a { color:#fff; text-decoration:underline; }
.hps-flip-back p { margin:0; font-size: var(--hps-font-body); line-height: var(--hps-line-body); }
.hps-flip-card.is-flipped .hps-flip-front { transform:rotateY(180deg); visibility:hidden; }
.hps-flip-card.is-flipped .hps-flip-back { transform:rotateY(0); visibility:visible; }
.hps-flip-card:focus-visible { outline:3px solid var(--hps-blue); outline-offset:5px; }
.hps-submenu-toggle { display:none; }
.primary-menu .sub-menu .sub-menu { left:100%; top:0; }
.primary-menu li.hps-submenu-open > .sub-menu { display:flex; }
.footer-menu .sub-menu { list-style:none; padding-left:14px; margin:6px 0; }
@media(max-width:1060px){
 .primary-menu .menu-item-has-children { position:relative; }
 .hps-submenu-toggle { display:flex; align-items:center; justify-content:center; position:absolute; right:0; top:0; width:44px; height:44px; border:0; background:transparent; color:var(--hps-navy); }
 .primary-menu .menu-item-has-children > a { padding-right:48px; }
 .primary-menu .menu-item-has-children > a::after { display:none; }
 .primary-menu .sub-menu { display:none !important; }
 .primary-menu li.hps-submenu-open > .sub-menu { display:flex !important; position:static; margin:0; }
 .primary-menu .sub-menu .sub-menu { position:static; margin-left:12px; }
}
@media(max-width:767px){
 .elementor .hps-process-step { padding:24px 22px; }
 .elementor .hps-process-steps-grid { gap:24px !important; }
 .elementor .hps-process-benefits-grid { gap:28px; }
 .elementor .hps-process-benefits > .e-con-inner > .e-con { padding-top:56px; padding-bottom:56px; }
}
@media(prefers-reduced-motion:reduce){
 .hps-idea-hover,.hps-idea-hover img,.hps-flip-front,.hps-flip-back { transition:none !important; }
 .hps-idea-hover:hover,.hps-idea-hover:focus-within,.hps-idea-hover:hover img { transform:none !important; }
 .hps-flip-front,.hps-flip-back,.hps-flip-card.is-flipped .hps-flip-front,.hps-flip-card.is-flipped .hps-flip-back { transform:none; }
}
@media(min-width:768px) and (max-width:1024px){
 .elementor .hps-process-steps-grid.e-con:not(:has(> .e-con-inner)), .elementor .hps-process-steps-grid > .e-con-inner { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* Footer contact details: matches the supplied icon / label / value treatment. */
.hps-footer-contact-menu, .hps-footer-contact-menu .sub-menu { list-style:none; padding:0; margin:0; display:grid; gap:22px; }
.hps-footer-contact-menu li { margin:0; min-width:0; }
.site-footer .hps-footer-contact-link { display:flex; align-items:center; gap:15px; min-height:48px; color:#fff; text-decoration:none; }
.hps-footer-contact-icon { display:flex; flex:0 0 25px; align-items:center; justify-content:center; }
.hps-footer-contact-icon svg { display:block; width:25px; height:25px; }
.hps-footer-contact-copy { display:grid; gap:3px; min-width:0; }
.hps-footer-contact-label { font-size: var(--hps-font-label); line-height:1.35; font-weight:600; }
.hps-footer-contact-value { font-size: var(--hps-font-contact); line-height:1.5; font-weight:400; overflow-wrap:anywhere; }
.site-footer .hps-footer-contact-link:hover { color:#81d5ff; text-decoration:none; }
.hps-footer-contact-link:hover .hps-footer-contact-value { text-decoration:underline; }
.hps-footer-contact-link:focus-visible { outline:2px solid #81d5ff; outline-offset:5px; border-radius:3px; }
.footer-contact .social-links:not(:empty) { margin-top:20px; }

/* Shared pointer movement: only explicitly identified images are transformed. */
.hps-pointer-image {
  transform:var(--hps-image-base,translateZ(0)) perspective(1100px) rotateX(var(--hps-rx,0deg)) rotateY(var(--hps-ry,0deg)) translate3d(var(--hps-tx,0px),var(--hps-ty,0px),0);
  transform-origin:center; transition:transform .45s cubic-bezier(.2,.65,.3,1);
  backface-visibility:hidden;
}
.hps-pointer-image.hps-pointer-active { transition-duration:.18s; will-change:transform; }
/* Stable image bounds stop the tiny tilt from causing document overflow. */
.elementor-widget-image[data-hps-tilt-ready] > .elementor-widget-container { overflow:clip; border-radius:inherit; }
/* A real button supports keyboard/touch without wrapping existing links in a button. */
.hps-flip-control { position:absolute; z-index:3; right:5px; bottom:5px; width:34px; height:34px; padding:0; border:1px solid var(--hps-blue); border-radius:50%; background:var(--hps-navy); color:#fff; font:600 20px/1 sans-serif; cursor:pointer; opacity:0; }
.hps-flip-control:focus-visible { opacity:1; outline:3px solid var(--hps-blue); outline-offset:2px; }
.hps-flip-card:hover > .hps-flip-control { opacity:1; }
.hps-flip-front[aria-hidden="true"],.hps-flip-back[aria-hidden="true"] { pointer-events:none; }
@media(hover:none),(pointer:coarse){ .hps-flip-control { opacity:1; width:44px; height:44px; right:-4px; bottom:-4px; } }
@media(prefers-reduced-motion:reduce){ .hps-pointer-image { transform:var(--hps-image-base,none) !important; transition:none !important; } }

/* The original planning cards use translucent backgrounds; avoid double layering. */
.elementor .hps-reason-card > .hps-flip-front { background:transparent !important; }
