/*
 * wall.css — CCM19 TCF Consent Wall
 * ═══════════════════════════════════════════════════════════════════════════
 * parents.at brand design.
 * Sans-serif typeface, light grey background, green header, orange buttons.
 *
 * NOTE: The #tcfw-wall display:none is set via INLINE STYLE in HTML,
 * not here. This ensures it is hidden even when this CSS file fails to load.
 * JS adds .tcfw-visible to show the wall.
 *
 * @author    Frank Silverstroem <frank@webmachine.net>
 * @copyright (c) 2026 WebMachine Technologies, Inc. All rights reserved!
 */

/* ── Google Fonts ─────────────────────────────────────────────────────── */
/*
 * Nunito — rounded, friendly, modern sans-serif.
 * Replace with the exact font used on parents.at once confirmed via DevTools:
 *   Chrome DevTools → Elements → Computed → font-family on <body>
 */
@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800&display=swap');

/* ── Design tokens ────────────────────────────────────────────────────── */
:root {
  --tcfw-bg-card:      #E6E6E6;
  --tcfw-bg-option:    #f0f0f0;
  --tcfw-green:        #9DC02E;
  --tcfw-green-dim:    #82a326;
  --tcfw-orange:       #FFC100;
  --tcfw-orange-dim:   #e6ae00;
  --tcfw-ink:          #1a1a1a;
  --tcfw-muted:        #555555;
  --tcfw-border:       #c8c8c8;
  --tcfw-overlay:      rgba(10, 10, 10, 0.25);
  --tcfw-radius-card:  10px;
  --tcfw-radius-btn:   6px;
  --tcfw-radius-opt:   8px;
  --tcfw-font:         'Nunito', system-ui, -apple-system, sans-serif;
  --tcfw-shadow:       0 4px 0 var(--tcfw-green), 0 12px 80px rgba(0,0,0,0.5);
  --tcfw-transition:   0.16s ease;
}

/* ── Reset ────────────────────────────────────────────────────────────── */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

/* ── Body & blurred background ────────────────────────────────────────── */
html,
body.tcfw-body {
  height: 100%;
  font-family: var(--tcfw-font);
  background-color: #111;
  color: var(--tcfw-ink);
}

/*
 * Blurred section background via pseudo-element.
 * Desktop image used by default; mobile image at ≤560px.
 * scale(1.06) prevents blur edge artifacts.
 */
body.tcfw-body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 0;
  background-image: var(--tcfw-bg-desktop);
  background-size: cover;
  background-position: center;
  filter: blur(18px) brightness(0.75) saturate(0.7);
  transform: scale(1.06);
}

@media (max-width: 560px) {
  body.tcfw-body::before {
    background-image: var(--tcfw-bg-mobile);
  }
}

/* Dark overlay on top of blurred background */
body.tcfw-body::after {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 1;
  background: var(--tcfw-overlay);
}

/* ── Noscript overlay ─────────────────────────────────────────────────── */
.tcfw-noscript-overlay {
  position: fixed;
  inset: 0;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}

.tcfw-noscript-card {
  background: var(--tcfw-bg-card);
  max-width: 460px;
  width: 100%;
  border-radius: var(--tcfw-radius-card);
  box-shadow: var(--tcfw-shadow);
  overflow: hidden;
}

.tcfw-noscript-bar {
  background: var(--tcfw-green);
  padding: 0.65rem 1.5rem;
}

.tcfw-noscript-bar span {
  font-weight: 700;
  font-size: 0.8rem;
  color: #fff;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.tcfw-noscript-body {
  padding: 1.8rem;
}

.tcfw-noscript-body h2 {
  font-size: 1.3rem;
  font-weight: 800;
  color: var(--tcfw-ink);
  margin-bottom: 0.75rem;
}

.tcfw-noscript-body p {
  font-size: 0.88rem;
  line-height: 1.65;
  color: var(--tcfw-muted);
  margin-bottom: 1rem;
}

.tcfw-noscript-btn {
  display: block;
  width: 100%;
  padding: 0.8rem 1.2rem;
  text-align: center;
  text-decoration: none;
  border-radius: var(--tcfw-radius-btn);
  font-size: 0.88rem;
  font-weight: 700;
  transition: background var(--tcfw-transition);
}

.tcfw-noscript-btn--secondary {
  background: var(--tcfw-orange);
  color: var(--tcfw-ink);
  border: none;
}

.tcfw-noscript-btn--secondary:hover {
  background: var(--tcfw-orange-dim);
}

.tcfw-noscript-login {
  font-size: 0.75rem;
  color: var(--tcfw-muted);
  text-align: center;
  margin-top: 0.6rem;
}

.tcfw-noscript-login a {
  color: var(--tcfw-ink);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* ── Consent wall container ───────────────────────────────────────────── */
/*
 * display:none is set inline in HTML — not here.
 * JS adds .tcfw-visible which sets display:flex.
 */
#tcfw-wall {
  position: fixed;
  inset: 0;
  z-index: 10;
  align-items: flex-start;
  justify-content: center;
  padding: 1.5rem 1rem;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch; /* smooth momentum scroll on iOS */
  animation: tcfwFadeIn 0.3s ease;
}

/* On screens tall enough to fit the card without scrolling,
   vertically center it for a more polished appearance */
@media (min-height: 700px) {
  #tcfw-wall {
    align-items: center;
  }
}

@keyframes tcfwFadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* ── Card ─────────────────────────────────────────────────────────────── */
.tcfw-card {
  background: var(--tcfw-bg-card);
  width: 100%;
  max-width: 760px;
  border-radius: var(--tcfw-radius-card);
  box-shadow: var(--tcfw-shadow);
  overflow: hidden;
  animation: tcfwRise 0.38s cubic-bezier(0.22, 1, 0.36, 1);
}

@keyframes tcfwRise {
  from { transform: translateY(18px); opacity: 0; }
  to   { transform: translateY(0);    opacity: 1; }
}

/* ── Green header bar ─────────────────────────────────────────────────── */
.tcfw-card__header {
  background: var(--tcfw-green);
  padding: 0.6rem 1.8rem;
  display: flex;
  align-items: center;
}

.tcfw-site-name {
  font-weight: 800;
  font-size: 0.82rem;
  color: #fff;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

/* ── Card body ────────────────────────────────────────────────────────── */
.tcfw-card__body {
  padding: 1.8rem 1.8rem 1.4rem;
}

/* ── Centered title ───────────────────────────────────────────────────── */
.tcfw-title {
  font-size: clamp(1.3rem, 3vw, 1.8rem);
  font-weight: 800;
  line-height: 1.2;
  color: var(--tcfw-ink);
  text-align: center;
  margin-bottom: 1.4rem;
}

/* ── Options grid ─────────────────────────────────────────────────────── */
.tcfw-options {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 0;
  margin-bottom: 0;
  align-items: stretch;
}

@media (max-width: 560px) {
  .tcfw-options {
    grid-template-columns: 1fr;
  }

  .tcfw-options__separator {
    writing-mode: horizontal-tb !important;
    padding: 0.5rem 0;
    border-left: none !important;
    border-right: none !important;
    border-top: 1px solid var(--tcfw-border);
    border-bottom: 1px solid var(--tcfw-border);
  }
}

/* ── "oder" separator ─────────────────────────────────────────────────── */
.tcfw-options__separator {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 1rem;
  font-size: 0.72rem;
  font-weight: 700;
  color: #999;
  border-left: 1px solid var(--tcfw-border);
  border-right: 1px solid var(--tcfw-border);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  writing-mode: vertical-rl;
}

/* ── Option panel ─────────────────────────────────────────────────────── */
.tcfw-option {
  background: var(--tcfw-bg-option);
  border-radius: var(--tcfw-radius-opt);
  padding: 1.3rem 1.1rem;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.tcfw-option__title {
  font-size: 1rem;
  font-weight: 800;
  color: var(--tcfw-ink);
  line-height: 1.2;
}

.tcfw-option__body {
  font-size: 0.92rem;
  line-height: 1.6;
  color: var(--tcfw-muted);
  flex: 1;
}

/* ── Buttons ──────────────────────────────────────────────────────────── */
.tcfw-btn {
  display: block;
  width: 100%;
  padding: 0.8rem 1rem;
  text-align: center;
  text-decoration: none;
  border: none;
  border-radius: var(--tcfw-radius-btn);
  font-family: var(--tcfw-font);
  font-size: 0.85rem;
  font-weight: 700;
  line-height: 1.3;
  cursor: pointer;
  transition:
    background var(--tcfw-transition),
    transform 0.1s ease,
    opacity var(--tcfw-transition);
  margin-top: auto;
}

.tcfw-btn:hover  { transform: translateY(-1px); }
.tcfw-btn:active { transform: translateY(0); }

/* Orange action button — consent and pay */
.tcfw-btn--action {
  background: var(--tcfw-orange);
  color: var(--tcfw-ink);
}

.tcfw-btn--action:hover {
  background: var(--tcfw-orange-dim);
}

.tcfw-btn--action:disabled {
  opacity: 0.45;
  cursor: not-allowed;
  transform: none;
}

/* Privacy management button — outlined rectangle, card background */
.tcfw-btn--privacy {
  background: var(--tcfw-bg-card);
  color: var(--tcfw-ink);
  border: 1.5px solid #1a1a1a;
  border-radius: var(--tcfw-radius-btn);
  font-family: var(--tcfw-font);
  font-weight: 600;
  font-size: 0.8rem;
  padding: 0.55rem 1.2rem;
  width: auto;
  cursor: pointer;
  transition: background var(--tcfw-transition);
}

.tcfw-btn--privacy:hover {
  background: #d8d8d8;
}

/* Privacy button wrapper — centered */
.tcfw-privacy-wrap {
  display: flex;
  justify-content: center;
  margin: 1.1rem 0 0.5rem;
}

/* ── Centered intro text — full card width ────────────────────────────── */
.tcfw-intro {
  font-size: 0.82rem;
  line-height: 1.7;
  color: var(--tcfw-muted);
  text-align: justify;
  margin-top: 1.3rem;
  hyphens: auto;
}

/* ── Adblocker notice ─────────────────────────────────────────────────── */
.tcfw-adblock-notice {
  font-size: 0.75rem;
  line-height: 1.5;
  color: #78350f;
  background: #fff8e1;
  border-left: 3px solid #f59e0b;
  border-radius: 4px;
  padding: 0.65rem 0.8rem;
  margin-top: 0.5rem;
}

.tcfw-adblock-notice[hidden] {
  display: none;
}

/* ── Login hint for existing PUR subscribers ──────────────────────────── */
/* Visually subordinate — does not compete with the two primary CTAs */
.tcfw-login-hint {
  font-size: 0.75rem;
  line-height: 1.6;
  color: var(--tcfw-muted);
  text-align: center;
  margin-top: 0.8rem;
}

.tcfw-login-hint a {
  color: var(--tcfw-ink);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.tcfw-login-hint a:hover {
  color: var(--tcfw-green);
}

/* ── Legal footer ─────────────────────────────────────────────────────── */
.tcfw-legal {
  font-size: 0.68rem;
  line-height: 1.6;
  color: #888;
  text-align: center;
  border-top: 1px solid var(--tcfw-border);
  padding-top: 0.9rem;
  margin-top: 0.9rem;
}

.tcfw-legal a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.tcfw-legal a:hover {
  color: var(--tcfw-muted);
}
