/* ==========================================================================
   Shuffle Dance – site template
   Dark ground, violet → pink gradient accents, Unbounded + DM Sans.
   ========================================================================== */

/* Self-hosted variable fonts (Google Fonts, OFL) */
@font-face{font-family:'DM Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/dmsans-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/dmsans-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Unbounded';font-style:normal;font-weight:500 800;font-display:swap;src:url(../fonts/unbounded-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Unbounded';font-style:normal;font-weight:500 800;font-display:swap;src:url(../fonts/unbounded-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}

:root {
  --sd-bg: #0b0a10;
  --sd-bg-deep: #08070c;
  --sd-surface: #14121c;
  --sd-surface-2: #1c1927;
  --sd-surface-3: #221e30;
  --sd-line: #2b2640;
  --sd-line-soft: rgba(255, 255, 255, .1);
  --sd-text: #f5f2fb;
  --sd-text-2: #d6d0e4;
  --sd-muted: #b9b1cc;
  --sd-dim: #8c84a3;
  --sd-violet: #b794ff;
  --sd-pink: #f472b6;
  --sd-grad: linear-gradient(100deg, #7c3aed 0%, #c026d3 55%, #e11d74 100%);
  --sd-grad-text: linear-gradient(100deg, #b794ff 0%, #f472b6 100%);
  --sd-ring: linear-gradient(135deg, rgba(183, 148, 255, .7), rgba(244, 114, 182, .15) 45%, rgba(244, 114, 182, .6));
  --sd-font: "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --sd-font-display: "Unbounded", "DM Sans", system-ui, sans-serif;
  --sd-wrap: 1280px;
  --sd-gutter: clamp(16px, 5vw, 80px);
  --sd-radius: 22px;
  --sd-header-h: 92px;

  /* Bootstrap (forms, alerts, pagination, component views) */
  --bs-body-bg: var(--sd-bg);
  --bs-body-color: var(--sd-text);
  --bs-body-font-family: var(--sd-font);
  --bs-secondary-color: var(--sd-muted);
  --bs-border-color: var(--sd-line);
  --bs-link-color: var(--sd-pink);
  --bs-link-color-rgb: 244, 114, 182;
  --bs-link-hover-color: var(--sd-violet);
  --bs-link-hover-color-rgb: 183, 148, 255;
  --bs-primary: #9d4dff;
  --bs-primary-rgb: 157, 77, 255;
  --bs-border-radius: 14px;
  --bs-tertiary-bg: var(--sd-surface-2);
  --bs-secondary-bg: var(--sd-surface);
}

[data-bs-theme="dark"] {
  --bs-body-bg: var(--sd-bg);
  --bs-body-color: var(--sd-text);
  --bs-border-color: var(--sd-line);
}

/* ---------- Base ---------- */

*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--sd-bg);
  color: var(--sd-text);
  font-family: var(--sd-font);
  font-size: 17px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

body.sd-nav-open { overflow: hidden; }

img, svg, video, iframe { max-width: 100%; }
img { height: auto; }

a { color: var(--sd-pink); text-decoration: none; transition: color .15s ease; }
a:hover { color: var(--sd-violet); }

:focus-visible { outline: 2px solid var(--sd-pink); outline-offset: 3px; border-radius: 6px; }

h1, h2, h3, h4, h5, h6 { color: var(--sd-text); font-family: var(--sd-font-display); font-weight: 700; line-height: 1.12; letter-spacing: -.01em; margin: 0 0 .6em; }

p { margin: 0 0 1em; }

.visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

.sd-wrap { width: 100%; max-width: calc(var(--sd-wrap) + 2 * var(--sd-gutter)); margin-inline: auto; padding-inline: var(--sd-gutter); }

.sd-gt { background: var(--sd-grad-text); -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-box-decoration-break: clone; box-decoration-break: clone; }

.sd-ring { background: var(--sd-ring); padding: 1px; border-radius: calc(var(--sd-radius) + 6px); }

.sd-skip { position: absolute; left: 16px; top: -60px; z-index: 100; padding: 10px 18px; border-radius: 999px; background: #fff; color: #000; font-weight: 700; }
.sd-skip:focus { top: 12px; color: #000; }

.sd-h1 { font-size: clamp(40px, 7vw, 80px); font-weight: 800; line-height: 1; letter-spacing: -.02em; margin-bottom: .3em; }
.sd-h2 { font-size: clamp(30px, 4.4vw, 56px); line-height: 1.05; letter-spacing: -.015em; margin-bottom: .35em; }
.sd-h3 { font-size: 24px; }

.sd-eyebrow { margin: 0 0 14px; color: var(--sd-pink); font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }

/* ---------- Buttons, chips, pills ---------- */

.sd-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 48px; padding: 0 26px; border-radius: 999px; border: 1px solid transparent;
  font: 700 16px/1.2 var(--sd-font); color: var(--sd-text); cursor: pointer; white-space: nowrap;
  transition: transform .15s ease, box-shadow .2s ease, background-color .2s ease, border-color .2s ease;
}
.sd-btn:hover { color: var(--sd-text); transform: translateY(-1px); }
.sd-btn--grad { background: var(--sd-grad); color: #fff; box-shadow: 0 10px 30px rgba(192, 38, 211, .35); }
.sd-btn--grad:hover { color: #fff; box-shadow: 0 14px 40px rgba(192, 38, 211, .5); }
.sd-btn--ghost { border-color: rgba(255, 255, 255, .22); background: rgba(255, 255, 255, .04); }
.sd-btn--ghost:hover { border-color: rgba(255, 255, 255, .45); }
.sd-btn--lg { min-height: 58px; padding: 0 32px; font-size: 17px; }
.sd-btn__play { width: 38px; height: 38px; margin-left: -18px; border-radius: 999px; background: #fff; color: var(--sd-bg); display: inline-flex; align-items: center; justify-content: center; }

.sd-chip { display: inline-flex; align-items: center; gap: 6px; padding: 8px 16px; border-radius: 999px; background: rgba(255, 255, 255, .06); border: 1px solid var(--sd-line-soft); font-size: 14px; color: var(--sd-text); }
.sd-chip strong, .sd-chip b { color: var(--sd-pink); }
.sd-chip--brand { padding-left: 10px; background: rgba(124, 58, 237, .25); border-color: rgba(183, 148, 255, .35); font-weight: 500; }
.sd-chip--brand::before { content: ""; width: 8px; height: 8px; border-radius: 999px; background: var(--sd-grad); }

.sd-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.sd-tags li, .sd-tag { padding: 5px 12px; border-radius: 999px; background: rgba(124, 58, 237, .2); color: #cdb8ff; font-size: 13px; font-weight: 500; }

.sd-pills { display: flex; flex-wrap: wrap; gap: 10px; }
.sd-pill { display: inline-flex; align-items: center; min-height: 44px; padding: 0 20px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .14); background: rgba(255, 255, 255, .04); color: var(--sd-text); font-weight: 500; font-size: 15px; }
.sd-pill:hover { color: var(--sd-text); border-color: rgba(255, 255, 255, .35); }
.sd-pill.is-active { background: var(--sd-grad); border-color: transparent; color: #fff; }

.sd-iconbtn { width: 44px; height: 44px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .16); background: rgba(11, 10, 16, .4); color: var(--sd-text); cursor: pointer; padding: 0; }
.sd-iconbtn:hover { color: var(--sd-pink); border-color: rgba(255, 255, 255, .35); }
.sd-iconbtn--light { background: #fff; color: var(--sd-bg); border-color: #fff; }
.sd-iconbtn--light:hover { color: #7c3aed; }

.sd-badge-icon { width: 48px; height: 48px; flex-shrink: 0; border-radius: 14px; background: var(--sd-grad); color: #fff; display: inline-flex; align-items: center; justify-content: center; }

.sd-more { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; color: var(--sd-text); }


/* CSS-only icons for editor content (modules/articles) */
.sd-btn--arrow::after, .sd-more::after { content: ""; width: 18px; height: 18px; flex-shrink: 0; background: currentColor; -webkit-mask: var(--sd-i-arrow) center / contain no-repeat; mask: var(--sd-i-arrow) center / contain no-repeat; transition: transform .15s ease; }
.sd-more::after { background: var(--sd-pink); }
.sd-btn--arrow:hover::after, .sd-more:hover::after { transform: translateX(3px); }
.sd-btn__play::before { content: ""; width: 16px; height: 16px; margin-left: 2px; background: var(--sd-bg); -webkit-mask: var(--sd-i-play) center / contain no-repeat; mask: var(--sd-i-play) center / contain no-repeat; }
:root {
  --sd-i-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
  --sd-i-play: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 5v14l11-7z'/%3E%3C/svg%3E");
}

/* ---------- Header & navigation ---------- */

.sd-header { position: sticky; top: 0; z-index: 50; border-bottom: 1px solid rgba(255, 255, 255, .07); }
/* Blur lives on a pseudo-element: backdrop-filter on the header itself would trap the fixed mobile menu inside it */
.sd-header::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(11, 10, 16, .82); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
.sd-header--overlay { position: absolute; left: 0; right: 0; }
.sd-header--overlay::before { background: rgba(11, 10, 16, .45); }
.sd-header__inner { min-height: var(--sd-header-h); display: flex; align-items: center; gap: 32px; }

.sd-brand { display: inline-flex; align-items: center; gap: 14px; color: var(--sd-text); flex-shrink: 0; }
.sd-brand:hover { color: var(--sd-text); }
.sd-brand__logo { width: 56px; height: 56px; border-radius: 14px; display: block; }
.sd-brand__name { font-family: var(--sd-font-display); font-weight: 700; font-size: 17px; line-height: 1.1; letter-spacing: .02em; }

.sd-nav { flex-grow: 1; display: flex; align-items: center; gap: 24px; }
.sd-nav__top { display: none; }
.sd-nav__menu { flex-grow: 1; }
.sd-nav__extra { display: flex; align-items: center; gap: 8px; }
.sd-header__mobile { display: none; }
.sd-header__cta { min-height: 48px; }

.sd-social-icons { display: flex; gap: 8px; margin: 0; padding: 0; list-style: none; }

.sd-menu { display: flex; align-items: center; gap: 4px; margin: 0; padding: 0; list-style: none; }
.sd-menu__item { position: relative; display: flex; align-items: center; }
.sd-menu__link { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border-radius: 999px; color: var(--sd-text); font-weight: 500; }
.sd-menu__link:hover { color: var(--sd-pink); }
.sd-menu__item.is-active > .sd-menu__link { color: var(--sd-pink); font-weight: 700; }
.sd-menu__item.has-children > .sd-menu__link { padding-right: 4px; }
.sd-menu__toggle { width: 32px; height: 44px; padding: 0; border: 0; background: none; color: inherit; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; }
.sd-menu__toggle .sd-icon { transition: transform .2s ease; }
.sd-menu__item.is-open > .sd-menu__toggle .sd-icon { transform: rotate(180deg); }

.sd-submenu {
  position: absolute; top: calc(100% + 10px); left: -12px; z-index: 60;
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; width: 520px;
  margin: 0; padding: 18px; list-style: none; border-radius: 22px;
  background: #15131e; border: 1px solid var(--sd-line); box-shadow: 0 30px 80px rgba(0, 0, 0, .6);
  opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .18s ease, transform .18s ease, visibility .18s;
}
.sd-submenu::before { content: ""; position: absolute; left: 0; right: 0; top: -14px; height: 14px; }
.sd-menu__item.is-open > .sd-submenu { opacity: 1; visibility: visible; transform: none; }
@media (hover: hover) and (min-width: 1101px) {
  .sd-menu__item.has-children:hover > .sd-submenu { opacity: 1; visibility: visible; transform: none; }
  .sd-menu__item.has-children:hover > .sd-menu__toggle .sd-icon { transform: rotate(180deg); }
}
.sd-submenu .sd-menu__item { display: block; }
.sd-submenu .sd-menu__link { display: flex; gap: 14px; width: 100%; min-height: 56px; padding: 8px 14px; border-radius: 14px; font-weight: 700; font-size: 16px; }
.sd-submenu .sd-menu__link::before { content: ""; width: 40px; height: 40px; flex-shrink: 0; border-radius: 12px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 5v14l11-7z' fill='%23fff'/%3E%3C/svg%3E") center / 18px no-repeat, var(--sd-grad); }
.sd-submenu .sd-menu__link:hover, .sd-submenu .is-current > .sd-menu__link { background: rgba(124, 58, 237, .16); color: var(--sd-text); }

.sd-langswitch { display: flex; align-items: center; min-height: 44px; margin: 0; padding: 0 14px; list-style: none; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .14); font-size: 14px; font-weight: 700; }
.sd-langswitch li + li::before { content: "/"; margin: 0 6px; color: var(--sd-dim); font-weight: 500; }
.sd-langswitch a { color: var(--sd-dim); font-weight: 500; }
.sd-langswitch a:hover { color: var(--sd-text); }
.sd-langswitch .is-active { color: var(--sd-text); }
.sd-lang .mod-languages { margin: 0; }

@media (max-width: 1260px) {
  .sd-social-icons { display: none; }
}

@media (max-width: 1100px) {
  :root { --sd-header-h: 72px; }
  .sd-brand__logo { width: 44px; height: 44px; border-radius: 12px; }
  .sd-brand__name { font-size: 13px; }
  .sd-header__inner { gap: 12px; }
  .sd-header__inner > .sd-brand { flex-grow: 1; }
  .sd-header__mobile { display: flex; align-items: center; gap: 10px; }
  .sd-header__mobile .sd-header__cta { min-height: 44px; padding: 0 16px; font-size: 14px; }

  .sd-nav {
    position: fixed; inset: 0; z-index: 90; flex-direction: column; align-items: stretch; gap: 0;
    padding: 0 16px 24px; overflow-y: auto; overscroll-behavior: contain;
    background: radial-gradient(90% 50% at 100% 0%, rgba(124, 58, 237, .35) 0%, rgba(11, 10, 16, 0) 70%), radial-gradient(80% 40% at 0% 100%, rgba(225, 29, 116, .25) 0%, rgba(11, 10, 16, 0) 70%), var(--sd-bg);
    opacity: 0; visibility: hidden; transition: opacity .2s ease, visibility .2s;
  }
  body.sd-nav-open .sd-nav { opacity: 1; visibility: visible; }
  .sd-nav__top { display: flex; align-items: center; justify-content: space-between; min-height: 72px; }
  .sd-nav__menu { flex-grow: 1; margin-top: 12px; }
  .sd-menu { flex-direction: column; align-items: stretch; gap: 0; }
  .sd-menu > .sd-menu__item { flex-wrap: wrap; border-bottom: 1px solid var(--sd-surface-3); }
  .sd-menu > .sd-menu__item > .sd-menu__link { flex-grow: 1; min-height: 64px; padding: 0; font-family: var(--sd-font-display); font-weight: 700; font-size: 24px; }
  .sd-menu__toggle { width: 48px; height: 48px; border: 1px solid rgba(255, 255, 255, .14); }
  .sd-submenu {
    position: static; width: 100%; display: none; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px;
    padding: 0 0 16px; background: none; border: 0; box-shadow: none; opacity: 1; visibility: visible; transform: none;
  }
  .sd-submenu::before { display: none; }
  .sd-menu__item.is-open > .sd-submenu { display: grid; }
  .sd-submenu .sd-menu__link { min-height: 48px; padding: 10px 14px; background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .08); font-weight: 500; font-size: 15px; }
  .sd-submenu .sd-menu__link::before { display: none; }
  .sd-nav__extra { flex-direction: column; align-items: stretch; gap: 16px; margin-top: 24px; }
  .sd-social-icons { display: flex; justify-content: center; }
  .sd-social-icons .sd-iconbtn { width: 48px; height: 48px; }
  .sd-lang { display: flex; justify-content: center; }
  .sd-nav__extra .sd-header__cta { min-height: 58px; font-size: 17px; }
}

/* ---------- Hero (home) ---------- */

.sd-hero { position: relative; min-height: min(860px, 100svh); display: flex; align-items: center; padding: calc(var(--sd-header-h) + 60px) 0 170px; overflow: hidden; }
.sd-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 65% 40%; }
.sd-hero::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(11, 10, 16, .97) 0%, rgba(11, 10, 16, .88) 36%, rgba(11, 10, 16, .35) 68%, rgba(11, 10, 16, .55) 100%); }
.sd-hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; height: 260px; background: linear-gradient(180deg, rgba(11, 10, 16, 0) 0%, var(--sd-bg) 100%); }
.sd-hero__content { position: relative; z-index: 2; }
.sd-hero .mod-custom { max-width: 700px; display: flex; flex-direction: column; gap: 26px; align-items: flex-start; }
.sd-hero h1 { margin: 0; font-size: clamp(56px, 9vw, 104px); font-weight: 800; line-height: .95; letter-spacing: -.02em; }
.sd-hero p { margin: 0; max-width: 560px; font-size: clamp(17px, 1.6vw, 20px); color: var(--sd-text-2); }
.sd-hero__actions { display: flex; flex-wrap: wrap; gap: 14px; }
.sd-hero__facts { display: flex; flex-wrap: wrap; gap: 10px; margin: 6px 0 0; padding: 0; list-style: none; }

@media (max-width: 760px) {
  .sd-hero { min-height: 0; align-items: flex-end; padding: 300px 0 64px; }
  .sd-hero__img { height: 480px; object-position: 58% 40%; }
  .sd-hero::before { height: 480px; bottom: auto; background: linear-gradient(180deg, rgba(11, 10, 16, .7) 0%, rgba(11, 10, 16, .15) 35%, rgba(11, 10, 16, .6) 70%, var(--sd-bg) 100%); }
  .sd-hero::after { display: none; }
  .sd-hero .mod-custom { gap: 18px; }
  .sd-hero__actions { flex-direction: column; align-self: stretch; }
  .sd-hero__actions .sd-btn { width: 100%; }
}

/* ---------- Home: next event card ---------- */

.sd-home-card { position: relative; z-index: 3; margin-top: -110px; }
.sd-event { background: var(--sd-ring); padding: 1px; border-radius: 28px; box-shadow: 0 40px 80px rgba(0, 0, 0, .5); }
.sd-event__inner { display: flex; align-items: center; gap: 32px; padding: 30px 32px; border-radius: 27px; background: #15131e; }
.sd-event__head { width: 250px; flex-shrink: 0; }
.sd-event__head .sd-eyebrow { margin-bottom: 6px; }
.sd-event__title { margin: 0; font-size: 22px; line-height: 1.2; }
.sd-event__note { margin: 8px 0 0; color: var(--sd-muted); font-size: 14px; line-height: 1.4; }
.sd-event__facts { flex-grow: 1; display: grid; grid-template-columns: 1.35fr 1fr 1fr; gap: 20px; margin: 0; padding: 0; list-style: none; }
.sd-event__facts li { position: relative; min-height: 44px; padding-left: 56px; line-height: 1.35; }
.sd-event__facts li::before { content: ""; position: absolute; left: 0; top: 0; width: 44px; height: 44px; border-radius: 12px; background: var(--sd-surface-3); }
.sd-event__facts li::after { content: ""; position: absolute; left: 12px; top: 12px; width: 20px; height: 20px; background: var(--sd-violet); -webkit-mask: var(--i) center / contain no-repeat; mask: var(--i) center / contain no-repeat; }
.sd-event__facts small { display: block; color: var(--sd-muted); font-size: 13px; }
.sd-event__facts strong { display: block; color: var(--sd-text); }
.sd-event__facts span { display: block; color: var(--sd-muted); font-size: 14px; }
.sd-fact--date { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round'%3E%3Crect x='3.5' y='5' width='17' height='15' rx='2'/%3E%3Cpath d='M3.5 10h17M8 3v4M16 3v4'/%3E%3C/svg%3E"); }
.sd-fact--place { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9'%3E%3Cpath d='M12 21s-7-6.2-7-11a7 7 0 0 1 14 0c0 4.8-7 11-7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E"); }
.sd-fact--price { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linejoin='round'%3E%3Cpath d='M4 8a2 2 0 0 0 2-2h12a2 2 0 0 0 2 2v8a2 2 0 0 0-2 2H6a2 2 0 0 0-2-2z'/%3E%3Cpath d='M12 9v6'/%3E%3C/svg%3E"); }
.sd-event .sd-btn { flex-shrink: 0; }

@media (max-width: 1100px) {
  .sd-event__inner { flex-direction: column; align-items: stretch; gap: 20px; padding: 24px; }
  .sd-event__head { width: auto; }
  .sd-event__facts { grid-template-columns: 1fr; gap: 14px; }
  
}
@media (max-width: 760px) {
  .sd-home-card { margin-top: 0; }
  .sd-event__inner { padding: 22px; }
  .sd-event__title { font-size: 20px; }
  .sd-event__facts small { display: none; }
}

/* ---------- Home sections ---------- */

.sd-main { padding-bottom: 0; }
.sd-home-section { margin-top: clamp(72px, 10vw, 140px); }

.sd-section__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; margin-bottom: 44px; }
.sd-section__head > p, .sd-section__lead { max-width: 400px; margin: 0; color: var(--sd-muted); }
.sd-section__head .sd-h2 { margin: 0; }
@media (max-width: 760px) {
  .sd-section__head { flex-direction: column; align-items: flex-start; gap: 16px; margin-bottom: 28px; }
}

.sd-offers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin: 0; padding: 0; list-style: none; }
.sd-offer { background: var(--sd-ring); padding: 1px; border-radius: 26px; }
.sd-offer__inner { height: 100%; display: flex; flex-direction: column; overflow: hidden; border-radius: 25px; background: var(--sd-surface); }
.sd-offer__media { position: relative; height: 250px; }
.sd-offer__media img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; display: block; }
.sd-offer__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20, 18, 28, 0) 40%, var(--sd-surface) 100%); }
.sd-offer__num { position: absolute; z-index: 1; left: 28px; bottom: -4px; width: 56px; height: 56px; border-radius: 16px; background: var(--sd-grad); color: #fff; display: flex; align-items: center; justify-content: center; font: 700 18px var(--sd-font-display); }
.sd-offer__body { flex-grow: 1; display: flex; flex-direction: column; gap: 14px; padding: 24px 28px 30px; }
.sd-offer__body h3 { margin: 0; font-size: 24px; }
.sd-offer__body p { margin: 0; flex-grow: 1; color: var(--sd-muted); font-size: 16px; }
@media (max-width: 1000px) {
  .sd-offers { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: min(320px, 82vw); overflow-x: auto; scroll-snap-type: x mandatory; margin-inline: calc(-1 * var(--sd-gutter)); padding-inline: var(--sd-gutter); padding-bottom: 8px; scrollbar-width: none; }
  .sd-offers::-webkit-scrollbar { display: none; }
  .sd-offer { scroll-snap-align: start; }
  .sd-offer__media { height: 190px; }
  .sd-offer__body { padding: 20px 22px 24px; }
  .sd-offer__body h3 { font-size: 20px; }
}

.sd-about { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 80px; align-items: center; }
.sd-about__media { position: relative; height: 620px; }
.sd-about__media img { position: absolute; object-fit: cover; border-radius: 28px; box-shadow: 0 30px 60px rgba(0, 0, 0, .5); }
.sd-about__media img:first-child { left: 0; top: 0; width: 56%; height: 94%; transform: rotate(-4deg); }
.sd-about__media img:nth-child(2) { right: 3%; top: 6%; width: 50%; height: 86%; transform: rotate(5deg); border: 4px solid var(--sd-bg); }
.sd-about__badge { position: absolute; left: 32%; bottom: 0; z-index: 1; display: flex; flex-direction: column; padding: 18px 22px; border-radius: 20px; background: var(--sd-grad); color: #fff; line-height: 1.25; box-shadow: 0 20px 50px rgba(192, 38, 211, .45); transform: rotate(-2deg); }
.sd-about__badge strong { font: 800 26px var(--sd-font-display); }
.sd-about__text p { color: var(--sd-text-2); font-size: 18px; }
.sd-about__text p + p { color: var(--sd-muted); font-size: 17px; }
.sd-about__text .sd-eyebrow { color: var(--sd-pink); font-size: 13px; }
.sd-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 28px 0 0; padding: 0; list-style: none; }
.sd-stats li { display: flex; flex-direction: column; gap: 4px; padding: 20px; border-radius: 20px; background: var(--sd-surface); border: 1px solid var(--sd-line); color: var(--sd-muted); font-size: 14px; line-height: 1.35; }
.sd-stats strong { font: 800 34px/1.1 var(--sd-font-display); background: var(--sd-grad-text); -webkit-background-clip: text; background-clip: text; color: transparent; }
@media (max-width: 1000px) {
  .sd-about { grid-template-columns: 1fr; gap: 40px; }
  .sd-about__media { height: 420px; max-width: 520px; }
}
@media (max-width: 560px) {
  .sd-about__media { display: none; }
  .sd-stats { gap: 10px; }
  .sd-stats li { padding: 14px; font-size: 12px; }
  .sd-stats strong { font-size: 24px; }
}

/* ---------- Videos ---------- */

.sd-video-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px 24px; }
.sd-video-grid--row { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 20px; }
.sd-video { display: flex; flex-direction: column; gap: 14px; color: var(--sd-text); }
.sd-video:hover { color: var(--sd-text); }
.sd-video__media { position: relative; display: block; aspect-ratio: 9 / 16; overflow: hidden; border-radius: 22px; background: var(--sd-surface-2); }
.sd-video__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.sd-video:hover .sd-video__media img { transform: scale(1.04); }
.sd-video__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11, 10, 16, .25) 0%, rgba(11, 10, 16, 0) 30%, rgba(11, 10, 16, 0) 60%, rgba(11, 10, 16, .85) 100%); }
.sd-video__placeholder { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: var(--sd-dim); }
.sd-video__tag { position: absolute; z-index: 1; top: 14px; left: 14px; padding: 5px 12px; border-radius: 999px; background: rgba(11, 10, 16, .72); backdrop-filter: blur(8px); font-size: 12px; font-weight: 700; }
.sd-video__play { position: absolute; z-index: 1; left: 50%; top: 50%; width: 64px; height: 64px; margin: -32px 0 0 -32px; border-radius: 999px; background: var(--sd-grad); color: #fff; display: flex; align-items: center; justify-content: center; box-shadow: 0 10px 30px rgba(0, 0, 0, .4); transition: transform .2s ease; }
.sd-video:hover .sd-video__play { transform: scale(1.08); }
.sd-video__title { margin: 0; font: 700 16px/1.35 var(--sd-font); letter-spacing: 0; }

.sd-video-cta { border-radius: 24px; aspect-ratio: 9 / 16; }
.sd-video-cta__inner { height: 100%; display: flex; flex-direction: column; justify-content: flex-end; gap: 14px; padding: 28px; border-radius: 23px; background: radial-gradient(120% 80% at 50% 0%, rgba(124, 58, 237, .35), var(--sd-surface) 60%); }
.sd-video-cta__inner p { margin: 0; color: var(--sd-text-2); font-size: 16px; }
.sd-video-cta__title { font: 700 24px/1.15 var(--sd-font-display) !important; color: var(--sd-text) !important; }
.sd-video-cta .sd-btn { align-self: flex-start; }

@media (max-width: 1200px) { .sd-video-grid--row { grid-template-columns: repeat(4, minmax(0, 1fr)); } .sd-video-grid--row > :nth-child(n+5) { display: none; } }
@media (max-width: 1000px) { .sd-video-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) {
  .sd-video-grid, .sd-video-grid--row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 12px; }
  .sd-video-grid--row > :nth-child(n+5) { display: none; }
  .sd-video__media { border-radius: 18px; }
  .sd-video__play { width: 48px; height: 48px; margin: -24px 0 0 -24px; }
  .sd-video__tag { top: 10px; left: 10px; font-size: 11px; }
  .sd-video__title { font-size: 14px; }
  .sd-video-cta { aspect-ratio: auto; grid-column: 1 / -1; }
}

/* ---------- Inner pages ---------- */

.sd-page { padding-top: 40px; }
.sd-pagehead { display: flex; flex-direction: column; gap: 20px; margin-bottom: 40px; padding: 24px 0 8px; position: relative; }
.sd-pagehead::before { content: ""; position: absolute; z-index: -1; right: 0; top: -160px; width: 70%; height: 460px; background: radial-gradient(60% 60% at 70% 30%, rgba(124, 58, 237, .28) 0%, rgba(11, 10, 16, 0) 70%), radial-gradient(40% 50% at 100% 70%, rgba(225, 29, 116, .18) 0%, rgba(11, 10, 16, 0) 70%); pointer-events: none; }
.sd-pagehead__row { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; }
.sd-pagehead .sd-h1 { margin-bottom: 14px; }
.sd-pagehead__desc { max-width: 640px; font-size: 19px; color: var(--sd-text-2); }
.sd-pagehead__desc p:last-child { margin-bottom: 0; }
@media (max-width: 760px) { .sd-pagehead__row { flex-direction: column; align-items: flex-start; gap: 12px; } .sd-pills { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(-1 * var(--sd-gutter)); padding-inline: var(--sd-gutter); scrollbar-width: none; } .sd-pills::-webkit-scrollbar { display: none; } .sd-pill { flex-shrink: 0; } }

.sd-main .mod-breadcrumbs__wrapper, .sd-main nav[aria-label="Breadcrumbs"] { margin-bottom: 8px; }
.sd-main .breadcrumb { margin: 0; padding: 0; background: none; font-size: 14px; --bs-breadcrumb-divider-color: var(--sd-dim); --bs-breadcrumb-item-active-color: var(--sd-text); }
.sd-main .breadcrumb a { color: var(--sd-muted); }
.sd-main .breadcrumb .float-start { display: none; }

.sd-article { max-width: 820px; margin-bottom: 40px; }
.sd-article--video { max-width: 520px; margin-inline: auto; text-align: center; }
.sd-article--video .sd-prose h5:first-child, .sd-article--video .sd-prose > h5 { display: none; }
.sd-article__title { font-size: clamp(34px, 5vw, 56px); }
.sd-article--video .sd-article__title { font-size: clamp(26px, 4vw, 40px); }
.sd-article__follow { margin-top: 24px; color: var(--sd-muted); }
.sd-back { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 20px; color: var(--sd-muted); font-weight: 500; }
.sd-back .sd-icon { transform: rotate(180deg); }

.sd-prose { color: var(--sd-text-2); font-size: 18px; }
.sd-prose h2, .sd-prose h3 { margin-top: 1.4em; }
.sd-prose h2 { font-size: clamp(26px, 3vw, 36px); }
.sd-prose h3 { font-size: 24px; }
.sd-prose h4, .sd-prose h5, .sd-prose h6 { font-family: var(--sd-font); font-weight: 700; font-size: 18px; letter-spacing: 0; }
.sd-prose strong, .sd-prose b { color: var(--sd-text); }
.sd-prose a { text-decoration: underline; text-decoration-color: rgba(244, 114, 182, .45); text-underline-offset: 3px; }
.sd-prose ul, .sd-prose ol { padding-left: 1.2em; }
.sd-prose li { margin-bottom: .4em; }
.sd-prose li::marker { color: var(--sd-pink); }
.sd-prose img { border-radius: 18px; }
.sd-prose blockquote { margin: 1.5em 0; padding: 20px 24px; border-radius: 18px; background: var(--sd-surface); border-left: 3px solid var(--sd-pink); }
.sd-prose table { width: 100%; border-collapse: collapse; }
.sd-prose td, .sd-prose th { padding: 10px 12px; border-bottom: 1px solid var(--sd-line); }

.sd-embed { position: relative; width: 100%; aspect-ratio: var(--ar, 16 / 9); margin: 1.5em 0; overflow: hidden; border-radius: 22px; background: var(--sd-surface-2); }
.sd-embed--vertical { max-width: 380px; margin-inline: auto; }
.sd-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

.sd-cards { display: grid; gap: 24px; }
.sd-card { padding: 32px; border-radius: var(--sd-radius); background: var(--sd-surface); border: 1px solid var(--sd-line); }
.sd-card__title { font-size: 26px; }
.sd-card__title a { color: var(--sd-text); }
.sd-card__title a:hover { color: var(--sd-pink); }
.sd-empty { color: var(--sd-muted); }

.sd-pagination { margin-top: 48px; display: flex; justify-content: center; }
.sd-pagination .pagination { --bs-pagination-bg: var(--sd-surface); --bs-pagination-border-color: var(--sd-line); --bs-pagination-color: var(--sd-text); --bs-pagination-hover-bg: var(--sd-surface-2); --bs-pagination-hover-color: var(--sd-text); --bs-pagination-active-bg: #9d4dff; --bs-pagination-active-border-color: #9d4dff; --bs-pagination-disabled-bg: var(--sd-bg); --bs-pagination-disabled-color: var(--sd-dim); gap: 6px; }
.sd-pagination .page-link { border-radius: 999px !important; min-width: 44px; min-height: 44px; display: flex; align-items: center; justify-content: center; }

/* Featured (fallback home, e.g. English) */
.sd-page .blog-featured .item-content, .sd-page .blog-featured .blog-item { margin-bottom: 40px; }
.sd-page .blog-featured h2 { font-size: clamp(26px, 3vw, 36px); }
.sd-page .blog-featured .item-content { color: var(--sd-text-2); }

/* ---------- Follow band ---------- */

.sd-follow { margin-top: clamp(72px, 10vw, 140px); margin-bottom: clamp(64px, 8vw, 120px); }
.sd-follow__ring { border-radius: 36px; }
.sd-follow__inner { display: flex; align-items: center; justify-content: space-between; gap: 48px; padding: 64px; border-radius: 35px; background: radial-gradient(120% 140% at 0% 0%, rgba(124, 58, 237, .35) 0%, rgba(20, 18, 28, 1) 45%), radial-gradient(100% 120% at 100% 100%, rgba(225, 29, 116, .3) 0%, rgba(20, 18, 28, 0) 50%), var(--sd-surface); }
.sd-follow__intro { max-width: 520px; }
.sd-follow__intro p { margin: 0; color: var(--sd-text-2); font-size: 18px; }
.sd-follow__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; width: min(620px, 100%); margin: 0; padding: 0; list-style: none; }
.sd-follow__item { display: flex; align-items: center; gap: 16px; padding: 18px 20px; border-radius: 20px; background: rgba(11, 10, 16, .6); border: 1px solid var(--sd-line-soft); color: var(--sd-text); line-height: 1.3; }
.sd-follow__item:hover { color: var(--sd-text); border-color: rgba(244, 114, 182, .5); }
.sd-follow__item small { display: block; color: var(--sd-muted); font-size: 14px; }
@media (max-width: 1000px) {
  .sd-follow__inner { flex-direction: column; align-items: stretch; gap: 24px; padding: 28px 20px; }
  .sd-follow__list { grid-template-columns: 1fr; width: 100%; gap: 10px; }
  .sd-follow__item { padding: 12px 14px; }
  .sd-follow__item .sd-badge-icon { width: 42px; height: 42px; border-radius: 12px; }
}

/* ---------- Footer ---------- */

.sd-footer { background: var(--sd-bg-deep); border-top: 1px solid #1e1b2a; padding: 72px 0 40px; font-size: 15px; }
.sd-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 48px; }
.sd-footer__brand p { max-width: 320px; margin-top: 18px; color: var(--sd-muted); }
.sd-footer__title { margin: 0 0 16px; color: var(--sd-dim); font: 700 13px var(--sd-font); letter-spacing: .12em; text-transform: uppercase; }
.sd-footer__col p { color: var(--sd-muted); }
.sd-footer__mail { display: inline-block; margin-bottom: 8px; color: var(--sd-text); font-weight: 700; }
.sd-linklist { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; list-style: none; }
.sd-linklist a { color: var(--sd-text); }
.sd-linklist a:hover, .sd-footer__mail:hover { color: var(--sd-pink); }
.sd-footer__bottom { position: relative; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; margin-top: 56px; padding-top: 28px; color: var(--sd-dim); font-size: 14px; }
.sd-footer__bottom::before { content: ""; position: absolute; top: 0; left: var(--sd-gutter); right: var(--sd-gutter); border-top: 1px solid #1e1b2a; }
.sd-footer__bottom form { margin: 0; }
@media (max-width: 1000px) { .sd-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .sd-footer { padding-top: 48px; } .sd-footer__grid { grid-template-columns: 1fr; gap: 32px; } .sd-footer__bottom { margin-top: 36px; } }

/* ---------- Video modal ---------- */

.sd-modal { width: min(440px, 92vw, calc(88vh * 9 / 16)); max-width: none; max-height: 92vh; padding: 0; border: 0; border-radius: 24px; background: #000; overflow: visible; }
.sd-modal::backdrop { background: rgba(8, 7, 12, .85); backdrop-filter: blur(6px); }
.sd-modal__frame { aspect-ratio: 9 / 16; border-radius: 24px; overflow: hidden; }
.sd-modal__frame iframe { width: 100%; height: 100%; border: 0; display: block; }
.sd-modal__close { position: absolute; top: -14px; right: -14px; z-index: 2; }
@media (max-width: 560px) { .sd-modal__close { top: 8px; right: 8px; } }

/* ---------- Joomla system: messages, forms, components ---------- */

.sd-main joomla-alert, .sd-main .alert { display: block; margin: 24px 0 0; border-radius: 16px; border: 1px solid var(--sd-line); background: var(--sd-surface); color: var(--sd-text); }
.sd-main joomla-alert[type="warning"], .sd-main .alert-warning { border-color: rgba(251, 191, 36, .5); }
.sd-main joomla-alert[type="danger"], .sd-main .alert-danger { border-color: rgba(248, 113, 113, .6); }
.sd-main joomla-alert[type="success"], .sd-main .alert-success { border-color: rgba(52, 211, 153, .5); }

.form-control, .form-select { background-color: var(--sd-surface); border-color: var(--sd-line); color: var(--sd-text); border-radius: 14px; min-height: 48px; }
.form-control:focus, .form-select:focus { background-color: var(--sd-surface-2); border-color: #9d4dff; color: var(--sd-text); box-shadow: 0 0 0 3px rgba(157, 77, 255, .3); }
.form-label, .control-label label { font-weight: 500; }
.btn { border-radius: 999px; min-height: 44px; padding-inline: 22px; font-weight: 700; }
.btn-primary { background: var(--sd-grad); border: 0; color: #fff; }
.btn-primary:hover, .btn-primary:focus { background: var(--sd-grad); color: #fff; filter: brightness(1.1); }
.btn-secondary { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .2); color: var(--sd-text); }
.input-group .btn { border-radius: 0 14px 14px 0; }

.com-users-login, .com-users-registration, .com-users-remind, .com-users-reset, .com-users-profile { max-width: 520px; padding: 32px; border-radius: var(--sd-radius); background: var(--sd-surface); border: 1px solid var(--sd-line); margin-bottom: 48px; }
.com-users-login .page-header h1, .com-users-registration .page-header h1 { font-size: 32px; }
.com-users-login__options { margin-top: 20px; }
.com-users-login__options .list-group-item { background: none; border-color: var(--sd-line); color: var(--sd-pink); }

/* com_rezervace */
.sd-page .com_rezervace_terminy { max-width: none; margin: 0 0 48px; padding: 0; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 24px; }
.sd-page .com_rezervace_termin { background: var(--sd-surface) !important; border: 1px solid var(--sd-line) !important; border-radius: var(--sd-radius); box-shadow: none; color: var(--sd-text); }
.sd-page .com_rezervace_termin:hover { transform: translateY(-4px); box-shadow: 0 20px 40px rgba(0, 0, 0, .4); border-color: rgba(183, 148, 255, .5) !important; }
.sd-page .com_rezervace_detail { padding: 24px; }
.sd-page .com_rezervace_termin_aktivita { color: var(--sd-text) !important; font: 700 20px/1.25 var(--sd-font-display); border-bottom: 1px solid var(--sd-line) !important; padding-bottom: 12px; margin-bottom: 14px; }
.sd-page .com_rezervace_termin_datum, .sd-page .com_rezervace_termin_cvicitel { color: var(--sd-text-2) !important; }
.sd-page .com_rezervace_termin_datum_datum::before, .sd-page .com_rezervace_termin_cvicitel:nth-of-type(3)::before, .sd-page .com_rezervace_termin_cvicitel:nth-of-type(4)::before { color: var(--sd-violet) !important; }
.sd-page .com_rezervace_termin_datum_delka { color: var(--sd-pink) !important; }
.sd-page .com_rezervace_termin_akce, .sd-page div.com_rezervace_termin_uzivatele { border-top: 1px solid var(--sd-line) !important; }
.sd-page .com_rezervace_termin_akce p { color: var(--sd-muted); }
.sd-page .com_rezervace_termin_akce button { min-height: 44px; padding: 0 24px; border-radius: 999px; font-weight: 700; }
.sd-page .com_rezervace_termin_akce button.com_rezervace_prihlasit { background: var(--sd-grad) !important; }
.sd-page .com_rezervace_termin_akce button.com_rezervace_odhlasit { background: rgba(255, 255, 255, .08) !important; border: 1px solid rgba(248, 113, 113, .6); }
.sd-page .com_rezervace_termin.rezervovano { border-color: rgba(52, 211, 153, .6) !important; background: linear-gradient(180deg, rgba(52, 211, 153, .08), var(--sd-surface) 40%) !important; }
.sd-page .com_rezervace_termin.rezervovano::after { color: #34d399 !important; }
.sd-page .com_rezervace_termin.zruseno { opacity: .55; }
.sd-page .com_rezervace_termin.zruseno .com_rezervace_termin_akce, .sd-page .com_rezervace_termin.zruseno .com_rezervace_termin_akce p { background: none; color: #f87171; }
.sd-page p:has(+ .com_rezervace_terminy) { background: var(--sd-surface); color: var(--sd-muted); }

.plg_system_webauthn_login_button { display: inline-flex !important; align-items: center; gap: 10px; width: auto !important; min-height: 44px; margin: 8px 0 16px; padding: 0 20px !important; border-radius: 999px !important; background: rgba(255, 255, 255, .06) !important; border: 1px solid rgba(255, 255, 255, .2) !important; color: var(--sd-text) !important; font-weight: 700; }
.plg_system_webauthn_login_button svg, .plg_system_webauthn_login_button img { width: 22px !important; height: 22px !important; fill: currentColor; }

/* n3t Cookie Consent – dark theme */
html:root {
  --cc-bg: #15131e; --cc-text: #d6d0e4; --cc-block-text: #f5f2fb;
  --cc-btn-primary-bg: #9d4dff; --cc-btn-primary-text: #fff; --cc-btn-primary-hover-bg: #c026d3;
  --cc-btn-secondary-bg: #221e30; --cc-btn-secondary-text: #f5f2fb; --cc-btn-secondary-hover-bg: #2b2640;
  --cc-toggle-bg-off: #3a3452; --cc-toggle-bg-on: #9d4dff; --cc-toggle-bg-readonly: #4b4466; --cc-toggle-knob-bg: #fff; --cc-toggle-knob-icon-color: #15131e;
  --cc-cookie-category-block-bg: #1c1927; --cc-cookie-category-block-bg-hover: #221e30; --cc-cookie-category-block-text: #f5f2fb;
  --cc-section-border: #2b2640; --cc-cookie-table-border: #2b2640; --cc-overlay-bg: rgba(8, 7, 12, .8);
  --cc-webkit-scrollbar-bg: #3a3452; --cc-webkit-scrollbar-bg-hover: #4b4466;
  --cc-trigger-handle-bg: #15131e; --cc-trigger-handle-hover-bg: #221e30; --cc-trigger-handle-text: #f5f2fb;
}
#cc--main #cm, #cc--main #s-inr { border: 1px solid #2b2640; border-radius: 22px; box-shadow: 0 30px 80px rgba(0, 0, 0, .6); font-family: var(--sd-font); }
#cc--main .c-bn { border-radius: 999px; font-family: var(--sd-font); font-weight: 700; }
#cc--main #c-p-bn, #cc--main #s-all-bn { background: var(--sd-grad); }
#cc--main a, #cc--main .cc-link { color: var(--sd-pink); border-color: rgba(244, 114, 182, .5); }

/* Error & offline pages */
.sd-error { min-height: 100vh; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 20px; }
.sd-error__code { margin: 20px 0 0; font: 800 clamp(96px, 20vw, 200px)/1 var(--sd-font-display); }
.sd-offline-login { display: grid; gap: 10px; width: min(360px, 100%); }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
