/* Usahakan public landing foundation */
@media (max-width:767px){body:has(#hero-map-bg) .hero-map-container{opacity:.22!important}body:has(#hero-map-bg) .hero-hub-dot{display:none}body:has(#hero-map-bg) section:first-of-type{min-height:100dvh;padding-top:5.5rem;padding-bottom:3rem}body:has(#hero-map-bg) section:first-of-type h1{font-size:clamp(2.25rem,11vw,3rem);line-height:1.04;text-wrap:balance}body:has(#hero-map-bg) section:first-of-type a{min-height:44px}}
body:has(#hero-map-bg) a:focus-visible,body:has(#hero-map-bg) button:focus-visible{outline:3px solid rgba(230,51,41,.55);outline-offset:3px}
@media (prefers-reduced-motion:reduce){body:has(#hero-map-bg) *,body:has(#hero-map-bg) *::before,body:has(#hero-map-bg) *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
/* Accessibility and mobile interaction guardrails */
@media (max-width:767px){#ushChatFab{bottom:calc(1.25rem + env(safe-area-inset-bottom))!important;right:1rem!important}#ushChatPanel{bottom:calc(1.25rem + env(safe-area-inset-bottom))!important;right:1rem!important}}
*:focus-visible{outline:3px solid rgba(230,51,41,.55);outline-offset:3px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}}
/* Preserve existing CTA destinations while clarifying interaction states. */
body:has(#hero-map-bg) a,body:has(#hero-map-bg) button{transition:transform .16s ease,background-color .16s ease,border-color .16s ease,box-shadow .16s ease}
body:has(#hero-map-bg) a:hover,body:has(#hero-map-bg) button:hover{transform:translateY(-1px)}
body:has(#hero-map-bg) a:active,body:has(#hero-map-bg) button:active{transform:translateY(1px)}
body:has(#hero-map-bg) p{max-width:65ch}
@media (prefers-reduced-motion:reduce){body:has(#hero-map-bg) a,body:has(#hero-map-bg) button{transition:none!important}body:has(#hero-map-bg) a:hover,body:has(#hero-map-bg) button:hover,body:has(#hero-map-bg) a:active,body:has(#hero-map-bg) button:active{transform:none}}

/* 20260930 mobile landing density and touch guardrails */
@media (max-width:767px){body:has(#hero-map-bg) section{scroll-margin-top:4.5rem}body:has(#hero-map-bg) nav a,body:has(#hero-map-bg) nav button{min-height:44px}body:has(#hero-map-bg) #ushChatMenu{bottom:calc(5rem + env(safe-area-inset-bottom))!important;right:1rem!important;width:min(18rem,calc(100vw - 2rem))}body:has(#hero-map-bg) #ushChatPanel{height:min(32rem,calc(100dvh - 6rem));max-height:calc(100dvh - 6rem)}body:has(#hero-map-bg) .testimonial-card-wrapper{padding-left:4px;padding-right:4px}}
@media (prefers-reduced-motion:reduce){body:has(#hero-map-bg) .hero-float,body:has(#hero-map-bg) .ambient-blob,body:has(#hero-map-bg) .hero-map-container,body:has(#hero-map-bg) .hero-hub-ring{animation:none!important}}


/* Keyboard skip link: visible only when focused, without changing the landing layout. */
.ush-skip-link {
  position: fixed;
  top: 0.75rem;
  left: 0.75rem;
  z-index: 1000;
  transform: translateY(-180%);
  padding: 0.7rem 0.95rem;
  border-radius: 0.65rem;
  background: #102a43;
  color: #fff;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 8px 20px rgba(16,42,67,.18);
  transition: transform 160ms ease-out;
}
.ush-skip-link:focus-visible { transform: translateY(0); outline: 3px solid #f4b942; outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .ush-skip-link { transition: none; } }

/* 20261001 public shell overflow guard: preserve existing scroll contract while clipping decorative bleed. */
html, body { max-width: 100%; }
body:has(#hero-map-bg) { overflow-x: clip; }
@supports not (overflow: clip) { body:has(#hero-map-bg) { overflow-x: hidden; } }
@media (max-width: 767px) { body:has(#hero-map-bg) .hero-map-container, body:has(#hero-map-bg) .ambient-blob { max-width: 100vw; } }

/* 20261001 mobile form and tap-target guardrails */
body:has(#hero-map-bg) :where(input,select,textarea){font-size:16px;}
body:has(#hero-map-bg) :where(a,button,input,select,textarea){touch-action:manipulation;}
@media (max-width:767px){body:has(#hero-map-bg) :where(.container,.max-w-7xl,.max-w-6xl){min-width:0;} body:has(#hero-map-bg) :where(a,button){min-height:44px;}}

/* 20261002 editorial type guardrails: improve wrapping without changing content or routes. */
body:has(#hero-map-bg) :where(h1,h2,h3){text-wrap:balance;}
body:has(#hero-map-bg) :where(.stat-value,.metric,.price){font-variant-numeric:tabular-nums;}

/* 20261002 mobile CTA hierarchy: keep primary actions thumb-reachable without changing destinations. */
@media (max-width:767px){
  body:has(#hero-map-bg) section:first-of-type .animate-on-scroll.delay-400 > a,
  body:has(#hero-map-bg) section:last-of-type .relative.z-10 > div.flex > a{width:100%;}
  body:has(#hero-map-bg) section:first-of-type .animate-on-scroll.delay-400{gap:.75rem;}
  body:has(#hero-map-bg) section:last-of-type .relative.z-10 > div.flex{align-items:stretch;}
}


/* 20261002 public interaction polish */
body:has(#hero-map-bg) :where(a,button,[role="button"]):focus-visible { outline: 3px solid #f4b942; outline-offset: 3px; }
body:has(#hero-map-bg) :where(a,button,[role="button"]):active { transform: translateY(1px); }
@media (prefers-reduced-motion: reduce) { body:has(#hero-map-bg) :where(a,button,[role="button"]) { transition-duration: .01ms !important; transform: none !important; } }

/* 20261002 public shell polish: consistent interactive motion and keyboard-visible navigation. */
body:has(#hero-map-bg) :where(a,button,[role="button"]){transition:transform .16s ease,box-shadow .16s ease,background-color .16s ease,color .16s ease;}
body:has(#hero-map-bg) :where(a,button,[role="button"]):hover{transform:translateY(-1px);}
body:has(#hero-map-bg) :where(a,button,[role="button"]):active{transform:translateY(1px);}
@media (prefers-reduced-motion:reduce){body:has(#hero-map-bg) :where(a,button,[role="button"]){transition:none!important;}}

/* 20261003 landing accessibility: smooth anchor navigation; reduced-motion override already present above. */
html { scroll-behavior: smooth; }

/* Authenticated dashboard foundation: scoped, additive, and mobile-first. */
.ush-dashboard-page :is(a,button,[role="button"],input[type="submit"]){min-height:44px;}
.ush-dashboard-page :is(a,button,[role="button"]):focus-visible{outline:3px solid rgba(220,38,38,.45);outline-offset:3px;}
.ush-dashboard-page button:disabled{cursor:not-allowed;opacity:.65;}
.ush-dashboard-page #submit-modal[aria-hidden="true"]{visibility:hidden;pointer-events:none;}
.ush-dashboard-page #submit-modal[aria-hidden="false"]{visibility:visible;pointer-events:auto;}
@media (max-width:639px){
  .ush-dashboard-page{padding-bottom:calc(1rem + env(safe-area-inset-bottom));}
  .ush-dashboard-page .ush-command-links{grid-template-columns:1fr;}
  .ush-dashboard-page .ush-command-link{min-height:56px;}
}
@media (prefers-reduced-motion:reduce){
  .ush-dashboard-page *, .ush-dashboard-page *::before, .ush-dashboard-page *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important;}
}


/* 20261003 public landing overflow guard: decorative media must not widen narrow viewports. */
body:not(.ush-dashboard-page){overflow-x:clip;}
@supports not (overflow:clip){body:not(.ush-dashboard-page){overflow-x:hidden;}}
@media (prefers-reduced-motion:reduce){body:not(.ush-dashboard-page) *{scroll-behavior:auto!important;}}
