  :root {
    --pink:        #D4637E;
    --pink-dark:   #B84A66;
    --pink-light:  #FDF2F5;
    --pink-gradient: #F9E4EC;
    --green:       #1A9D57;
    --green-dark:  #147A44;
    --green-light: #ECF7F1;
    --ink:         #243040;
    --sub:         #4A5568;
    --bg:          #ffffff;
    --bg-soft:     #F7F8FA;
    --line:        #E8ECF0;
    --radius:      12px;
    --fs-body:     16px;
    --fs-note:     14px;
    --fs-tag:      12px;
    --maxw:        1200px;
    --shadow-sm:   0 1px 3px rgba(0,0,0,.04), 0 1px 2px rgba(0,0,0,.06);
    --shadow-md:   0 4px 16px rgba(0,0,0,.05), 0 2px 6px rgba(0,0,0,.04);
    --shadow-lg:   0 12px 40px rgba(0,0,0,.06), 0 4px 12px rgba(0,0,0,.04);
    --shadow-xl:   0 20px 60px rgba(0,0,0,.08), 0 8px 20px rgba(0,0,0,.04);
  }
  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
  :focus-visible { outline: 2px solid var(--pink); outline-offset: 3px; }
  body { font-family: 'Noto Sans JP', 'Hiragino Sans', sans-serif; color: var(--ink); background: var(--bg); line-height: 1.8; font-weight: 400; text-wrap: wrap; word-break: normal; }

  /* BASE */
  .wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 40px; }
  .eyebrow { font-size: 11px; font-weight: 700; color: var(--pink-dark); letter-spacing: .25em; text-transform: uppercase; margin-bottom: 20px; }

  .btn { display: inline-block; padding: 18px 40px; border-radius: 9999px; font-size: 15px; font-weight: 500; text-decoration: none; letter-spacing: .02em; transition: all .35s cubic-bezier(.4,0,.2,1); box-shadow: rgba(26,38,51,.1) 0px 6px 24px 0px; }
  .btn-primary { background: var(--pink); color: #fff; border: 1px solid transparent; box-shadow: 0 4px 16px rgba(212,99,126,.2); }
  .btn-primary:hover { background: var(--pink-dark); transform: translateY(-2px); box-shadow: 0 8px 28px rgba(212,99,126,.3); }
  .btn-ghost { background: transparent; color: var(--ink); border: 1.5px solid var(--line); box-shadow: none; }
  .btn-ghost:hover { background: var(--bg-soft); border-color: var(--pink); color: var(--pink); transform: translateY(-2px); }

  .card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 32px; transition: all .4s cubic-bezier(.4,0,.2,1); box-shadow: var(--shadow-sm); }
  .card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); border-color: transparent; }

  /* PAGE HERO */
  .page-hero { padding: 88px 0 64px; }
  .breadcrumb { font-size: var(--fs-note); color: var(--sub); margin-bottom: 20px; }
  .breadcrumb a { color: var(--sub); text-decoration: none; }
  .breadcrumb a:hover { color: var(--ink); }
  .breadcrumb span { margin: 0 6px; }
  .page-hero h1 { font-size: 36px; font-weight: 700; line-height: 1.4; letter-spacing: -.02em; }
  .page-hero p.sub { font-size: var(--fs-body); color: var(--sub); margin-top: 12px; line-height: 1.8; }

  /* CONTENT */
  .privacy-section { padding: 120px 0; }
  .privacy-inner { max-width: 720px; }
  .privacy-inner .updated { font-size: var(--fs-note); color: var(--sub); margin-bottom: 24px; }
  .privacy-lead { font-size: var(--fs-body); color: var(--sub); line-height: 1.9; margin-bottom: 48px; }
  .privacy-block { margin-bottom: 48px; }
  .privacy-block h2 { font-size: 18px; font-weight: 700; margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
  .privacy-block p { font-size: var(--fs-body); color: var(--sub); line-height: 1.9; }
  .privacy-block p + p { margin-top: 12px; }
  .privacy-block ul { font-size: var(--fs-body); color: var(--sub); line-height: 1.9; padding-left: 20px; margin-top: 8px; }
  .privacy-block ul li { margin-bottom: 6px; }
  .privacy-block ol { font-size: var(--fs-body); color: var(--sub); line-height: 1.9; padding-left: 22px; margin-top: 10px; }
  .privacy-block ol li { margin-bottom: 10px; }
  .privacy-block ol ol { margin-top: 10px; margin-bottom: 4px; }
  .contact-box { background: var(--bg-soft); border: 1px solid var(--line); border-radius: var(--radius); padding: 24px 28px; margin-top: 16px; }
  .contact-box p { font-size: var(--fs-body); color: var(--sub); line-height: 1.9; }
  .contact-box a { color: var(--pink); text-decoration: none; }
  .contact-box a:hover { text-decoration: underline; }

  html { scroll-behavior: smooth; }

  /* RESPONSIVE */
  @media (max-width: 768px) {
    .wrap { padding: 0 20px; }
    .page-hero { padding: 48px 0 40px; }
    .page-hero h1 { font-size: 26px; }
    .footer-inner { flex-direction: column; gap: 28px; }
    .footer-nav { justify-content: flex-start; gap: 14px 20px; }
    .footer-bottom { flex-direction: column; align-items: flex-start; gap: 10px; }
  }
