/* Privacy: a readable notice with a clear distinction between current features
   and the prepared Directory terms. Shared layout comes from academic-pages.css. */

.privacy-title-accent { color: var(--color-brand-text); }
.privacy-page .academic-hero__copy > .privacy-updated {
  margin-top: 19px;
  font-size: .75rem;
  line-height: 1.6;
}
.privacy-updated time { color: var(--text-heading); font-weight: 600; }
.privacy-overview h2 { font-size: clamp(1.7rem, 2.5vw, 2.2rem); line-height: 1.16; }
.privacy-overview-list { display: grid; gap: 17px; margin: 24px 0; padding: 0; list-style: none; }
.privacy-overview-list li { display: flex; gap: 12px; align-items: flex-start; font-size: .86rem; line-height: 1.65; }
.privacy-overview-list .icon { flex: none; width: 19px; height: 19px; margin-top: 2px; color: #f0a184; }
.privacy-overview-note { margin: 0; padding-top: 19px; border-top: 1px solid rgb(255 255 255 / .2); font-size: .77rem; line-height: 1.7; }

.privacy-section { font-size: .9rem; line-height: 1.8; }
.privacy-section > p { margin: 22px 0; }
.privacy-section > :last-child { margin-bottom: 0; }
.privacy-section h3 { font-size: 1rem; line-height: 1.5; margin: 0 0 10px; }
.privacy-section strong { color: var(--text-heading); font-weight: 650; }
.privacy-section a { overflow-wrap: anywhere; }
.privacy-section :is(dl, dd) { margin: 0; }
.privacy-data-list { margin-top: 28px !important; }
.privacy-data-list > div,
.privacy-service-list > div {
  display: grid;
  grid-template-columns: minmax(125px, .75fr) minmax(0, 2.3fr);
  gap: 22px;
  padding: 22px 0;
  border-top: 1px solid var(--border-default);
}
.privacy-data-list dt { color: var(--text-heading); font-weight: 650; }
.privacy-data-list dd { min-width: 0; }
.privacy-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 25px 0; }
.privacy-note { min-width: 0; padding: 20px; border: 1px solid var(--border-default); border-radius: 12px; background: var(--surface-warm); }
.privacy-note h3 { font-size: .94rem; }
.privacy-note p { margin: 0; font-size: .82rem; line-height: 1.8; color: var(--text-secondary); }
.privacy-note p + p { margin-top: 13px; }
.privacy-note--wide { margin-top: 24px; }

.privacy-explainer { margin-top: 25px; border: 1px solid var(--color-primary-border); border-radius: 12px; background: var(--surface-card); }
.privacy-explainer > summary,
.privacy-term > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 58px;
  padding: 16px 20px;
  list-style: none;
  cursor: pointer;
  color: var(--text-heading);
  font-weight: 650;
  line-height: 1.55;
}
.privacy-explainer > summary::-webkit-details-marker,
.privacy-term > summary::-webkit-details-marker { display: none; }
.privacy-explainer > summary::after,
.privacy-term > summary::after { content: "+"; flex: none; width: 22px; color: var(--color-link); text-align: center; font-size: 1.25rem; font-weight: 400; }
.privacy-explainer[open] > summary::after,
.privacy-term[open] > summary::after { content: "−"; }
.privacy-explainer > div { padding: 0 20px 20px; }
.privacy-explainer p { margin: 0 0 15px; font-size: .84rem; }
.privacy-inline-links { display: flex; flex-wrap: wrap; gap: 5px 18px; }
.privacy-inline-links a { display: inline-flex; align-items: center; min-height: 44px; font-size: .79rem; font-weight: 600; }

.privacy-service-list { margin-top: 25px !important; }
.privacy-service-list dt { display: flex; flex-direction: column; gap: 5px; }
.privacy-service-name { color: var(--text-heading); font-weight: 650; }
.privacy-service-when { color: var(--text-secondary); font-size: .71rem; line-height: 1.65; }
.privacy-service-list dd { min-width: 0; font-size: .86rem; }
.privacy-domain { overflow-wrap: anywhere; }
.privacy-policy-link { display: block; width: fit-content; max-width: 100%; margin-top: 8px; font-size: .6875rem; line-height: 1.6; }
.privacy-message-flow { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: 28px 0; }
.privacy-message-flow > div { min-width: 0; padding-top: 17px; border-top: 2px solid var(--color-primary-border); }
.privacy-message-flow > div:first-child { border-color: var(--color-brand); }
.privacy-message-flow > div > span { display: inline-block; margin-bottom: 13px; color: var(--color-brand-text); font-size: .69rem; font-weight: 700; }
.privacy-message-flow h3 { font-size: .95rem; }
.privacy-message-flow p { margin: 0; color: var(--text-secondary); font-size: .82rem; line-height: 1.75; }
.privacy-gentle-tip { padding: 14px 18px; border-left: 2px solid var(--color-primary-border); background: var(--surface-warm); color: var(--text-secondary); font-size: .82rem; }

.privacy-current { margin-top: 25px; padding: 21px 24px; border: 1px solid var(--border-default); border-left: 3px solid var(--color-accent); border-radius: 12px; background: var(--surface-warm); }
.privacy-current > strong { display: block; margin-bottom: 8px; font-size: 1rem; }
.privacy-current p { margin: 0; font-size: .86rem; }
.privacy-terms-toolbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin: 24px 0 15px; }
.privacy-terms-toolbar > span { color: var(--text-secondary); font-size: .72rem; }
.privacy-terms-toolbar .button { font-size: .74rem; }
.privacy-terms { display: grid; gap: 10px; }
.privacy-term { min-width: 0; border: 1px solid var(--border-default); border-radius: 11px; background: var(--surface-card); scroll-margin-top: calc(var(--academic-header-height) + var(--academic-nav-height) + 20px); }
.privacy-term[open] { border-color: var(--color-primary-border); }
.privacy-term > summary:hover { background: var(--surface-warm); border-radius: 11px; }
.privacy-term[open] > summary { border-bottom: 1px solid var(--border-default); }
.privacy-term__body { padding: 21px 23px; font-size: .84rem; line-height: 1.85; }
.privacy-term__body > h3 { margin: 28px 0 12px; font-size: .96rem; }
.privacy-term__body > h3:first-child { margin-top: 0; }
.privacy-term__body p { margin: 0 0 16px; }
.privacy-term__body > :last-child { margin-bottom: 0; }
.privacy-term__body ul { margin: 12px 0 20px; padding-left: 21px; }
.privacy-term__body li { margin: 10px 0; }
.privacy-term__body li::marker { color: var(--color-brand-text); }

.privacy-provenance { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 25px 0; }
.privacy-provenance > div { min-width: 0; padding: 24px; border: 1px solid var(--border-default); border-top: 3px solid var(--color-brand); border-radius: 12px; background: var(--surface-warm); }
.privacy-provenance > div + div { border-top-color: var(--color-primary-border); }
.privacy-provenance-label { margin: 0 0 12px; color: var(--text-secondary); font-size: .67rem; font-weight: 650; letter-spacing: .07em; text-transform: uppercase; }
.privacy-provenance h3 { font-family: var(--font-serif); font-size: 1.5rem; font-weight: 600; }
.privacy-provenance p:not(.privacy-provenance-label) { font-size: .82rem; line-height: 1.85; }
.privacy-provenance a { display: inline-flex; align-items: center; gap: 7px; min-height: 44px; font-size: .76rem; font-weight: 600; }
.privacy-photo-note { display: flex; align-items: flex-start; gap: 16px; padding: 20px; border-radius: 12px; background: var(--color-primary-light); }
.privacy-photo-note > .icon { flex: none; margin-top: 3px; width: 22px; height: 22px; color: var(--color-link); }
.privacy-photo-note p { margin: 0; font-size: .84rem; }
.privacy-rights-list { margin: 23px 0; padding: 0; list-style: none; }
.privacy-rights-list li { display: grid; grid-template-columns: minmax(120px, .8fr) minmax(0, 1.8fr); gap: 24px; padding: 18px 0; border-bottom: 1px solid var(--border-default); }
.privacy-rights-list li:first-child { border-top: 1px solid var(--border-default); }
.privacy-rights-list strong { font-size: .84rem; }
.privacy-rights-list span { font-size: .84rem; }
.privacy-responsible { border-top: 3px solid var(--color-brand); }
.privacy-contact-address { display: inline-flex; gap: 13px; align-items: center; max-width: 100%; min-height: 44px; color: var(--color-link); font-size: clamp(.95rem, 1.6vw, 1.3rem); font-weight: 650; line-height: 1.5; }
.privacy-contact-address .icon { flex: none; width: 18px; height: 18px; }
.privacy-change-note { margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--border-default); }
.privacy-change-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 13px; }
.privacy-change-heading > strong { font-size: .76rem; }
.privacy-change-heading .button { font-size: .75rem; }
.privacy-change-note p { margin: 7px 0 0; color: var(--text-secondary); font-size: .79rem; line-height: 1.8; }

@media (max-width: 1080px) {
  .privacy-pair,
  .privacy-message-flow { grid-template-columns: 1fr; }
  .privacy-message-flow { gap: 18px; }
}

@media (max-width: 600px) {
  .privacy-data-list > div,
  .privacy-service-list > div,
  .privacy-rights-list li { grid-template-columns: 1fr; gap: 8px; }
  .privacy-service-list dt { gap: 1px; }
  .privacy-provenance { grid-template-columns: 1fr; }
  .privacy-section { font-size: .87rem; }
  .privacy-note,
  .privacy-provenance > div,
  .privacy-current { padding: 18px; }
  .privacy-term > summary,
  .privacy-explainer > summary { padding: 15px 16px; font-size: .82rem; }
  .privacy-term__body { padding: 17px 16px; }
  .privacy-terms-toolbar { align-items: flex-start; flex-direction: column; }
  .privacy-contact-address { display: block; font-size: .95rem; }
  .privacy-contact-address .icon { display: none; }
  .privacy-photo-note { padding: 17px; gap: 12px; }
}

@media print {
  .privacy-updated { color: #333 !important; }
  .privacy-terms-toolbar,
  #privacy-print,
  .privacy-inline-links { display: none; }
  .privacy-term,
  .privacy-explainer,
  .privacy-note,
  .privacy-current,
  .privacy-provenance > div,
  .privacy-photo-note { background: #fff !important; box-shadow: none; }
  .privacy-term { break-inside: auto; }
  .privacy-term > summary::after,
  .privacy-explainer > summary::after { display: none; }
  .privacy-policy-link { color: #333 !important; font-size: 8pt; }
  .privacy-provenance { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
