/* ── Consent gate ────────────────────────────────────────────────────────────
   Styled to sit inside the site rather than on top of it: same cream, same
   ink, same orange, same Satoshi. A banner that looks bolted on gets dismissed
   without being read, which is the opposite of informed consent.

   The two buttons are deliberately the same size, same weight and same
   prominence. Under the EDPB's 2023 guidance, making "reject" quieter than
   "accept" is a dark pattern and invalidates the consent it collects — so
   "Accept all" gets colour, but not extra size or a lonelier neighbour.
─────────────────────────────────────────────────────────────────────────── */

.ycg,
.ycg * { box-sizing: border-box; }

.ycg {
  position: fixed;
  inset: auto 0 0 0;
  z-index: 2147483000;      /* above anything the page or an embed can raise */
  display: flex;
  justify-content: center;
  padding: 16px;
  font-family: Satoshi, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
}
.ycg[hidden] { display: none; }

.ycg-panel {
  width: min(880px, 100%);
  background: #fffdfa;
  border: 1px solid #e4ded2;
  border-radius: 16px;
  box-shadow:
    0 1px 2px rgba(20, 20, 20, 0.05),
    0 16px 48px -12px rgba(20, 20, 20, 0.28);
  padding: 24px;
  animation: ycg-in 240ms cubic-bezier(0.16, 1, 0.3, 1) both;
}
@keyframes ycg-in {
  from { opacity: 0; transform: translate3d(0, 14px, 0); }
  to   { opacity: 1; transform: none; }
}

.ycg-eyebrow {
  margin: 0;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #b94826;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}
.ycg-title {
  margin: 10px 0 0;
  font-size: 19px;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: #141414;
}
.ycg-body {
  margin: 8px 0 0;
  font-size: 14px;
  line-height: 1.6;
  color: #56545c;
  max-width: 68ch;
}
.ycg-body a {
  color: #141414;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: #ff7a52;
}

/* choices */
.ycg-opts {
  margin: 18px 0 0;
  display: grid;
  gap: 10px;
}
.ycg-opt {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 12px 14px;
  border: 1px solid #ece7dd;
  border-radius: 10px;
  background: #faf8f4;
  cursor: pointer;
}
.ycg-opt input { margin: 2px 0 0; accent-color: #ff7a52; width: 16px; height: 16px; flex: 0 0 auto; }
.ycg-opt input:disabled { opacity: 0.55; }
.ycg-opt-t { display: block; margin: 0; font-size: 13.5px; font-weight: 600; color: #141414; }
.ycg-opt-d { display: block; margin: 3px 0 0; font-size: 12.5px; line-height: 1.55; color: #6f6d75; }

.ycg-actions {
  margin: 18px 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.ycg-btn {
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  min-height: 46px;
  padding: 0 22px;
  border-radius: 999px;
  cursor: pointer;
  transition: transform 130ms ease-out, background-color 140ms ease-out, color 140ms ease-out;
}
.ycg-btn:active { transform: translateY(0) scale(0.985); }
.ycg-btn:focus-visible { outline: 2px solid #141414; outline-offset: 3px; }

/* Same footprint for both. Only the fill differs. */
.ycg-accept {
  background: #ff7a52;
  color: #141414;
  border: 1px solid #ff7a52;
}
.ycg-accept:hover { background: #ff8a67; transform: translateY(-1px); }

.ycg-reject {
  background: #fffdfa;
  color: #141414;
  border: 1px solid #141414;
}
.ycg-reject:hover { background: #141414; color: #fff; transform: translateY(-1px); }

.ycg-save {
  background: transparent;
  color: #56545c;
  border: 1px solid #ded9cf;
}
.ycg-save:hover { color: #141414; border-color: #141414; }

.ycg-more {
  margin-left: auto;
  align-self: center;
  font-size: 13px;
  color: #6f6d75;
  background: none;
  border: 0;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.ycg-more:hover { color: #141414; }

/* The persistent re-open control, so consent can be withdrawn as easily as it
   was given — Art. 7(3). Without this the only way to change your mind is to
   clear browser storage, which is not "as easy". */
.ycg-fab {
  position: fixed;
  left: 16px;
  bottom: 16px;
  z-index: 2147482000;
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #fffdfa;
  border: 1px solid #e4ded2;
  box-shadow: 0 2px 10px rgba(20, 20, 20, 0.12);
  cursor: pointer;
  transition: transform 130ms ease-out;
}
.ycg-fab[hidden] { display: none; }
.ycg-fab:hover { transform: scale(1.06); }
.ycg-fab:focus-visible { outline: 2px solid #141414; outline-offset: 3px; }
.ycg-fab svg { width: 18px; height: 18px; color: #56545c; }

@media (max-width: 560px) {
  .ycg { padding: 10px; }
  .ycg-panel { padding: 20px 18px; border-radius: 14px; }
  .ycg-actions > .ycg-btn { flex: 1 1 100%; }
  .ycg-more { margin: 4px auto 0; }
}

@media (prefers-reduced-motion: reduce) {
  .ycg-panel { animation: none; }
  .ycg-btn, .ycg-fab { transition: none; }
  .ycg-btn:hover, .ycg-fab:hover { transform: none; }
}

/* Your Legacy University identity — engineered, modular and ownable. */
.brand {
  min-width: min(244px, 100%);
}

.brand > .brand-mark,
.brand > .brand-name {
  display: none !important;
}

.brand::before {
  content: "";
  display: block;
  width: clamp(190px, 18vw, 244px);
  max-width: 100%;
  aspect-ratio: 410 / 64;
  background: url("/assets/your-legacy-university-wordmark.svg") center / contain no-repeat;
}

.footer-brand .brand::before,
.legal-footer .brand::before {
  background-image: url("/assets/your-legacy-university-wordmark-light.svg");
}

@media (max-width: 520px) {
  .brand { min-width: min(205px, 100%); }
  .brand::before { width: min(205px, 64vw); }
}
