/* Cosmic Cine: shared, opt-in components. Theme files provide the same --cc-ui-* tokens.
 * No page IDs here. Pages own their layout; these classes own component appearance.
 */
/* Registration appearance is independent of PIN/redirect/payment controllers. */
:where([data-cc-theme]) .cc-ui-registration .cc-register-title {
  font-size:27px;font-weight:400;line-height:1.15;letter-spacing:-.035em;
  text-transform:none;margin:10px 40px 18px 0;color:var(--cc-ui-text);
}
:where([data-cc-theme]) .cc-ui-registration .cc-register-modes {display:flex;gap:7px;margin:18px 0;flex-wrap:wrap}
:where([data-cc-theme]) .cc-ui-registration .cc-register-modes button {
  flex:1;min-height:40px;padding:10px 5px;border:1px solid var(--cc-ui-line);
  border-radius:9px;background:var(--cc-ui-register-tab);color:var(--cc-ui-text);
  font:inherit;font-size:13px;line-height:1.4;cursor:pointer;
}
:where([data-cc-theme]) .cc-ui-registration .cc-register-modes button[aria-pressed=true] {background:var(--cc-ui-register-active);color:var(--cc-ui-register-active-text)}
:where([data-cc-theme]) .cc-ui-registration .cc-register-form label {display:block;font-size:13px;line-height:1.5;margin:12px 0}
:where([data-cc-theme]) .cc-ui-registration .cc-register-form :is(input:not([type=checkbox]):not([type=hidden]),select) {
  box-sizing:border-box;display:block;width:100%;max-width:100%;min-width:0;min-height:46px;
  margin:5px 0 0;padding:10px 12px;border:1px solid var(--cc-ui-register-border);border-radius:8px;
  background:var(--cc-ui-register-field);color:var(--cc-ui-register-ink);color-scheme:light;
  font:inherit;font-size:16px;line-height:24px;box-shadow:inset 0 2px 4px #0001;
}
:where([data-cc-theme]) .cc-ui-registration .cc-register-password {position:relative;display:block;width:100%;min-width:0}
:where([data-cc-theme]) .cc-ui-registration .cc-register-form .cc-register-password input:not([type=hidden]) {padding-right:52px}
:where([data-cc-theme]) .cc-ui-registration .cc-register-password button {position:absolute;right:3px;bottom:3px;display:grid;place-items:center;width:40px;height:40px;margin:0;padding:8px;border:0;border-radius:6px;background:transparent;cursor:pointer}
:where([data-cc-theme]) .cc-ui-registration .cc-register-password button:hover {background:#2db7bc18}
:where([data-cc-theme]) .cc-ui-registration .cc-register-password button:focus-visible {outline-offset:-3px}
:where([data-cc-theme]) .cc-ui-registration .cc-register-password img {display:block;width:24px;height:24px;max-width:none;object-fit:contain;filter:brightness(.6)}
:where([data-cc-theme]) .cc-ui-registration .cc-register-form .cc-register-check {display:flex;align-items:flex-start;gap:10px;font-size:12px;line-height:1.5;color:var(--cc-ui-muted)}
:where([data-cc-theme]) .cc-ui-registration .cc-register-check input {appearance:auto;color-scheme:light;width:18px;height:18px;flex:0 0 18px;margin:2px 0;accent-color:var(--cc-ui-register-check)}
:where([data-cc-theme]) .cc-ui-registration .cc-register-hint {margin:12px 0 0;font-size:12px;line-height:1.5;color:var(--cc-ui-muted)}
:where([data-cc-theme]) .cc-ui-registration .cc-ui-button {font-size:15px;min-height:48px;padding:14px;margin-top:10px}
:where([data-cc-theme]) .cc-ui-glass,
:where([data-cc-theme]).cc-ui-glass {
  box-sizing: border-box;
  padding: 30px;
  color: var(--cc-ui-text);
  background: var(--cc-ui-glass-background);
  border: 1px solid var(--cc-ui-glass-border);
  border-radius: 26px;
  box-shadow: var(--cc-ui-glass-shadow);
  backdrop-filter: var(--cc-ui-glass-backdrop,blur(18px));
  -webkit-backdrop-filter: var(--cc-ui-glass-backdrop,blur(18px));
}
:where([data-cc-theme]) .cc-ui-button,
:where([data-cc-theme]).cc-ui-button {
  box-sizing: border-box;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 14px;
  width: 100%;
  min-height: 54px;
  padding: 15px 18px;
  border: 1px solid var(--cc-ui-cta-border);
  border-radius: 999px;
  background: var(--cc-ui-cta-background);
  box-shadow: var(--cc-ui-cta-shadow);
  color: var(--cc-ui-cta-text);
  font: inherit;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: filter .15s;
}
:where([data-cc-theme]) .cc-ui-button:hover:not(:disabled),
:where([data-cc-theme]).cc-ui-button:hover:not(:disabled) { filter: brightness(1.06); }
:where([data-cc-theme]) .cc-ui-button:disabled,
:where([data-cc-theme]).cc-ui-button:disabled { opacity: .65; cursor: wait; }
:where([data-cc-theme]) .cc-ui-button:focus-visible,
:where([data-cc-theme]).cc-ui-button:focus-visible { outline: 3px solid var(--cc-ui-focus); outline-offset: 5px; }
:where([data-cc-theme]) dialog.cc-ui-dialog,
dialog.cc-ui-dialog:where([data-cc-theme]) {
  position: fixed;
  inset: 0;
  margin: auto;
  width: min(600px,calc(100% - 24px));
  max-height: calc(100dvh - 28px);
  overflow: auto;
  color-scheme: var(--cc-ui-color-scheme);
}
:where([data-cc-theme]) dialog.cc-ui-dialog::backdrop,
dialog.cc-ui-dialog:where([data-cc-theme])::backdrop { background: #000c; backdrop-filter: blur(5px); }
@media(max-width:720px) {
  :where([data-cc-theme]) .cc-ui-glass,
  :where([data-cc-theme]).cc-ui-glass { padding: 24px 20px; }
  :where([data-cc-theme]) .cc-ui-button,
  :where([data-cc-theme]).cc-ui-button { font-size: 16px; }
}
@media(prefers-reduced-motion:reduce) {
  :where([data-cc-theme]) .cc-ui-button,
  :where([data-cc-theme]).cc-ui-button { transition: none; }
}

/* Special Offer: explicitly selected tariff cards; no click handlers or checkout logic. */
:where([data-cc-theme]) .cc-ui-special-offer {
  box-sizing:border-box;position:relative;display:flex;flex-direction:column;gap:12px;
  padding:34px;border:1px solid var(--cc-ui-special-border,var(--cc-ui-glass-border));
  border-radius:20px;color:var(--cc-ui-text);
  background:var(--cc-ui-special-background,var(--cc-ui-glass-background));
  box-shadow:var(--cc-ui-special-shadow,var(--cc-ui-glass-shadow));
}
:where([data-cc-theme]) .cc-ui-special-offer__title {
  font-size:28px;line-height:1.2;font-weight:600;letter-spacing:.025em;text-transform:uppercase;
}
:where([data-cc-theme]) .cc-ui-special-offer__price {margin:20px 0 14px;line-height:1.6}
:where([data-cc-theme]) .cc-ui-special-offer__amount {font-size:56px;font-weight:400;line-height:1.2;letter-spacing:-.035em}
:where([data-cc-theme]) .cc-ui-special-offer .cc-ui-button {margin-top:auto;font-size:15px;min-height:50px}
:where([data-cc-theme]) .cc-ui-special-offer small {display:block;text-align:center;line-height:1.7;color:var(--cc-ui-muted);font-size:13px}
:where([data-cc-theme]) .cc-ui-story-panel {
  box-sizing:border-box;padding:clamp(24px,3.5vw,38px);border-radius:22px;
  border:1px solid var(--cc-ui-story-border,var(--cc-ui-glass-border));
  background:var(--cc-ui-story-background,var(--cc-ui-glass-background));
  box-shadow:var(--cc-ui-story-shadow,var(--cc-ui-glass-shadow));color:var(--cc-ui-text);
}
@media(max-width:600px){
  :where([data-cc-theme]) .cc-ui-special-offer {padding:28px 22px}
  :where([data-cc-theme]) .cc-ui-special-offer__title {font-size:25px}
  :where([data-cc-theme]) .cc-ui-special-offer__amount {font-size:48px}
}


/* Infobox: opt-in image/text layout on the existing cc-ui-story-panel surface.
 * No changes to existing story panels; combine both classes when using this variant. */
:where([data-cc-theme]) .cc-ui-infobox {
  display:grid;grid-template-columns:minmax(180px,.8fr) minmax(0,1.8fr);
  align-items:center;gap:clamp(26px,4vw,56px);
}
:where([data-cc-theme]) .cc-ui-infobox__media {min-width:0;text-align:center}
:where([data-cc-theme]) .cc-ui-infobox__media img {display:block;width:100%;max-width:300px;height:auto;margin-inline:auto}
:where([data-cc-theme]) .cc-ui-infobox__copy {min-width:0;overflow-wrap:break-word}
:where([data-cc-theme]) .cc-ui-infobox .cc-ui-infobox__eyebrow {
  margin:0 0 12px;color:var(--cc-ui-accent);font-size:13px;font-weight:700;letter-spacing:.035em;text-transform:uppercase;
}
:where([data-cc-theme]) .cc-ui-infobox .cc-ui-infobox__copy h2 {margin:0 0 18px;color:var(--cc-ui-text);font-size:clamp(24px,2.5vw,32px);font-weight:400;line-height:1.25}
:where([data-cc-theme]) .cc-ui-infobox .cc-ui-infobox__copy p:not([class]) {margin:0 0 16px;color:var(--cc-ui-muted);font-size:16px;line-height:1.7}
:where([data-cc-theme]) .cc-ui-infobox .cc-ui-infobox__signature {margin:20px 0 0;color:var(--cc-ui-text);font-size:14px}
:where([data-cc-theme]) .cc-ui-infobox__copy>:last-child {margin-bottom:0}
@media(max-width:720px){
  :where([data-cc-theme]) .cc-ui-infobox {grid-template-columns:1fr;gap:24px}
  :where([data-cc-theme]) .cc-ui-infobox__media img {max-width:230px}
}

/* Opt-in FAQ: native keyboard-accessible disclosure, no script or single-open rule. */
:where([data-cc-theme]) .cc-ui-faq h2 {margin:0 0 20px;color:var(--cc-ui-text);font-size:clamp(24px,2.5vw,32px);font-weight:400;line-height:1.25}
:where([data-cc-theme]) .cc-ui-faq details {border-bottom:1px solid var(--cc-ui-line)}
:where([data-cc-theme]) .cc-ui-faq summary {padding:18px 0;cursor:pointer;color:var(--cc-ui-text);font-size:16px;font-weight:600;line-height:1.5}
:where([data-cc-theme]) .cc-ui-faq summary::marker {color:var(--cc-ui-accent)}
:where([data-cc-theme]) .cc-ui-faq summary:focus-visible {outline:2px solid var(--cc-ui-focus);outline-offset:4px;border-radius:3px}
:where([data-cc-theme]) .cc-ui-faq details p {margin:0;padding:0 0 20px;color:var(--cc-ui-muted);font-size:16px;line-height:1.7;overflow-wrap:break-word}

/* Opt-in hero H1, based on the Festival annual offer. The group defines the
 * available text width; existing unmarked H1s and shared components are unchanged. */
:where([data-cc-theme]) .cc-ui-heading-group {container-type:inline-size}
:where([data-cc-theme]) .cc-ui-heading-group .cc-ui-h1 {
  margin:22px 0;font-family:'pantaray',Arial,sans-serif;
  font-size:clamp(22px,8vw,48px);font-size:clamp(22px,8cqw,48px);
  font-weight:400;line-height:1.17;letter-spacing:-.025em;
  text-transform:none;text-wrap:initial;overflow-wrap:break-word;color:var(--cc-ui-text);
}
:where([data-cc-theme]) .cc-ui-h1 em {font-style:normal;color:var(--cc-ui-accent)}

/* Numbered section heading: opt-in, theme-aware; no automatic numbering or flow logic.
 * Use cc-ui-step-number followed by a heading or a copy wrapper. */
:where([data-cc-theme]) .cc-ui-step-heading {
  display:flex;align-items:flex-start;gap:14px;margin-bottom:24px;text-align:left;
}
:where([data-cc-theme]) .cc-ui-step-number {
  box-sizing:border-box;display:grid;place-items:center;flex:0 0 37px;
  width:37px;height:37px;margin-top:2px;border:1px solid var(--cc-ui-line);
  border-radius:50%;color:var(--cc-ui-accent);font-size:12px;
}
:where([data-cc-theme]) .cc-ui-step-heading > :not(.cc-ui-step-number) {min-width:0}
:where([data-cc-theme]) .cc-ui-step-heading h2 {margin:0;min-width:0}

/* Opt-in team Infobox: full-width copy, large photo and real signatures below.
 * Existing Infoboxes retain their layout unless cc-ui-infobox--team is present. */
:where([data-cc-theme]) .cc-ui-infobox.cc-ui-infobox--team {grid-template-columns:minmax(0,1fr)}
:where([data-cc-theme]) .cc-ui-infobox--team .cc-ui-infobox__media {margin-top:26px}
:where([data-cc-theme]) .cc-ui-infobox--team .cc-ui-infobox__media img {max-width:600px}
:where([data-cc-theme]) .cc-ui-team-signatures {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;gap:8px;max-width:600px;margin:14px auto 12px;padding:8px 2px 18px}
:where([data-cc-theme]) .cc-ui-team-autograph {display:block;width:100%;height:95px;background:var(--cc-ui-accent);-webkit-mask:var(--cc-ui-team-signature) center/contain no-repeat;mask:var(--cc-ui-team-signature) center/contain no-repeat}
:where([data-cc-theme]) .cc-ui-team-autograph--micha {background:none;-webkit-mask:none;mask:none;transform:translateY(8px) rotate(-5deg)}
:where([data-cc-theme]) .cc-ui-team-signature-ink {flood-color:var(--cc-ui-accent)}
:where([data-cc-theme]) .cc-ui-team-autograph--maik {--cc-ui-team-signature:url('/front/static/filmgeschenk/assets/unterschrift-maik.png');transform:translateY(-4px) rotate(3deg)}
:where([data-cc-theme]) .cc-ui-team-autograph--matze {--cc-ui-team-signature:url('/front/static/filmgeschenk/assets/unterschrift-matze.png');transform:translateY(16px) rotate(-4deg)}
:where([data-cc-theme]) .cc-ui-team-autograph--dunja {--cc-ui-team-signature:url('/front/static/filmgeschenk/assets/unterschrift-dunja.png');transform:translateY(3px) rotate(4deg)}
@media(max-width:480px){
 :where([data-cc-theme]) .cc-ui-team-signatures {grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px;max-width:300px}
 :where([data-cc-theme]) .cc-ui-team-autograph {height:76px}
 :where([data-cc-theme]) .cc-ui-team-autograph--matze {transform:translateY(2px) rotate(-4deg)}
}
