.cp-policy--clean{
  padding: 32px 0 64px;
}

.cp-policy__shell{
  max-width: 980px;
  margin: 0 auto;
  padding: 0 24px;
}

.cp-policy__hero{
  margin-bottom: 28px;
}

.cp-policy__title{
  margin: 10px 0 16px;
  font-size: clamp(2.1rem, 4vw, 3.3rem);
  line-height: 1.08;
  letter-spacing: -0.02em;
  color: var(--c-text-strong);
}

.cp-policy__lead{
  max-width: 860px;
  font-size: 1.08rem;
  line-height: 1.9;
  color: var(--c-text-soft);
}

.cp-policy__updated{
  margin-top: 18px;
  color: var(--c-muted);
  font-size: .98rem;
}

.cp-policy__block,
.cp-policy__notice{
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: 20px;
  padding: 28px;
  margin-top: 20px;
  box-shadow: 0 1px 2px rgba(16,24,40,.04);
}

.cp-policy__block h2,
.cp-policy__notice h2{
  margin: 0 0 14px;
  font-size: clamp(1.35rem, 2vw, 1.75rem);
  line-height: 1.2;
  color: var(--c-text-strong);
}

.cp-policy__block p,
.cp-policy__notice p{
  margin: 0 0 14px;
  font-size: 1.04rem;
  line-height: 1.9;
  color: var(--c-text);
}

.cp-policy__block p:last-child,
.cp-policy__notice p:last-child{
  margin-bottom: 0;
}

.cp-policy__notice--info{
  background: #f7fbff;
  border-color: #cfe0f5;
}

.cp-policy__notice--soft{
  background: #f8fafc;
  border-color: #d8e1ea;
}

@media (max-width: 768px){
  .cp-policy__shell{
    padding: 0 18px;
  }

  .cp-policy__block,
  .cp-policy__notice{
    padding: 22px 18px;
  }

  .cp-policy__lead,
  .cp-policy__block p,
  .cp-policy__notice p{
    line-height: 1.8;
  }
}