/* ==========================================================================
   Cookie consent: banner + preference centre.
   Uses the site's design tokens (style.css): sun gradient, Manrope / Instrument Serif / JetBrains Mono,
   pill buttons, glow, and the same easing as the rest of the site.
   ========================================================================== */

/* ---------- banner ---------- */
.ck-banner {
  position: fixed; z-index: 1500; left: clamp(12px, 2vw, 28px); bottom: clamp(12px, 2vw, 28px);
  width: min(560px, calc(100vw - 24px));
  padding: 26px 26px 22px; border-radius: 28px; color: var(--on-dark, #E9EDF5);
  background: rgba(7, 12, 24, .92); -webkit-backdrop-filter: blur(22px) saturate(1.3); backdrop-filter: blur(22px) saturate(1.3);
  border: 1px solid rgba(255, 255, 255, .12);
  box-shadow: 0 50px 100px -30px rgba(0, 0, 0, .7), 0 1px 0 rgba(255, 255, 255, .1) inset;
  overflow: hidden; isolation: isolate;
  opacity: 0; transform: translateY(28px) scale(.97); pointer-events: none;
  transition: opacity .7s var(--ease-out, ease), transform .9s var(--ease-out, ease);
}
.ck-banner::before {
  content: ""; position: absolute; z-index: -1; width: 380px; height: 380px; right: -140px; top: -190px; border-radius: 50%;
  background: radial-gradient(circle, rgba(245, 122, 0, .38), transparent 65%);
  animation: ck-drift 14s ease-in-out infinite alternate;
}
.ck-banner::after { content: ""; position: absolute; inset: 0 0 auto 0; height: 3px; background: var(--grad-brand, linear-gradient(90deg, #F57A00, #F5B800 45%, #1A9AD6)); }
.ck-banner.is-open { opacity: 1; transform: none; pointer-events: auto; }
.ck-banner[hidden] { display: none; }
@keyframes ck-drift { to { transform: translate(-60px, 40px) scale(1.15); } }

.ck-badge { display: inline-flex; align-items: center; gap: 8px; font: 500 10.5px/1 var(--font-mono, monospace); letter-spacing: .16em; text-transform: uppercase; color: rgba(233, 237, 245, .7); }
.ck-badge i { width: 7px; height: 7px; border-radius: 50%; background: var(--grad-sun, #F57A00); box-shadow: 0 0 0 4px rgba(245, 122, 0, .2); }
.ck-title { margin: 14px 0 8px; font-size: clamp(1.45rem, 1.2rem + 1vw, 1.9rem); font-weight: 300; letter-spacing: -.04em; line-height: 1.1; color: #fff; }
.ck-title em { font-family: var(--font-serif, Georgia, serif); font-style: italic; font-weight: 400; font-size: 1.07em; background: var(--grad-sun, #F57A00); -webkit-background-clip: text; background-clip: text; color: transparent; padding-right: .05em; }
.ck-text { margin: 0 0 18px; font-size: 14px; line-height: 1.6; color: rgba(233, 237, 245, .72); }
.ck-text a { color: #fff; text-decoration: underline; text-decoration-color: rgba(245, 184, 0, .6); text-underline-offset: 3px; }
.ck-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.ck-link { margin-left: auto; padding: 8px 4px; background: none; border: 0; color: #fff; font-weight: 600; font-size: 14px; cursor: pointer; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .5s var(--ease-out, ease), color .3s; }
.ck-link:hover { background-size: 100% 1px; color: var(--accent, #F5B800); }

/* ---------- buttons (pill with circle-fill hover, as on the site) ---------- */
.ck-btn {
  --bg: #fff; --fg: var(--text, #0F1729); --fill: var(--grad-sun, linear-gradient(100deg, #F57A00, #F5B800)); --fill-fg: var(--text, #0F1729); --bd: transparent;
  position: relative; isolation: isolate; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 14px 22px; border-radius: 999px; border: 1px solid var(--bd); background: var(--bg); color: var(--fg);
  font: 600 14px/1 var(--font-sans, inherit); letter-spacing: -.01em; white-space: nowrap; cursor: pointer;
  transition: color .5s var(--ease-out, ease), border-color .5s, transform .5s var(--ease-out, ease);
}
.ck-btn::before { content: ""; position: absolute; inset: -1px; z-index: -1; background: var(--fill); clip-path: circle(0% at var(--mx, 50%) var(--my, 50%)); transition: clip-path .7s var(--ease-out, ease); }
.ck-btn:hover, .ck-btn:focus-visible { color: var(--fill-fg); transform: translateY(-2px); }
.ck-btn:hover::before, .ck-btn:focus-visible::before { clip-path: circle(150% at var(--mx, 50%) var(--my, 50%)); }
.ck-btn:active { transform: scale(.97); }
.ck-btn--ghost { --bg: rgba(255, 255, 255, .06); --fg: #fff; --fill: #fff; --fill-fg: var(--text, #0F1729); --bd: rgba(255, 255, 255, .24); }
.ck-btn--dark { --bg: var(--text, #0F1729); --fg: #fff; }
.ck-btn--outline { --bg: transparent; --fg: var(--text, #0F1729); --fill: var(--text, #0F1729); --fill-fg: #fff; --bd: var(--border-strong, rgba(15, 23, 41, .2)); }

/* ---------- preference centre ---------- */
.ck-modal { position: fixed; inset: 0; z-index: 2100; display: grid; place-items: center; padding: 18px; background: rgba(7, 12, 24, .6); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); opacity: 0; transition: opacity .45s var(--ease-out, ease); }
.ck-modal[hidden] { display: none; }
.ck-modal.is-open { opacity: 1; }
.ck-panel {
  position: relative; width: min(100%, 720px); max-height: calc(100vh - 36px); display: flex; flex-direction: column; overflow: hidden;
  border-radius: 32px; background: linear-gradient(180deg, #fff, var(--paper, #FCFAF7)); border: 1px solid var(--border, rgba(15, 23, 41, .1));
  box-shadow: 0 70px 140px -40px rgba(0, 0, 0, .65); transform: translateY(24px) scale(.98); transition: transform .8s var(--ease-out, ease);
}
.ck-modal.is-open .ck-panel { transform: none; }
.ck-panel::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 3px; background: var(--grad-brand, linear-gradient(90deg, #F57A00, #F5B800, #1A9AD6)); }
.ck-panel__head { padding: 30px clamp(22px, 4vw, 38px) 8px; position: relative; }
.ck-panel__head .ck-badge { color: var(--primary, #F57A00); }
.ck-panel__head h2 { margin: 14px 0 8px; font-size: clamp(1.7rem, 1.3rem + 1.4vw, 2.4rem); font-weight: 300; letter-spacing: -.045em; line-height: 1.06; }
.ck-panel__head h2 em { font-family: var(--font-serif, Georgia, serif); font-style: italic; font-weight: 400; font-size: 1.07em; background: var(--grad-sun, #F57A00); -webkit-background-clip: text; background-clip: text; color: transparent; padding-right: .05em; }
.ck-panel__head p { margin: 0; font-size: 14.5px; line-height: 1.6; color: var(--muted, #5D6677); max-width: 58ch; }
.ck-panel__head p a { text-decoration: underline; text-decoration-color: rgba(245, 122, 0, .5); text-underline-offset: 3px; color: var(--text, #0F1729); font-weight: 600; }
.ck-close { position: absolute; right: 18px; top: 20px; width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--border, rgba(15, 23, 41, .1)); background: #fff; display: grid; place-items: center; cursor: pointer; transition: transform .5s var(--ease-out, ease), background .3s, color .3s; }
.ck-close:hover { background: var(--text, #0F1729); color: #fff; transform: rotate(90deg); }
.ck-close svg { width: 15px; height: 15px; }
.ck-panel__body { padding: 14px clamp(22px, 4vw, 38px) 8px; overflow: auto; display: grid; gap: 12px; }
.ck-panel__foot { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; padding: 18px clamp(22px, 4vw, 38px) 24px; border-top: 1px solid var(--border, rgba(15, 23, 41, .1)); background: rgba(255, 255, 255, .7); }
.ck-panel__foot .ck-btn--save { margin-right: auto; }

.ck-cat { border: 1px solid var(--border, rgba(15, 23, 41, .1)); border-radius: 22px; background: #fff; padding: 18px 20px; transition: border-color .4s, box-shadow .5s var(--ease-out, ease); }
.ck-cat:hover { border-color: rgba(245, 122, 0, .35); box-shadow: 0 24px 40px -30px rgba(15, 23, 41, .35); }
.ck-cat__row { display: flex; align-items: center; gap: 16px; justify-content: space-between; }
.ck-cat__name { margin: 0; font-size: 1.02rem; font-weight: 600; letter-spacing: -.02em; }
.ck-cat__on { font: 500 10.5px/1 var(--font-mono, monospace); letter-spacing: .12em; text-transform: uppercase; color: #11703A; background: rgba(22, 163, 74, .12); padding: 7px 11px; border-radius: 999px; white-space: nowrap; }
.ck-cat__desc { margin: 8px 0 0; font-size: 14px; line-height: 1.6; color: var(--muted, #5D6677); }
.ck-cat__more { margin-top: 10px; padding: 0; border: 0; background: none; font: 600 13px/1 var(--font-sans, inherit); color: var(--primary, #F57A00); cursor: pointer; display: inline-flex; gap: 6px; align-items: center; }
.ck-cat__more svg { width: 14px; height: 14px; transition: transform .45s var(--ease-out, ease); }
.ck-cat__more[aria-expanded="true"] svg { transform: rotate(180deg); }
.ck-list { display: none; margin: 12px 0 0; padding: 0; list-style: none; gap: 8px; }
.ck-list.is-open { display: grid; }
.ck-list li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 14px; padding: 11px 14px; border-radius: 14px; background: rgba(15, 23, 41, .035); font-size: 13px; }
.ck-list b { font: 500 12px/1.5 var(--font-mono, monospace); color: var(--text, #0F1729); word-break: break-all; }
.ck-list span { color: var(--muted, #5D6677); }
.ck-list em { font-style: normal; font: 500 11px/1.5 var(--font-mono, monospace); text-align: right; color: var(--muted, #5D6677); white-space: nowrap; }
.ck-list li > span { grid-column: 1 / -1; }
.ck-none { margin: 12px 0 0; font-size: 13px; color: var(--muted, #5D6677); font-style: italic; }

/* switch */
.ck-switch { position: relative; flex: none; width: 52px; height: 30px; border-radius: 999px; border: 0; background: rgba(15, 23, 41, .16); cursor: pointer; transition: background .4s var(--ease-out, ease); }
.ck-switch::after { content: ""; position: absolute; left: 3px; top: 3px; width: 24px; height: 24px; border-radius: 50%; background: #fff; box-shadow: 0 4px 10px rgba(15, 23, 41, .3); transition: transform .5s var(--ease-out, ease); }
.ck-switch[aria-checked="true"] { background: var(--grad-sun, #F57A00); }
.ck-switch[aria-checked="true"]::after { transform: translateX(22px); }
.ck-switch:focus-visible { outline: 2px solid var(--primary, #F57A00); outline-offset: 3px; }

/* footer link that re-opens settings */
.ck-reopen { background: none; border: 0; padding: 0; font: inherit; color: inherit; cursor: pointer; }
.ck-reopen:hover { color: var(--primary, #F57A00); }

@media (max-width: 560px) {
  .ck-banner { left: 8px; right: 8px; bottom: 8px; width: auto; padding: 22px 20px 18px; border-radius: 24px; }
  .ck-actions .ck-btn { flex: 1 1 100%; justify-content: space-between; }
  .ck-link { margin: 0 auto; }
  .ck-panel__foot .ck-btn { flex: 1 1 100%; }
  .ck-panel__foot .ck-btn--save { margin-right: 0; }
  .ck-list li { grid-template-columns: 1fr; }
  .ck-list em { text-align: left; }
}
@media (prefers-reduced-motion: reduce) {
  .ck-banner, .ck-banner::before, .ck-modal, .ck-panel, .ck-switch::after { transition-duration: .01ms !important; animation: none !important; }
}

/* ---------- cookie policy page tables ---------- */
.ck-h3 { margin: 34px 0 12px !important; font-size: 1.1rem !important; font-weight: 600 !important; letter-spacing: -.02em; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.ck-tag { font: 500 10.5px/1 var(--font-mono, monospace); letter-spacing: .12em; text-transform: uppercase; color: var(--primary, #F57A00); background: rgba(245, 122, 0, .1); padding: 6px 10px; border-radius: 999px; }
.ck-table-wrap { overflow-x: auto; border: 1px solid var(--border, rgba(15, 23, 41, .1)); border-radius: 22px; background: #fff; }
.ck-table { width: 100%; border-collapse: collapse; font-size: 14px; min-width: 640px; }
.ck-table th { text-align: left; padding: 14px 18px; font: 500 10.5px/1 var(--font-mono, monospace); letter-spacing: .14em; text-transform: uppercase; color: var(--muted, #5D6677); border-bottom: 1px solid var(--border-strong, rgba(15, 23, 41, .18)); background: rgba(15, 23, 41, .025); }
.ck-table td { padding: 15px 18px; border-bottom: 1px solid var(--border, rgba(15, 23, 41, .1)); vertical-align: top; line-height: 1.55; }
.ck-table tr:last-child td { border-bottom: 0; }
.ck-table td:first-child { white-space: nowrap; }
.ck-table td:nth-child(3) { white-space: nowrap; color: var(--muted, #5D6677); }
.ck-table code { font-family: var(--font-mono, monospace); font-size: 12.5px; background: rgba(15, 23, 41, .06); padding: 3px 9px; border-radius: 999px; }
@media (max-width: 700px) {
  .ck-table { min-width: 0; }
  .ck-table thead { display: none; }
  .ck-table, .ck-table tbody, .ck-table tr, .ck-table td { display: block; width: 100%; }
  .ck-table tr { padding: 14px 16px; border-bottom: 1px solid var(--border, rgba(15, 23, 41, .1)); }
  .ck-table tr:last-child { border-bottom: 0; }
  .ck-table td { padding: 4px 0; border: 0; white-space: normal !important; }
  .ck-table td::before { content: attr(data-l); display: block; font: 500 10px/1.8 var(--font-mono, monospace); letter-spacing: .14em; text-transform: uppercase; color: var(--muted, #5D6677); }
}

/* ---------- cookie tables: override the generic .prose table rules (margins, zero left padding) ---------- */
.prose .ck-table-wrap { margin: 14px 0 28px; padding: 0; overflow-x: auto; border: 1px solid var(--border, rgba(15, 23, 41, .1)); border-radius: 22px; background: #fff; }
.prose .ck-table-wrap .ck-table { margin: 0; width: 100%; min-width: 680px; table-layout: fixed; border-collapse: collapse; font-size: 14px; }
.prose .ck-table-wrap .ck-table th,
.prose .ck-table-wrap .ck-table td { padding: 15px 20px; text-align: left; vertical-align: top; line-height: 1.55; white-space: normal; overflow-wrap: anywhere; }
.prose .ck-table-wrap .ck-table th { padding-top: 14px; padding-bottom: 14px; }
.prose .ck-table-wrap .ck-table td { color: var(--muted, #5D6677); border-bottom: 1px solid var(--border, rgba(15, 23, 41, .1)); }
.prose .ck-table-wrap .ck-table tr:last-child td { border-bottom: 0; }
.prose .ck-table-wrap .ck-table td:first-child { color: var(--text, #0F1729); font-weight: 500; padding-right: 20px; }
.prose .ck-table-wrap .ck-table th:nth-child(1) { width: 25%; }
.prose .ck-table-wrap .ck-table th:nth-child(2) { width: 16%; }
.prose .ck-table-wrap .ck-table th:nth-child(3) { width: 20%; }
.prose .ck-table-wrap .ck-table code { display: inline-block; max-width: 100%; overflow-wrap: anywhere; word-break: break-all; white-space: normal; line-height: 1.5; }
.prose .ck-table-wrap .ck-table td:first-child, .prose .ck-table-wrap .ck-table td:nth-child(3) { white-space: normal; }

@media (max-width: 700px) {
  .prose .ck-table-wrap .ck-table { min-width: 0; table-layout: auto; }
  .prose .ck-table-wrap .ck-table, .prose .ck-table-wrap .ck-table tbody, .prose .ck-table-wrap .ck-table tr, .prose .ck-table-wrap .ck-table td { display: block; width: 100%; }
  .prose .ck-table-wrap .ck-table thead { display: none; }
  .prose .ck-table-wrap .ck-table tr { padding: 14px 18px; border-bottom: 1px solid var(--border, rgba(15, 23, 41, .1)); }
  .prose .ck-table-wrap .ck-table tr:last-child { border-bottom: 0; }
  .prose .ck-table-wrap .ck-table td { padding: 5px 0; border: 0; }
  .prose .ck-table-wrap .ck-table td:first-child { padding-right: 0; }
}
.prose .ck-table-wrap .ck-table th:nth-child(1) { width: 30%; }
.prose .ck-table-wrap .ck-table th:nth-child(2) { width: 15%; }
.prose .ck-table-wrap .ck-table th:nth-child(3) { width: 19%; }
.prose .ck-table-wrap .ck-table code { word-break: normal; overflow-wrap: normal; white-space: nowrap; }

/* ---------- reCAPTCHA v3: the floating badge is hidden; the notice Google requires sits in the footer ---------- */
.grecaptcha-badge { visibility: hidden !important; }
.rc-note { display: inline-block; margin-top: 6px; font-size: 12px; line-height: 1.5; opacity: .75; }
.rc-note a { text-decoration: underline; text-underline-offset: 2px; }

/* ---------- booking popup: the agenda is fixed by the button that was used ---------- */
.field--agenda input[readonly] {
  background: rgba(245, 122, 0, .07) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F57A00' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='10' width='16' height='11' rx='3'/%3E%3Cpath d='M8 10V7a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E") no-repeat right 16px center / 17px;
  border: 1px dashed rgba(245, 122, 0, .55); color: var(--text, #0F1729); font-weight: 600; padding-right: 46px; cursor: default;
}
.field--agenda input[readonly]:focus { box-shadow: none; border-color: rgba(245, 122, 0, .55); }
.field--agenda[hidden] { display: none; }
.field__hint { display: block; margin-top: 6px; font-size: 12px; line-height: 1.5; color: var(--muted, #5D6677); }
