:root{
  --kpmg-blue:#00338D;
  --kpmg-blue-dark:#00205B;
  --kpmg-blue-light:#D9E8FF;
  --kpmg-gray-100:#f7f9fc;
  --kpmg-gray-200:#e5e5e5;
  --kpmg-overlay:rgba(12,35,60,.6);
  --kpmg-shadow:0 12px 30px rgba(0,0,0,.22);
  --kpmg-radius:8px;
  --kpmg-motion-med:220ms;
  --kpmg-ease:cubic-bezier(.2,.8,.2,1);
}

@media (prefers-reduced-motion:reduce){
  *{
    animation-duration:1ms!important;
    transition-duration:1ms!important;
    scroll-behavior:auto!important;
  }
}

.kpmg-modal{
  position:fixed;
  inset:0;
  background:var(--kpmg-overlay);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:99991;
  opacity:1;
  transition:opacity var(--kpmg-motion-med) var(--kpmg-ease);
}

.kpmg-modal[hidden]{
  display:none!important;
}

body.kpmg-modal-open{
  overflow:hidden;
}

.kpmg-modal.is-closing{
  opacity:0;
}

.kpmg-modal-content{
  position:relative;
  background:#fff;
  width:min(780px,92%);
  border-radius:var(--kpmg-radius);
  box-shadow:var(--kpmg-shadow);
  max-height:85vh;
  padding:18px 22px;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}

@media (max-width:760px){
  .kpmg-modal-content{
    max-height:94vh;
    padding:16px;
    border-radius:12px;
  }
}

.kpmg-modal-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  position:sticky;
  top:0;
  z-index:2;
  background:#fff;
  padding:0 0 10px 0;
  border-bottom:1px solid rgba(0,0,0,.08);
}

.kpmg-modal-title{
  margin:0;
  font-weight:700;
  color:var(--kpmg-blue-dark);
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.kpmg-modal-subtitle{
  margin:6px 0 0 0;
  color:#666;
}

.kpmg-modal-close-btn{
  width:34px;
  height:34px;
  border-radius:999px;
  border:1px solid var(--kpmg-gray-200);
  background:#fff;
  cursor:pointer;
  position:relative;
  flex:0 0 auto;
}

.kpmg-modal-close-btn::before{
  content:"×";
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--kpmg-blue);
  line-height:1;
}

.kpmg-modal-close-btn:hover{
  background:var(--kpmg-gray-100);
}

.kpmg-modal-close-btn:focus{
  outline:2px solid var(--kpmg-blue-light);
  outline-offset:2px;
}

.kpmg-modal-body{
  flex:1;
  min-height:0;
  overflow:hidden;
  padding-top:12px;
}

.kpmg-modal-scroll{
  height:100%;
  overflow:auto;
  -webkit-overflow-scrolling:touch;
  scrollbar-gutter:stable;
}

.kpmg-modal-scroll::-webkit-scrollbar{
  width:8px;
}

.kpmg-modal-scroll::-webkit-scrollbar-thumb{
  background-color:rgba(0,0,0,0);
  border-radius:6px;
}

.kpmg-modal-scroll:hover::-webkit-scrollbar-thumb{
  background:linear-gradient(#c9cfdb,#b3b9c4);
}

.kpmg-modal-section-title{
  margin:12px 0 6px;
  font-weight:700;
  color:var(--kpmg-blue-dark);
}

.kpmg-modal-extra{
  margin-top:10px;
  color:#444;
}
.kpmg-modal-content{
  display:flex;
  flex-direction:column;
  max-height:85vh;
  overflow:hidden;
}

.kpmg-modal-header{
  position:sticky;
  top:0;
  z-index:2;
  background:#fff;
}

.kpmg-modal-body{
  display:flex;
  flex-direction:column;
  flex:1;
  min-height:0;
  overflow:hidden;
}

.kpmg-modal-scroll{
  flex:1;
  min-height:0;
  overflow:auto;
  -webkit-overflow-scrolling:touch;
}
