/* Shared Stage 3 accessibility and responsive refinements */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:3px solid #7c3aed!important;
  outline-offset:3px!important;
}
[aria-current="page"]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}
:where(a,button,summary,[role="button"]){touch-action:manipulation}
.regops-sr-only{
  position:absolute!important;width:1px!important;height:1px!important;
  padding:0!important;margin:-1px!important;overflow:hidden!important;
  clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;
}
.regops-back-to-top{
  position:fixed;right:18px;bottom:18px;z-index:999;
  min-height:44px;padding:10px 14px;border:1px solid #ddd6fe;border-radius:999px;
  background:#fff;color:#4c1d95;font:inherit;font-size:13px;font-weight:850;
  box-shadow:0 8px 24px rgba(17,24,39,.14);cursor:pointer;
  opacity:0;pointer-events:none;transform:translateY(8px);transition:.18s ease;
}
.regops-back-to-top.is-visible{opacity:1;pointer-events:auto;transform:none}
:where(button,.btn,a[role="button"])[aria-busy="true"]{cursor:progress}
:where(button,.btn,a[role="button"]):disabled{cursor:not-allowed}
@media(max-width:760px){
  .regops-consulting-prompt{grid-template-columns:1fr;margin:24px 14px;padding:18px}
  .regops-consulting-actions{justify-content:flex-start}
  nav{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;padding-bottom:4px}
  nav a{white-space:nowrap}
  :where(button,.btn,a[role="button"]){min-height:44px}
  input,select,textarea{font-size:16px!important}
  .regops-back-to-top{right:12px;bottom:12px}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}


.regops-consulting-prompt{
  max-width:1120px;margin:34px auto;padding:22px 24px;display:grid;
  grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:center;
  border:1px solid #ddd6fe;border-radius:22px;background:linear-gradient(135deg,#fff,#faf5ff);
  box-shadow:0 12px 34px rgba(17,24,39,.08);color:#111827;
}
.regops-consulting-prompt h2{margin:5px 0 8px;font-size:25px;line-height:1.2}
.regops-consulting-prompt p{margin:0;max-width:780px;color:#4b5563;line-height:1.7;font-size:14px}
.regops-consulting-kicker{font-size:11px;font-weight:900;letter-spacing:.09em;text-transform:uppercase;color:#6d28d9}
.regops-consulting-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:9px}
.regops-consulting-primary,.regops-consulting-secondary{
  display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 13px;
  border-radius:12px;font-size:13px;font-weight:900;text-decoration:none;white-space:nowrap
}
.regops-consulting-primary{background:#6d28d9;border:1px solid #6d28d9;color:#fff}
.regops-consulting-secondary{background:#f5f3ff;border:1px solid #ddd6fe;color:#4c1d95}


/* Shared public-page visual system */
body.regops-public-page{
  --regops-card-border:#e5e7eb;
  --regops-card-bg:#fff;
  --regops-section-tint:#fbfaff;
  --regops-card-shadow:0 8px 24px rgba(17,24,39,.07);
  --regops-shell-shadow:0 16px 44px rgba(17,24,39,.09);
  background:linear-gradient(180deg,#fff 0%,#fcfbff 100%);
}
body.regops-public-page .section.purple{
  background:linear-gradient(180deg,var(--regops-section-tint) 0%,#fff 100%);
  border-color:#f0ebff;
}
body.regops-public-page .section.alt{
  background:#fafafa;
  border-color:#f3f4f6;
}
body.regops-public-page :is(
  .card,.toolCard,.packCard,.modelCard,.panelCard,.infoCard,.routeCard
){
  background:var(--regops-card-bg);
  border-color:var(--regops-card-border);
  border-radius:18px;
  box-shadow:var(--regops-card-shadow);
}
body.regops-public-page :is(
  .heroShell,.heroPanel,.journeyCard,.toolkitShell,.packShell,
  .controlsShell,.frameworkCard,.startShell
){
  background:var(--regops-card-bg);
  border:1px solid var(--regops-card-border);
  border-radius:24px;
  box-shadow:var(--regops-shell-shadow);
}
body.regops-public-page :is(.toolCard,.packCard,.routeCard):hover{
  box-shadow:0 14px 34px rgba(17,24,39,.10);
}

.regops-review-status,.regops-storage-notice{
  max-width:1120px;margin:28px auto;padding:13px 16px;border:1px solid #e5e7eb;
  border-radius:16px;background:#fff;color:#4b5563;font-size:13px;line-height:1.65;
  box-shadow:0 8px 24px rgba(17,24,39,.05);
}
.regops-review-status strong,.regops-storage-notice strong{color:#111827}
.regops-storage-notice{background:#f8fafc}
.regops-feedback-link{color:#4c1d95;font-weight:800}
.regops-feedback-row{margin-top:14px}
@media(max-width:760px){
  .regops-review-status,.regops-storage-notice{margin:22px 14px}
}


/* RegOpsPro brand system */
.brand{
  display:inline-flex!important;align-items:center!important;gap:9px!important;
  background:none!important;color:#111827!important;-webkit-text-fill-color:#111827!important;
  text-decoration:none!important;white-space:nowrap!important;
}
.brandMark{
  display:block;width:38px;height:38px;flex:0 0 38px;object-fit:contain;
}
.brand:is(:link,:visited,:hover,:active),.brand[aria-current="page"]{
  text-decoration:none!important;
}
.footerBrand{
  background:none!important;color:#111827!important;-webkit-text-fill-color:#111827!important;
}
@media(max-width:720px){.brandMark{width:34px;height:34px;flex-basis:34px}}


/* RegOpsPro global footer */
.globalFooter{
  box-sizing:border-box;max-width:1180px;margin:48px auto 0;padding:28px 18px 18px;
  border-top:1px solid #e5e7eb;color:#111827;
}
.globalFooter *{box-sizing:border-box}
.globalFooterGrid{
  display:grid;grid-template-columns:minmax(0,1.35fr) minmax(170px,.8fr) minmax(170px,.8fr);
  gap:42px;align-items:start;
}
.globalFooterBrand{font-size:24px;font-weight:900;line-height:1.15;color:#111827}
.globalFooterText{max-width:420px;margin:10px 0 0!important;color:#6b7280!important;font-size:14px!important;line-height:1.7!important}
.globalFooterCol{display:block}
.globalFooterHeading{
  margin:0 0 14px!important;color:#4b5563!important;font-size:12px!important;font-weight:900!important;
  line-height:1.2!important;letter-spacing:.06em!important;text-transform:uppercase!important;
}
.globalFooterLinks{display:grid;gap:10px}
.globalFooter a{
  color:#111827!important;-webkit-text-fill-color:#111827!important;text-decoration:none!important;
  font-size:14px;font-weight:700;line-height:1.35;
}
.globalFooter a:hover{color:#6d28d9!important;-webkit-text-fill-color:#6d28d9!important}
.globalFooterBottom{
  display:grid;grid-template-columns:auto minmax(0,1fr);gap:44px;align-items:start;
  margin-top:26px;padding-top:18px;border-top:1px solid #e5e7eb;
}
.globalFooterLegal{display:flex;flex-wrap:wrap;gap:14px 18px}
.globalFooterLegal a{font-size:12px;font-weight:500}
.globalFooterDisclaimer{margin:0!important;color:#6b7280!important;font-size:12px!important;line-height:1.55!important}
@media(max-width:760px){
  .globalFooter{margin-top:36px;padding:24px 18px 16px}
  .globalFooterGrid{grid-template-columns:1fr;gap:26px}
  .globalFooterBottom{grid-template-columns:1fr;gap:16px}
}
@media print{.globalFooter{display:none!important}}


/* Stage 6.1.1B — GDP Maturity Index visual pilot */
.regops-tool-visual{
  max-width:980px;
  margin:20px auto 2px;
  border:1px solid #ede9fe;
  border-radius:24px;
  overflow:hidden;
  box-shadow:0 14px 38px rgba(17,24,39,.08);
  background:#fff;
  line-height:0;
}
.regops-tool-visual img{display:block;width:100%;height:auto}
.regops-tool-card-visual{
  margin:0 0 14px;
  border:1px solid #ede9fe;
  border-radius:14px;
  overflow:hidden;
  background:#fff;
  line-height:0;
}
.regops-tool-card-visual img{display:block;width:100%;height:auto}
@media(max-width:720px){.regops-tool-visual{margin-top:16px;border-radius:18px}}
@media print{
  .regops-tool-visual,.regops-tool-card-visual{display:none!important}
  body:has(#landing #startBtn) .reportHead::before{
    content:url('/assets/frameworks/gdp-maturity-assessment-visual.svg');
    display:block;
    width:100%;
    max-height:150mm;
    margin:0 0 8mm;
    page-break-inside:avoid;
  }
}


/* Shared RegOpsPro button hierarchy */
:where(a.btn,button.btn,input.btn){
  transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .16s ease,box-shadow .16s ease;
}
:where(a.btn):not(.primary):not(.danger):not(.locked):not(.soon),
:where(a.btn,button.btn,input.btn).secondary{
  background:#f5f3ff!important;
  border-color:#ddd6fe!important;
  color:#4c1d95!important;
  -webkit-text-fill-color:#4c1d95!important;
}
:where(a.btn,button.btn,input.btn).primary{
  background:linear-gradient(135deg,#6d28d9,#7c3aed)!important;
  border-color:#6d28d9!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  box-shadow:none!important;
}
:where(a.btn):not(.danger):not(.locked):not(.soon):hover,
:where(a.btn,button.btn,input.btn).secondary:hover{
  transform:translateY(-1px);
  border-color:#c4b5fd!important;
  box-shadow:0 8px 20px rgba(109,40,217,.10)!important;
}
:where(a.btn,button.btn,input.btn).primary:hover{
  background:linear-gradient(135deg,#5b21b6,#6d28d9)!important;
  border-color:#5b21b6!important;
}
:where(a.btn,button.btn,input.btn).danger{
  -webkit-text-fill-color:currentColor;
}
@media print{
  :where(a.btn,button.btn,input.btn){box-shadow:none!important}
}
