:root {
  --paper: #ffffff;
  --ink: #0d1114;
  --muted: #637078;
  --blue: #174f7c;
  --blue-deep: #0c3354;
  --mist: #e7f1f8;
  --line: rgba(13, 17, 20, .11);
  --ease: cubic-bezier(.22, 1, .36, 1);
}

* { box-sizing: border-box; font-style: normal; }
html { overflow-x: clip; scroll-behavior: smooth; }
body {
  margin: 0;
  min-width: 320px;
  background: linear-gradient(180deg, #fff 0%, #f7fafc 60%, #fff 100%);
  color: var(--ink);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
a { color: inherit; }
a:focus-visible { outline: 3px solid rgba(47,120,174,.4); outline-offset: 4px; }

header, main, footer { width: min(calc(100% - 32px), 1060px); margin-inline: auto; }
header {
  position: sticky;
  z-index: 20;
  top: max(12px, env(safe-area-inset-top));
  min-height: 66px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-top: 14px;
  padding: 8px 10px 8px 14px;
  border: 1px solid rgba(255,255,255,.86);
  border-radius: 999px;
  background: rgba(255,255,255,.82);
  box-shadow: 0 16px 46px rgba(12,51,84,.09);
  backdrop-filter: blur(22px) saturate(1.25);
  -webkit-backdrop-filter: blur(22px) saturate(1.25);
}
.brand { display: inline-flex; align-items: center; gap: 10px; font-size: 13px; font-weight: 760; letter-spacing: -.03em; text-decoration: none; }
.brand img { width: 36px; height: 36px; }
.back { min-height: 44px; display: inline-flex; align-items: center; padding: 0 17px; border-radius: 999px; background: rgba(23,79,124,.08); color: var(--blue); font-size: 12px; font-weight: 700; text-decoration: none; transition: background 180ms ease, color 180ms ease; }
.back:hover { background: var(--blue); color: white; }

main { padding: clamp(88px, 10vw, 138px) 0 94px; }
h1 { max-width: 820px; margin: 0; font-size: clamp(3.4rem, 6vw, 5rem); font-weight: 700; line-height: .98; letter-spacing: -.06em; }
.updated { margin: 24px 0 52px; color: var(--muted); font-size: 12px; }
.policy {
  display: grid;
  gap: 10px;
  padding: clamp(18px, 3vw, 30px);
  border: 1px solid rgba(23,79,124,.1);
  border-radius: 42px;
  background: linear-gradient(145deg, rgba(244,248,251,.97), rgba(231,241,248,.74));
  box-shadow: inset 0 1px 0 white, 0 30px 90px rgba(12,51,84,.07);
}
section {
  display: grid;
  grid-template-columns: minmax(170px, .36fr) minmax(0, 1.64fr);
  gap: clamp(28px, 5vw, 64px);
  padding: clamp(24px, 3vw, 36px);
  border: 1px solid rgba(255,255,255,.9);
  border-radius: 26px;
  background: rgba(255,255,255,.8);
  box-shadow: 0 1px 1px rgba(13,17,20,.025), 0 14px 36px rgba(12,51,84,.04);
}
h2 { margin: 0; color: var(--blue-deep); font-size: 16px; font-weight: 720; line-height: 1.3; letter-spacing: -.02em; }
p, li { color: #53616a; font-size: 15px; line-height: 1.75; }
p { max-width: 700px; margin: 0; }
ul { max-width: 700px; margin: 0; padding-left: 20px; }
.required-notice { padding: 20px; border: 1px solid rgba(23,79,124,.11); border-radius: 18px; background: rgba(231,241,248,.72); color: #29465a; }
.policy a { color: var(--blue); font-weight: 650; }

footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 18px; padding: 30px 0 36px; border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; }
footer nav { display: flex; flex-wrap: wrap; gap: 8px 18px; }
footer a { min-height: 32px; display: inline-flex; align-items: center; }

@media (max-width: 700px) {
  body { background: #f2f4f5; }
  header { width: calc(100% - 22px); min-height: 60px; margin-top: 8px; padding: 7px 7px 7px 10px; }
  .brand img { width: 34px; height: 34px; }
  .back { min-height: 42px; padding-inline: 13px; font-size: 11px; }
  main { width: calc(100% - 22px); padding: 84px 0 70px; }
  h1 { font-size: 2.8rem; }
  .updated { margin-bottom: 36px; }
  .policy { padding: 10px; border-radius: 30px; }
  section { grid-template-columns: 1fr; gap: 12px; padding: 24px 20px; border-radius: 22px; }
  p, li { font-size: 15.5px; line-height: 1.72; }
  footer { width: calc(100% - 22px); }
}
