/* Cookie policy page composition; shared shell markup remains owned by the homepage. */
:root {
  --policy-ink: #28134e;
  --policy-purple: #7430ea;
  --policy-purple-deep: #4c1c9d;
  --policy-paper: #f8f4ff;
  --policy-white: #fff;
  --policy-muted: #655b73;
  --policy-line: #e4dced;
}

html { scroll-behavior: smooth; }
body { color: var(--policy-ink); background: #fff; font-family: Inter, "Inter Tight", Arial, sans-serif; }

/* The copied hero/header becomes a compact, opaque helper-page masthead. */
body > header[data-homepage-region="01-hero-with-integrated-header"] {
  position: relative;
  z-index: 2;
  min-height: 0;
  color: var(--policy-white);
  background: var(--policy-ink);
}
body > header[data-homepage-region="01-hero-with-integrated-header"] .gcu-content {
  min-height: 0;
  padding: 0 clamp(1rem, 3.5vw, 3.5rem);
  background: var(--policy-ink);
}
body > header[data-homepage-region="01-hero-with-integrated-header"] .gcu-header {
  min-height: 116px;
  margin: 0 auto;
  border-bottom-color: rgba(248,244,255,.3);
  background: #28134e;
  backdrop-filter: none;
}
body > header[data-homepage-region="01-hero-with-integrated-header"] .gcu-brand { min-height: 114px; background: #321b58; }
body > header[data-homepage-region="01-hero-with-integrated-header"] .gcu-brand img { max-height: 112px; }
body > header[data-homepage-region="01-hero-with-integrated-header"] .gcu-search { background: #321b58; }
body > header[data-homepage-region="01-hero-with-integrated-header"] .gcu-navigation a { background: #28134e; }
body > header[data-homepage-region="01-hero-with-integrated-header"] .gcu-search button { background-color: #7430ea; color: #fff; }
body > header[data-homepage-region="01-hero-with-integrated-header"] .gcu-secondary-art,
body > header[data-homepage-region="01-hero-with-integrated-header"] .gcu-hero-copy { display: none; }
.gc-footer__settings { background-color: #7430ea; color: #fff; }

.cookie-policy {
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding: 0 clamp(1rem, 5.4vw, 5.5rem) 5.5rem;
  color: var(--policy-ink);
  font-size: 1rem;
  line-height: 1.7;
}
.cookie-policy * { box-sizing: border-box; }
.cookie-policy a { color: var(--policy-purple-deep); text-decoration-thickness: .08em; text-underline-offset: .18em; }
.cookie-policy a:hover { color: var(--policy-purple); }
.cookie-policy a:focus-visible { outline: 3px solid #bd9cff; outline-offset: 4px; }
.cookie-policy p { margin: 0; }
.policy-section { position: relative; padding: clamp(2.5rem, 5vw, 4.6rem) 0; border-bottom: 1px solid var(--policy-line); }
.policy-storage,.policy-choice,.policy-matrix,.policy-effects,.policy-manage,.policy-panel,.policy-reopen,.policy-persistence,.policy-controls,.policy-boundaries,.policy-guidance,.policy-privacy { scroll-margin-top: 1rem; }
.cookie-policy .cookie-note { text-wrap: pretty; }
.policy-hero { padding-block: clamp(4.2rem, 8vw, 7.2rem) clamp(3.6rem, 7vw, 6rem); }
.policy-hero::after { position: absolute; right: clamp(0rem, 4vw, 4rem); bottom: 3rem; width: clamp(6rem, 15vw, 13rem); aspect-ratio: 1; border: 1px solid #e7dcf5; border-radius: 50%; content: ""; box-shadow: 0 0 0 1.4rem rgba(116,48,234,.035), 0 0 0 2.8rem rgba(116,48,234,.025); pointer-events: none; }
.policy-hero__inner { position: relative; z-index: 1; max-width: 850px; }
.policy-eyebrow { color: var(--policy-purple-deep); font-size: .75rem; font-weight: 800; letter-spacing: .16em; line-height: 1.4; }
.policy-hero .policy-eyebrow { margin-bottom: 1.15rem; }
.policy-hero h1 { max-width: 780px; margin: 0; color: var(--policy-ink); font-size: clamp(3rem, 8vw, 6.4rem); font-weight: 850; letter-spacing: -.065em; line-height: .98; }
.policy-lede { max-width: 690px; margin-top: 1.6rem !important; color: #51465f; font-size: clamp(1.15rem, 2vw, 1.42rem); line-height: 1.55; }
.policy-updated { margin-top: 1.4rem !important; color: var(--policy-muted); font-size: .88rem; }
.policy-section__heading { display: grid; grid-template-columns: 3.4rem minmax(0,1fr); gap: clamp(1rem, 2.4vw, 2rem); align-items: start; margin-bottom: 1.8rem; }
.policy-section__heading .policy-eyebrow { margin: .25rem 0 .55rem; }
.policy-section__heading h2 { max-width: 760px; margin: 0; color: var(--policy-ink); font-size: clamp(1.8rem, 3.3vw, 2.8rem); font-weight: 780; letter-spacing: -.045em; line-height: 1.12; }
.policy-number { display: grid; width: 2.75rem; height: 2.75rem; place-items: center; border: 1px solid #d9c8f4; border-radius: 50%; color: var(--policy-purple-deep); font-size: .78rem; font-weight: 800; }
.policy-copy { max-width: 840px; color: #51465f; font-size: 1.04rem; }
.policy-copy + .policy-copy { margin-top: 1rem; }
.policy-intro { display: grid; grid-template-columns: minmax(240px,.8fr) minmax(0,1.2fr); gap: 2rem; }
.policy-intro .policy-section__heading { margin: 0; }
.policy-intro .policy-copy { max-width: 650px; }
.storage-card { display: grid; grid-template-columns: 3rem minmax(0,1fr) auto; gap: 1.25rem; align-items: center; padding: 1.5rem; border: 1px solid #dfd2f0; border-radius: 1rem; background: #fbf9ff; }
.storage-card__mark { display: grid; width: 2.65rem; height: 2.65rem; place-items: center; border-radius: 50%; background: var(--policy-purple); color: #fff; font-size: 1.2rem; font-weight: 800; }
.storage-card h3,.effect-card h3,.decision-path h3,.persistence-item h3 { margin: 0 0 .35rem; color: var(--policy-ink); font-size: 1.12rem; line-height: 1.3; }
.storage-card p,.policy-note { color: var(--policy-muted); font-size: .95rem; }
.storage-card__status { padding: .45rem .8rem; border-radius: 999px; background: #eee5fb; color: #4c1c9d; font-size: .76rem; font-weight: 800; white-space: nowrap; }
.policy-note { max-width: 860px; margin-top: 1.2rem !important; }
.policy-choice .policy-copy { max-width: 790px; }
.choice-band { display: flex; align-items: center; gap: 1.1rem; max-width: 900px; margin-top: 1.5rem; padding: 1.25rem 1.5rem; border-radius: .85rem; background: var(--policy-ink); color: #fff; }
.choice-band p { flex: 1; color: #f8f4ff; line-height: 1.55; }
.choice-band__indicator { flex: 0 0 1.15rem; width: 1.15rem; height: 1.15rem; border: 2px solid #c1a2f6; border-radius: 50%; }
.choice-band__owner { padding: .45rem .75rem; border: 1px solid rgba(255,255,255,.35); border-radius: 2rem; color: #fff; font-size: .8rem; font-weight: 700; white-space: nowrap; }
.policy-table-wrap { overflow-x: auto; border: 1px solid var(--policy-line); border-radius: .85rem; }
.policy-table { width: 100%; border-collapse: collapse; text-align: left; }
.policy-table th,.policy-table td { padding: 1rem 1.15rem; border-bottom: 1px solid var(--policy-line); vertical-align: top; }
.policy-table thead { background: #f2ecfa; }
.policy-table th { color: var(--policy-ink); font-size: .88rem; font-weight: 800; }
.policy-table td { color: #51465f; }
.policy-table tbody tr:last-child > * { border-bottom: 0; }
.effect-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.1rem; }
.effect-card { min-height: 100%; padding: 1.65rem; border: 1px solid var(--policy-line); border-radius: .9rem; background: #fff; }
.effect-card--accept { border-top: 4px solid var(--policy-purple); }
.effect-card--reject { border-top: 4px solid #655b73; }
.effect-card__label { margin-bottom: 1rem !important; color: var(--policy-purple-deep); font-size: .76rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.effect-card p:last-child { color: var(--policy-muted); }
.decision-path { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.2rem; padding: 0; margin: 0; list-style: none; }
.decision-path li { display: flex; gap: .9rem; padding: 1.2rem; border-radius: .85rem; background: #f8f5fc; }
.decision-path li > span { display: grid; flex: 0 0 2rem; width: 2rem; height: 2rem; place-items: center; border-radius: 50%; background: var(--policy-purple); color: #fff; font-size: .8rem; font-weight: 800; }
.decision-path p { color: var(--policy-muted); font-size: .92rem; }
.panel-preview { max-width: 700px; overflow: hidden; border: 1px solid #d9cbea; border-radius: 1rem; background: #fff; box-shadow: 0 1rem 2.5rem rgba(40,19,78,.08); }
.panel-preview__top,.panel-preview__row { display: flex; align-items: center; gap: .9rem; padding: 1rem 1.25rem; }
.panel-preview__top { background: var(--policy-ink); color: #fff; font-size: .9rem; font-weight: 700; }
.panel-preview__dot { width: .55rem; height: .55rem; border-radius: 50%; background: #b99af1; }
.panel-preview__state { margin-left: auto; color: #e4d7f8; font-size: .76rem; font-weight: 500; }
.panel-preview__row { justify-content: space-between; border-top: 1px solid var(--policy-line); }
.panel-preview__row strong,.panel-preview__row small { display: block; }
.panel-preview__row small { margin-top: .18rem; color: var(--policy-muted); font-size: .78rem; }
.switch { display: flex; width: 2.8rem; height: 1.55rem; align-items: center; padding: .15rem; border-radius: 99px; background: #e2dbe9; }
.switch i { display: block; width: 1.25rem; height: 1.25rem; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.18); }
.switch--locked { justify-content: flex-end; background: var(--policy-purple); }
.policy-link { display: inline-flex; gap: .65rem; align-items: center; margin-top: 1.3rem; font-weight: 750; }
.persistence-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.persistence-item { padding: 1.4rem; border: 1px solid var(--policy-line); border-radius: .9rem; }
.persistence-item__icon { display: inline-grid; width: 2.2rem; height: 2.2rem; place-items: center; margin-bottom: 1rem; border-radius: .6rem; background: #eee5fb; color: var(--policy-purple-deep); font-size: .68rem; font-weight: 850; }
.persistence-item p { color: var(--policy-muted); font-size: .94rem; }
.control-list { padding: 0; margin: 0; list-style: none; border-top: 1px solid var(--policy-line); }
.control-list li { display: grid; grid-template-columns: minmax(190px,.7fr) minmax(0,1.3fr); gap: 1rem; padding: .9rem .2rem; border-bottom: 1px solid var(--policy-line); color: var(--policy-muted); }
.control-key { color: var(--policy-ink); font-weight: 750; }
.policy-boundaries { background: linear-gradient(90deg,#fbf9ff,rgba(251,249,255,0)); }
.policy-boundaries .policy-copy { max-width: 850px; }
.policy-boundaries .policy-note { padding-left: 1rem; border-left: 3px solid #b795ef; }
.policy-guidance { display: grid; grid-template-columns: minmax(250px,.8fr) minmax(0,1.2fr); gap: 2rem; }
.policy-guidance .policy-section__heading { margin: 0; }
.policy-privacy { padding-bottom: 3.5rem; border-bottom: 0; }
.policy-contact-link { display: inline-flex; gap: .7rem; align-items: center; margin-top: 1.35rem; padding: .85rem 1.1rem; border: 1px solid var(--policy-purple); border-radius: .45rem; background-color: var(--policy-purple); color: #fff !important; font-weight: 750; text-decoration: none !important; }
.policy-contact-link:hover { background-color: var(--policy-purple-deep); }

@media (max-width: 900px) {
  body > header[data-homepage-region="01-hero-with-integrated-header"] .gcu-header { min-height: 96px; }
  body > header[data-homepage-region="01-hero-with-integrated-header"] .gcu-brand { min-height: 94px; }
  .policy-intro,.policy-guidance { grid-template-columns: 1fr; gap: 1.2rem; }
  .policy-intro .policy-section__heading,.policy-guidance .policy-section__heading { margin-bottom: 0; }
  .decision-path { grid-template-columns: 1fr; }
  .policy-hero::after { right: 1rem; opacity: .55; }
}
@media (max-width: 640px) {
  body > header[data-homepage-region="01-hero-with-integrated-header"] .gcu-content { padding-inline: .75rem; }
  body > header[data-homepage-region="01-hero-with-integrated-header"] .gcu-header { min-height: 76px; flex-wrap: wrap; }
  body > header[data-homepage-region="01-hero-with-integrated-header"] .gcu-brand { flex-basis: 125px; min-height: 74px; }
  body > header[data-homepage-region="01-hero-with-integrated-header"] .gcu-brand img { max-height: 72px; }
  body > header[data-homepage-region="01-hero-with-integrated-header"] .gcu-phone { display: none; }
  body > header[data-homepage-region="01-hero-with-integrated-header"] .gcu-nav-toggle { display: flex; margin-left: auto; align-self: center; }
  .cookie-policy { padding-inline: 1rem; padding-bottom: 3rem; }
  .policy-hero { padding-top: 3.2rem; }
  .policy-hero::after { right: .4rem; bottom: 2rem; width: 5.5rem; }
  .policy-hero h1 { font-size: clamp(2.8rem, 15vw, 4.2rem); }
  .policy-section { padding-block: 2.7rem; }
  .policy-section__heading { grid-template-columns: 2.5rem minmax(0,1fr); gap: .8rem; }
  .policy-number { width: 2.25rem; height: 2.25rem; }
  .storage-card { grid-template-columns: 2.5rem minmax(0,1fr); gap: .8rem; padding: 1rem; }
  .storage-card__status { grid-column: 2; justify-self: start; }
  .choice-band { align-items: flex-start; flex-wrap: wrap; padding: 1rem; }
  .choice-band p { min-width: calc(100% - 3rem); }
  .choice-band__owner { margin-left: 2.2rem; }
  .effect-grid,.persistence-grid { grid-template-columns: 1fr; }
  .policy-table { display: block; width: 100%; min-width: 0; }
  .policy-table thead { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
  .policy-table tbody { display: grid; gap: .75rem; }
  .policy-table tr { display: grid; grid-template-columns: minmax(0, 1fr); padding: .45rem .8rem; border: 1px solid var(--policy-line); border-radius: .75rem; background: #fff; }
  .policy-table th[scope="row"], .policy-table td { display: grid; grid-template-columns: minmax(7rem, .8fr) minmax(0, 1.2fr); gap: .75rem; padding: .65rem 0; border-bottom: 1px solid var(--policy-line); }
  .policy-table tr > :last-child { border-bottom: 0; }
  .policy-table th[scope="row"]::before { content: "Category"; }
  .policy-table td:nth-child(2)::before { content: "Choice"; }
  .policy-table td:nth-child(3)::before { content: "What it means"; }
  .policy-table th[scope="row"]::before, .policy-table td::before { color: var(--policy-muted); font-size: .8rem; font-weight: 750; }
  .panel-preview__row,.panel-preview__top { padding-inline: .85rem; }
  .control-list li { grid-template-columns: 1fr; gap: .2rem; }
  .policy-copy { font-size: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,*::before,*::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
