.page-privacy{
  background:var(--c-paper);
  padding-bottom:var(--sp-8);
}

/* hero */
.page-privacy .privacy-hero{
  position:relative;
  background:var(--c-paper-light);
  padding:var(--sp-5) 0 var(--sp-6);
  overflow:hidden;
}
.page-privacy .privacy-hero::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:4px;
  background:linear-gradient(90deg, var(--c-gold) 0 38%, var(--c-primary) 38% 72%, var(--c-red) 72% 100%);
}
.page-privacy .privacy-hero__grid{
  display:grid;
  gap:var(--sp-5);
}
.page-privacy .privacy-hero__tag{
  margin-bottom:var(--sp-3);
}
.page-privacy .privacy-hero__text h1{
  font-family:var(--font-display);
  font-size:var(--text-3xl);
  line-height:var(--lh-heading);
  letter-spacing:-0.02em;
  color:var(--c-primary);
  margin:0 0 var(--sp-3);
}
.page-privacy .privacy-hero__lead{
  font-size:var(--text-md);
  line-height:var(--lh-base);
  color:var(--c-gray);
  max-width:56ch;
  margin:0;
}
.page-privacy .privacy-hero__meta{
  display:grid;
  gap:var(--sp-1);
  margin:0;
  padding:var(--sp-4);
  background:var(--c-white);
  border:1px solid var(--c-gray-light);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-xs);
}
.page-privacy .privacy-hero__meta-item{
  display:flex;
  flex-direction:column;
  gap:2px;
  padding-block:var(--sp-2);
  border-bottom:1px dashed var(--c-gray-light);
}
.page-privacy .privacy-hero__meta-item:last-child{
  border-bottom:0;
}
.page-privacy .privacy-hero__meta dt{
  font-family:var(--font-mono);
  font-size:var(--text-xs);
  color:var(--c-gray);
  letter-spacing:0.08em;
}
.page-privacy .privacy-hero__meta dd{
  margin:0;
  font-size:var(--text-sm);
  font-weight:600;
  color:var(--c-ink);
}

/* banner image */
.page-privacy .privacy-banner{
  margin-top:var(--sp-5);
}
.page-privacy .privacy-banner__img{
  display:block;
  width:100%;
  height:auto;
  object-fit:cover;
  border-radius:var(--radius-md);
  border:1px solid var(--c-gray-light);
  border-top:4px solid var(--c-gold);
  box-shadow:var(--shadow-sm);
}

/* two-column layout */
.page-privacy .privacy-layout{
  display:grid;
  grid-template-columns:1fr;
  gap:var(--sp-6);
  padding-top:var(--sp-6);
}

/* TOC */
.page-privacy .privacy-toc__inner{
  background:var(--c-white);
  border:1px solid var(--c-gray-light);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-sm);
  padding:var(--sp-5);
}
.page-privacy .privacy-toc__label{
  display:inline-block;
  font-family:var(--font-mono);
  font-size:var(--text-xs);
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--c-primary);
  margin:0 0 var(--sp-4);
  padding-bottom:var(--sp-2);
  border-bottom:2px solid var(--c-gold);
}
.page-privacy .privacy-toc__list{
  list-style:none;
  margin:0 0 var(--sp-5);
  padding:0;
  display:grid;
  grid-template-columns:1fr;
  gap:var(--sp-2);
}
.page-privacy .privacy-toc__link{
  display:flex;
  align-items:baseline;
  gap:var(--sp-2);
  padding:var(--sp-3);
  border:1px solid var(--c-gray-light);
  border-radius:var(--radius-sm);
  text-decoration:none;
  color:var(--c-ink);
  font-size:var(--text-sm);
  font-weight:600;
  line-height:1.4;
  transition:border-color var(--dur-fast) var(--ease), background-color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);
}
.page-privacy .privacy-toc__link:hover,
.page-privacy .privacy-toc__link:focus-visible{
  border-color:var(--c-gold-deep);
  background:var(--c-gold-soft);
  color:var(--c-primary);
  transform:translateX(2px);
}
.page-privacy .privacy-toc__link:focus-visible{
  outline:2px solid var(--c-gold-deep);
  outline-offset:2px;
}
.page-privacy .privacy-toc__idx{
  font-family:var(--font-mono);
  font-size:var(--text-xs);
  color:var(--c-gold-deep);
  flex-shrink:0;
}
.page-privacy .privacy-toc__related{
  border-top:1px dashed var(--c-gray-light);
  padding-top:var(--sp-4);
  display:grid;
  gap:var(--sp-2);
}
.page-privacy .privacy-toc__related-title{
  font-family:var(--font-mono);
  font-size:var(--text-xs);
  color:var(--c-gray);
  margin:0 0 var(--sp-1);
}
.page-privacy .privacy-toc__rel-link{
  font-size:var(--text-sm);
  color:var(--c-primary);
  text-decoration:none;
  border-bottom:1px solid transparent;
  transition:border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
  width:fit-content;
}
.page-privacy .privacy-toc__rel-link:hover,
.page-privacy .privacy-toc__rel-link:focus-visible{
  border-bottom-color:var(--c-gold-deep);
  color:var(--c-gold-deep);
}
.page-privacy .privacy-toc__rel-link:focus-visible{
  outline:2px solid var(--c-gold-deep);
  outline-offset:2px;
}

/* long-form content column */
.page-privacy .privacy-content{
  display:grid;
  gap:var(--sp-6);
  font-size:17px;
  line-height:1.85;
  color:var(--c-gray);
  min-width:0;
}
.page-privacy .privacy-section{
  scroll-margin-top:120px;
}
.page-privacy .privacy-section__head{
  display:flex;
  align-items:flex-start;
  gap:var(--sp-4);
  margin-bottom:var(--sp-5);
  padding-bottom:var(--sp-4);
  border-bottom:1px solid var(--c-gray-light);
}
.page-privacy .privacy-section__num{
  font-family:var(--font-mono);
  font-size:40px;
  font-weight:700;
  line-height:1;
  color:var(--c-gray-light);
  flex-shrink:0;
  width:52px;
  transition:color var(--dur-mid) var(--ease);
}
.page-privacy .privacy-section:hover .privacy-section__num{
  color:var(--c-gold);
}
.page-privacy .privacy-section__heading h2{
  font-family:var(--font-display);
  font-size:var(--text-xl);
  line-height:var(--lh-heading);
  color:var(--c-primary);
  margin:0 0 var(--sp-2);
}
.page-privacy .privacy-section__heading p{
  margin:0;
  color:var(--c-gray);
}

/* card grid */
.page-privacy .privacy-card-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:var(--sp-4);
}
.page-privacy .privacy-card{
  background:var(--c-white);
  border:1px solid var(--c-gray-light);
  border-radius:var(--radius-md);
  padding:var(--sp-5);
  box-shadow:var(--shadow-xs);
  transition:box-shadow var(--dur-mid) var(--ease), transform var(--dur-mid) var(--ease);
}
.page-privacy .privacy-card:hover{
  box-shadow:var(--shadow-md);
  transform:translateY(-2px);
}
.page-privacy .privacy-card h3{
  display:flex;
  align-items:center;
  gap:var(--sp-2);
  font-size:var(--text-md);
  color:var(--c-primary);
  margin:0 0 var(--sp-2);
}
.page-privacy .privacy-card__dot{
  display:inline-block;
  width:8px;
  height:8px;
  flex-shrink:0;
  background:var(--c-gold);
  transform:rotate(45deg);
}
.page-privacy .privacy-card p{
  margin:0;
}
.page-privacy .privacy-term{
  color:var(--c-primary);
  font-weight:600;
  border-bottom:1px dashed var(--c-gold-deep);
  cursor:help;
}

/* highlight note */
.page-privacy .privacy-note{
  display:block;
  margin-top:var(--sp-5);
  padding:var(--sp-4) var(--sp-5);
  background:var(--c-gold-soft);
  border-left:4px solid var(--c-gold-deep);
  border-radius:var(--radius-sm);
}
.page-privacy .privacy-note p{
  margin:0;
  color:var(--c-ink);
}
.page-privacy .privacy-note strong{
  color:var(--c-primary);
}
.page-privacy .privacy-note--contact .privacy-note__sub{
  margin-top:var(--sp-2);
  font-size:var(--text-sm);
  color:var(--c-gray);
}

/* usage list */
.page-privacy .privacy-usage{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:var(--sp-3);
  counter-reset:pv_usage;
}
.page-privacy .privacy-usage li{
  position:relative;
  padding:var(--sp-4) var(--sp-5) var(--sp-4) var(--sp-6);
  background:var(--c-white);
  border:1px solid var(--c-gray-light);
  border-left:4px solid var(--c-primary);
  border-radius:var(--radius-sm);
}
.page-privacy .privacy-usage li::before{
  counter-increment:pv_usage;
  content:counter(pv_usage, decimal-leading-zero);
  position:absolute;
  top:var(--sp-4);
  left:var(--sp-3);
  font-family:var(--font-mono);
  font-size:var(--text-xs);
  color:var(--c-gold-deep);
}
.page-privacy .privacy-usage h3{
  font-size:var(--text-md);
  color:var(--c-ink);
  margin:0 0 var(--sp-2);
}
.page-privacy .privacy-usage p{
  margin:0;
}

/* data flow SVG */
.page-privacy .privacy-flow-wrap{
  margin-top:var(--sp-5);
  padding:var(--sp-4) var(--sp-3);
  background:var(--c-white);
  border:1px solid var(--c-gray-light);
  border-radius:var(--radius-md);
  overflow-x:auto;
}
.page-privacy .privacy-flow{
  min-width:760px;
  width:100%;
  height:auto;
  display:block;
}
.page-privacy .privacy-flow__step rect{
  fill:var(--c-paper-light);
  stroke:var(--c-primary);
  stroke-width:1.5;
}
.page-privacy .privacy-flow__step--highlight rect{
  fill:var(--c-gold-soft);
  stroke:var(--c-gold-deep);
  stroke-width:2;
}
.page-privacy .privacy-flow text{
  font-family:var(--font-display);
  font-size:14px;
  font-weight:600;
  fill:var(--c-ink);
}
.page-privacy .privacy-flow__arrow line{
  stroke:var(--c-gold-deep);
  stroke-width:2;
  marker-end:url(#privacyFlowArrow);
}
.page-privacy .privacy-flow__sub text{
  font-family:var(--font-mono);
  font-size:11px;
  fill:var(--c-gray);
}
.page-privacy .privacy-flow-caption{
  margin:var(--sp-2) 0 0;
  font-family:var(--font-mono);
  font-size:var(--text-xs);
  color:var(--c-gray);
  text-align:center;
}

/* Q&A details */
.page-privacy .privacy-qna{
  margin-top:var(--sp-5);
  background:var(--c-white);
  border:1px solid var(--c-gray-light);
  border-radius:var(--radius-md);
  overflow:hidden;
}
.page-privacy .privacy-qna__item + .privacy-qna__item{
  border-top:1px solid var(--c-gray-light);
}
.page-privacy .privacy-qna__item summary{
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--sp-3);
  padding:var(--sp-4) var(--sp-5);
  font-weight:700;
  color:var(--c-ink);
  cursor:pointer;
  transition:background-color var(--dur-fast) var(--ease);
}
.page-privacy .privacy-qna__item summary::-webkit-details-marker{
  display:none;
}
.page-privacy .privacy-qna__item summary::after{
  content:"+";
  flex-shrink:0;
  font-family:var(--font-mono);
  font-size:22px;
  line-height:1;
  color:var(--c-gold-deep);
  transition:transform var(--dur-mid) var(--ease);
}
.page-privacy .privacy-qna__item[open] summary::after{
  transform:rotate(45deg);
}
.page-privacy .privacy-qna__item summary:hover,
.page-privacy .privacy-qna__item summary:focus-visible{
  background:var(--c-gold-soft);
}
.page-privacy .privacy-qna__item summary:focus-visible{
  outline:2px solid var(--c-gold-deep);
  outline-offset:-2px;
}
.page-privacy .privacy-qna__item p{
  margin:0;
  padding:0 var(--sp-5) var(--sp-4);
  color:var(--c-gray);
}

/* user rights */
.page-privacy .privacy-rights{
  display:grid;
  grid-template-columns:1fr;
  gap:var(--sp-3);
}
.page-privacy .privacy-right{
  display:flex;
  gap:var(--sp-4);
  align-items:flex-start;
  padding:var(--sp-4);
  background:var(--c-white);
  border:1px solid var(--c-gray-light);
  border-radius:var(--radius-sm);
}
.page-privacy .privacy-right__idx{
  flex-shrink:0;
  font-family:var(--font-mono);
  font-size:var(--text-xs);
  color:var(--c-primary);
  background:var(--c-primary-soft);
  border-radius:var(--radius-xs);
  padding:var(--sp-1) var(--sp-2);
}
.page-privacy .privacy-right h3{
  font-size:var(--text-md);
  color:var(--c-ink);
  margin:0 0 var(--sp-1);
}
.page-privacy .privacy-right p{
  margin:0;
}

/* policy update blocks */
.page-privacy .privacy-update{
  display:grid;
  grid-template-columns:1fr;
  gap:var(--sp-3);
}
.page-privacy .privacy-update__block{
  padding:var(--sp-5);
  background:var(--c-white);
  border:1px solid var(--c-gray-light);
  border-top:3px solid var(--c-primary);
  border-radius:var(--radius-sm);
}
.page-privacy .privacy-update__block:nth-child(2){
  border-top-color:var(--c-gold-deep);
}
.page-privacy .privacy-update__block:nth-child(3){
  border-top-color:var(--c-red);
}
.page-privacy .privacy-update__block h3{
  font-size:var(--text-md);
  color:var(--c-primary);
  margin:0 0 var(--sp-2);
  display:flex;
  align-items:center;
  gap:var(--sp-2);
  flex-wrap:wrap;
}
.page-privacy .privacy-update__block p{
  margin:0;
}

/* bottom CTA */
.page-privacy .privacy-cta{
  position:relative;
  display:grid;
  gap:var(--sp-5);
  padding:var(--sp-6);
  background:
    repeating-linear-gradient(135deg, rgba(249,211,66,0.06) 0 12px, transparent 12px 24px),
    var(--c-primary);
  border-radius:var(--radius-md);
  color:var(--c-white);
  overflow:hidden;
  margin-top:var(--sp-2);
}
.page-privacy .privacy-cta::before{
  content:"";
  position:absolute;
  right:-52px;
  top:-52px;
  width:180px;
  height:180px;
  border:2px solid rgba(249,211,66,0.35);
  border-radius:var(--radius-md);
  transform:rotate(45deg);
  pointer-events:none;
}
.page-privacy .privacy-cta__text{
  position:relative;
  z-index:1;
}
.page-privacy .privacy-cta h2{
  font-family:var(--font-display);
  font-size:var(--text-xl);
  margin:0 0 var(--sp-2);
}
.page-privacy .privacy-cta p{
  margin:0;
  color:rgba(255,255,255,0.88);
}
.page-privacy .privacy-cta__actions{
  position:relative;
  z-index:1;
  display:flex;
  flex-wrap:wrap;
  gap:var(--sp-3);
}
.page-privacy .btn--outline{
  border-color:var(--c-gold);
  color:var(--c-gold);
}
.page-privacy .btn--outline:hover,
.page-privacy .btn--outline:focus-visible{
  background:var(--c-gold);
  color:var(--c-primary-deep);
}

/* bottom version line */
.page-privacy .privacy-updated{
  margin:0;
  padding-top:var(--sp-4);
  border-top:1px dashed var(--c-gray-light);
  font-family:var(--font-mono);
  font-size:var(--text-xs);
  color:var(--c-gray);
  text-align:center;
}

/* medium screens */
@media (min-width:600px){
  .page-privacy .privacy-toc__list{
    grid-template-columns:1fr 1fr;
  }
}

/* tablet and up */
@media (min-width:768px){
  .page-privacy .privacy-hero__grid{
    grid-template-columns:1.5fr 1fr;
    align-items:center;
    gap:var(--sp-6);
  }
  .page-privacy .privacy-hero__meta-item{
    flex-direction:row;
    justify-content:space-between;
    align-items:baseline;
  }
  .page-privacy .privacy-hero__meta dd{
    text-align:right;
  }
  .page-privacy .privacy-card-grid{
    grid-template-columns:1fr 1fr;
  }
  .page-privacy .privacy-rights{
    grid-template-columns:1fr 1fr;
  }
  .page-privacy .privacy-update{
    grid-template-columns:repeat(3, 1fr);
  }
  .page-privacy .privacy-content{
    font-size:18px;
  }
}

/* desktop layout */
@media (min-width:1024px){
  .page-privacy .privacy-hero{
    padding:var(--sp-7) 0 var(--sp-7);
  }
  .page-privacy .privacy-hero h1{
    font-size:52px;
  }
  .page-privacy .privacy-banner{
    margin-top:var(--sp-6);
  }
  .page-privacy .privacy-layout{
    grid-template-columns:264px minmax(0,1fr);
    gap:var(--sp-7);
    align-items:start;
    padding-top:var(--sp-7);
  }
  .page-privacy .privacy-toc{
    position:sticky;
    top:132px;
  }
  .page-privacy .privacy-toc__list{
    grid-template-columns:1fr;
  }
  .page-privacy .privacy-section__num{
    font-size:52px;
    width:64px;
  }
  .page-privacy .privacy-content{
    gap:var(--sp-7);
  }
}
