/* QR Craft Studio privacy policy — editorial, accessible, single-column redesign.
   Applies exclusively to .policy-page. No new privacy claims or content. */
.policy-page {
  --policy-ink: #171d3a;
  --policy-muted: #565e78;
  --policy-accent: #633df4;
  --policy-border: #e7e5f4;
  --policy-soft: #f3f0ff;
  --policy-mint: #d8fbef;
  background: #f7f7fd;
  color: var(--policy-ink);
  min-height: 100vh;
}
.policy-page .site-header {
  background: rgba(255,255,255,.92);
  border-bottom: 1px solid rgba(210,209,234,.65);
  box-shadow: 0 7px 34px rgba(33,29,83,.025);
}
.policy-page .mobile-nav { background: #fff; }
.policy-page .nav-policy[aria-current="page"] {
  color: #5735d3;
  background: #efebff;
  border-color: #dfd7ff;
}
.policy-progress {
  pointer-events: none;
  position: fixed;
  z-index: 70;
  left: 0;
  top: 83px;
  height: 3px;
  width: 100%;
  transform: scaleX(var(--policy-read-progress, 0));
  transform-origin: 0 50%;
  background: linear-gradient(90deg, #7353ff, #4c40d7 58%, #3cbca6);
  border-radius: 0 8px 8px 0;
  transition: transform .09s linear;
}
.policy-main {
  position: relative;
  isolation: isolate;
  padding: 44px 20px 112px;
  overflow: hidden;
}
.policy-main::before,
.policy-main::after {
  content: "";
  position: absolute;
  pointer-events: none;
  z-index: -1;
  filter: blur(3px);
  border-radius: 50%;
}
.policy-main::before {
  background: radial-gradient(circle, #dcd5ff86, transparent 67%);
  width: min(70vw, 750px);
  height: min(70vw, 750px);
  top: -300px;
  right: -210px;
}
.policy-main::after {
  background: radial-gradient(circle, #cbf7e461, transparent 68%);
  width: min(65vw, 720px);
  height: min(65vw, 720px);
  bottom: -290px;
  left: -230px;
}
.policy-document {
  width: min(860px, 100%);
  margin-inline: auto;
}
.policy-cover {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  padding: clamp(31px, 5.2vw, 62px) clamp(29px, 6vw, 66px);
  border-radius: 29px;
  border: 1px solid #e3ddfc;
  background: linear-gradient(123deg, #fff 5%, #faf9ff 53%, #eae5ff 100%);
  box-shadow: 0 24px 75px rgba(49,37,129,.075), inset 0 1px #fff;
}
.policy-cover::after {
  content: "";
  position: absolute;
  height: 6px;
  bottom: 0;
  left: 0;
  right: 0;
  background: linear-gradient(90deg, #4e31dc, #8e70ff 55%, #6edfc5);
}
.policy-cover-inner { position: relative; z-index: 2; }
.policy-cover-glow {
  position: absolute;
  z-index: 0;
  width: 440px;
  height: 440px;
  right: -132px;
  top: -218px;
  border-radius: 50%;
  background: radial-gradient(circle, #d0c4ffb8, #e9e4ff6b 47%, transparent 72%);
}
.policy-cover-grid {
  position: absolute;
  z-index: 0;
  width: 250px;
  height: 250px;
  right: -10px;
  top: 4px;
  background-image: radial-gradient(#8c78d64f 2px, transparent 2.5px);
  background-size: 17px 17px;
  mask-image: linear-gradient(100deg, transparent 3%, #000 100%);
  -webkit-mask-image: linear-gradient(100deg, transparent 3%, #000 100%);
  opacity: .75;
  transform: rotate(-13deg);
}
.policy-cover-accent {
  position: absolute;
  width: 154px;
  height: 154px;
  border: 26px solid #ffffff88;
  border-radius: 44px;
  top: -74px;
  right: 66px;
  transform: rotate(19deg);
}
.policy-page .policy-overline {
  margin: 0 0 15px;
  color: #6045c9;
  letter-spacing: .18em;
  text-transform: uppercase;
  font-size: 11px;
  font-weight: 800;
}
.policy-page .policy-overline::before {
  width: 8px;
  height: 8px;
  background: #6a49f3;
  box-shadow: 0 0 0 5px #e8e2ff;
}
.policy-page .policy-title {
  position: relative;
  margin: 0;
  color: #151b38;
  font-size: clamp(33px, 4.8vw, 48px);
  line-height: 1.11;
  letter-spacing: -.045em;
  font-weight: 800;
}
.policy-document-body {
  padding: 0 clamp(0px, 1.1vw, 12px);
}
.policy-page .policy-details {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1.05fr .85fr 1fr;
  gap: 0;
  padding: 10px 15px;
  margin: -1px 0 36px;
  background: white;
  border: 1px solid var(--policy-border);
  border-radius: 0 0 23px 23px;
  box-shadow: 0 12px 29px rgba(56,43,116,.045);
}
.policy-page .policy-detail {
  padding: 18px 17px;
  min-width: 0;
}
.policy-page .policy-detail span {
  display: block;
  font-size: 10px;
  margin-bottom: 7px;
  color: #747a94;
  letter-spacing: .115em;
}
.policy-page .policy-detail strong,
.policy-page .policy-detail a {
  font-size: 13px;
  line-height: 1.52;
  font-weight: 730;
  color: #1c2544;
  overflow-wrap: anywhere;
}
.policy-page .policy-detail a { color: #5a3ad7; text-underline-offset: 3px; text-decoration: underline; }
.policy-page .policy-detail[data-field="contact"] a:hover { color: #3b1db2; }
.policy-page .policy-detail:nth-child(2),
.policy-page .policy-detail:nth-child(5) { border-left: 1px solid #efedf7; }
.policy-page .policy-detail:nth-child(4),
.policy-page .policy-detail:nth-child(5) { border-top: 1px solid #efedf7; }
.policy-page .policy-detail:nth-child(4) { grid-column: 1/3; }
.policy-page .policy-detail:nth-child(5) { grid-column: 3; }
.policy-page .policy-copy {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 15px;
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 0;
  color: var(--policy-ink);
  counter-reset: policy;
}
.policy-page .policy-section {
  position: relative;
  counter-increment: policy;
  padding: clamp(25px, 4vw, 36px) clamp(23px, 4.5vw, 43px);
  border: 1px solid #e7e5f4;
  border-radius: 21px;
  background: #fff;
  box-shadow: 0 7px 25px rgba(37,32,95,.025);
  transition: border-color .24s ease, box-shadow .24s ease, transform .24s ease;
}
.policy-page .policy-section::before {
  content: counter(policy, decimal-leading-zero);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: clamp(25px, 4vw, 36px);
  right: clamp(23px, 4.5vw, 43px);
  width: 35px;
  height: 35px;
  border: 1px solid #e2dcfd;
  border-radius: 11px;
  background: #f3efff;
  color: #6041da;
  font-size: 11px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  letter-spacing: .035em;
}
.policy-page .policy-section::after {
  content: "";
  position: absolute;
  left: 0;
  top: 27px;
  height: 49px;
  width: 4px;
  border-radius: 0 8px 8px 0;
  background: linear-gradient(#7150f6,#9b84ff);
}
.policy-page .policy-section:nth-child(3n + 2)::after {
  background: linear-gradient(#42bfa8,#a0e8d4);
}
.policy-page .policy-section:nth-child(3n + 2)::before {
  background: #effaf6;
  color: #087d6b;
  border-color: #d1efe6;
}
.policy-page .policy-section:first-child {
  background: linear-gradient(105deg, #fff 60%, #f4f0ff 100%);
  border-color: #ded7ff;
}
.policy-page .policy-section:last-child {
  background: linear-gradient(110deg, #fff 65%, #f5f3ff 100%);
}
.policy-page .policy-section+.policy-section {
  margin-top: 0;
  padding-top: clamp(25px, 4vw, 36px);
  border-top: 1px solid #e7e5f4;
}
.policy-page .policy-section h2 {
  color: #192241;
  font-size: clamp(17px, 2.2vw, 20px);
  letter-spacing: -.025em;
  line-height: 1.35;
  font-weight: 770;
  margin: 0 48px 12px 0;
}
.policy-page .policy-section p {
  font-size: 15px;
  font-weight: 420;
  color: #545e77;
  line-height: 1.85;
  letter-spacing: .004em;
  margin: 0;
  overflow-wrap: break-word;
}
.policy-page .policy-section p+p { margin-top: 14px; }
.policy-page .policy-section a { color: #5030cb; text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.policy-page .policy-bottom-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 46px;
  padding: 10px 20px;
  margin: 28px 0 0;
  font-size: 13px;
  font-weight: 750;
  color: #593ad2;
  border: 1px solid #dfd9fc;
  background: #f4f0ff;
  border-radius: 999px;
  transition: background .2s, transform .2s;
}
.policy-page .policy-bottom-link:hover { background: #e8e1ff; transform: translateY(-2px); }
.policy-page .site-footer { padding-top: 52px; }
@media (hover:hover) and (prefers-reduced-motion: no-preference) {
  .policy-page .policy-section:hover {
    transform: translateY(-2px);
    border-color: #dcd5f8;
    box-shadow: 0 12px 33px rgba(37,32,95,.055);
  }
}
@media (max-width: 690px) {
  .policy-progress { top: 71px; }
  .policy-main { padding: 22px 14px 72px; }
  .policy-cover { padding: 30px 23px 32px; border-radius: 24px; }
  .policy-cover-glow { width: 290px; height: 290px; right: -150px; top: -140px; }
  .policy-cover-grid { right: -126px; top: 20px; }
  .policy-cover-accent { right: -36px; }
  .policy-page .policy-title { font-size: clamp(32px, 8.5vw, 41px); }
  .policy-document-body { padding: 0 4px; }
  .policy-page .policy-details {
    grid-template-columns: repeat(2,minmax(0,1fr));
    margin-bottom: 25px;
    padding: 5px 11px;
    border-radius: 0 0 20px 20px;
  }
  .policy-page .policy-detail { padding: 13px 10px; }
  .policy-page .policy-detail:nth-child(2),
  .policy-page .policy-detail:nth-child(5) { border-left: 0; }
  .policy-page .policy-detail:nth-child(even) { border-left: 1px solid #efedf7; }
  .policy-page .policy-detail:nth-child(3),
  .policy-page .policy-detail:nth-child(4),
  .policy-page .policy-detail:nth-child(5) { border-top: 1px solid #efedf7; }
  .policy-page .policy-detail:nth-child(4),
  .policy-page .policy-detail:nth-child(5) { grid-column: auto; }
  .policy-page .policy-detail:nth-child(5) { grid-column: span 2; }
  .policy-page .policy-detail strong,
  .policy-page .policy-detail a { font-size: 12px; }
  .policy-page .policy-copy { gap: 12px; }
  .policy-page .policy-section,
  .policy-page .policy-section+.policy-section {
    padding: 24px 19px 25px;
    border-radius: 19px;
  }
  .policy-page .policy-section::after { top: 24px; height: 47px; }
  .policy-page .policy-section::before { top: 22px; right: 17px; height: 31px; width: 31px; }
  .policy-page .policy-section h2 { margin-right: 35px; font-size: 17px; }
  .policy-page .policy-section p { font-size: 14px; line-height: 1.85; }
  .policy-page .policy-bottom-link { margin-top: 23px; }
}
@media (max-width: 370px) {
  .policy-main { padding-inline: 9px; }
  .policy-cover { padding: 27px 18px 30px; }
  .policy-page .policy-details { grid-template-columns: 1fr; }
  .policy-page .policy-detail,
  .policy-page .policy-detail:nth-child(even),
  .policy-page .policy-detail:nth-child(2),
  .policy-page .policy-detail:nth-child(5) { border-left: 0; }
  .policy-page .policy-detail + .policy-detail { border-top: 1px solid #efedf7; }
  .policy-page .policy-detail:nth-child(5) { grid-column: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .policy-progress,
  .policy-page .policy-section,
  .policy-page .policy-bottom-link { transition: none; }
}
/* Metadata: keep every field fully readable at narrow phone widths. */
@media (max-width: 690px) {
  .policy-page .policy-details { grid-template-columns: minmax(0,1fr); }
  .policy-page .policy-detail,
  .policy-page .policy-detail:nth-child(3),
  .policy-page .policy-detail:nth-child(4),
  .policy-page .policy-detail:nth-child(5) { grid-column: 1; border-left: 0; }
  .policy-page .policy-detail + .policy-detail { border-top: 1px solid #efedf7; }
  .policy-page .policy-detail a { overflow-wrap: anywhere; }
}
