/* Re-Partir — Twenty Twenty-One dark theme recovery */

@import url("https://fonts.googleapis.com/css2?family=Source+Serif+Pro:ital,wght@0,300;0,400;0,600;1,400&display=swap");

:root {
  --global--color-background: #3d3d3d;
  --global--color-primary: #fff;
  --global--color-secondary: #fff;
  --global--color-white: #fff;
  --global--color-white-90: rgba(255, 255, 255, 0.9);
  --global--color-white-50: rgba(255, 255, 255, 0.5);
  --global--color-dark-gray: #28303d;
  --global--font-primary: "Source Serif Pro", Georgia, "Times New Roman", serif;
  --global--font-secondary: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
  --global--font-size-base: 1.25rem;
  --global--font-size-sm: 1.125rem;
  --global--font-size-xl: 2.25rem;
  --global--font-size-xxl: 4rem;
  --global--line-height-body: 1.7;
  --global--line-height-heading: 1.3;
  --global--spacing-unit: 20px;
  --global--spacing-horizontal: 25px;
  --global--spacing-vertical: 30px;
  --content-width: min(610px, calc(100% - 2 * var(--global--spacing-horizontal)));
  --wide-width: min(1240px, calc(100% - 2 * var(--global--spacing-horizontal)));
  --button--color-background: #fff;
  --button--color-text: var(--global--color-dark-gray);
  --button--color-text-hover: #fff;
  --form--border-color: rgba(255, 255, 255, 0.35);
  --form--border-width: 1px;
  --form--spacing-unit: 12px;
  --form--font-size: var(--global--font-size-sm);
  --form--label-weight: 500;
}

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

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  color: var(--global--color-primary);
  background-color: var(--global--color-background);
  font-family: var(--global--font-secondary);
  font-size: var(--global--font-size-base);
  line-height: var(--global--line-height-body);
  -webkit-font-smoothing: antialiased;
}

body.custom-background,
body.is-dark-theme {
  background-color: var(--global--color-background);
  color: var(--global--color-primary);
}

img {
  max-width: 100%;
  height: auto;
}

img.wp-smiley,
img.emoji {
  display: inline !important;
  border: none !important;
  box-shadow: none !important;
  height: 1em !important;
  width: 1em !important;
  margin: 0 0.07em !important;
  vertical-align: -0.1em !important;
  background: none !important;
  padding: 0 !important;
}

a {
  color: var(--global--color-primary);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.15em;
}

a:hover,
a:focus {
  color: var(--global--color-white-50);
}

/* ── Accessibility ── */

.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  word-wrap: normal !important;
}

.screen-reader-text:focus {
  background-color: var(--global--color-background);
  border-radius: 3px;
  box-shadow: 0 0 2px 2px rgba(255, 255, 255, 0.6);
  clip: auto !important;
  clip-path: none;
  color: var(--global--color-primary);
  display: block;
  font-size: 0.875rem;
  font-weight: 700;
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
}

/* ── Layout ── */

.site {
  min-height: 100vh;
}

.site-header,
.site-main,
.site-footer {
  padding-top: var(--global--spacing-vertical);
  padding-bottom: var(--global--spacing-vertical);
  margin-left: auto;
  margin-right: auto;
  max-width: var(--wide-width);
  padding-left: var(--global--spacing-horizontal);
  padding-right: var(--global--spacing-horizontal);
}

.site-header {
  padding-top: calc(0.75 * var(--global--spacing-vertical));
  padding-bottom: calc(2 * var(--global--spacing-vertical));
}

.site-branding {
  max-width: var(--content-width);
}

.site-title {
  color: var(--global--color-primary);
  font-family: var(--global--font-primary);
  font-size: clamp(2.5rem, 8vw, var(--global--font-size-xxl));
  font-weight: 300;
  line-height: var(--global--line-height-heading);
  margin: 0 0 calc(var(--global--spacing-vertical) / 6);
}

.site-title a {
  color: inherit;
  text-decoration: none;
  font-weight: 300;
}

.site-title a:hover,
.site-title a:focus {
  color: var(--global--color-white-50);
}

.site-description {
  color: var(--global--color-secondary);
  font-family: var(--global--font-secondary);
  font-size: var(--global--font-size-sm);
  line-height: 1.4;
  margin: 0;
}

.site-content,
.content-area,
.site-main {
  max-width: var(--content-width);
  margin-left: auto;
  margin-right: auto;
}

.entry-content > * {
  margin-top: var(--global--spacing-vertical);
  margin-bottom: var(--global--spacing-vertical);
}

.entry-content > *:first-child {
  margin-top: 0;
}

.entry-content > *:last-child {
  margin-bottom: 0;
}

.entry-content p {
  margin: 0 0 1em;
}

.entry-content strong {
  font-weight: 600;
}

.entry-content em {
  font-style: italic;
}

.site-footer {
  padding-top: calc(2 * var(--global--spacing-vertical));
  padding-bottom: calc(2 * var(--global--spacing-vertical));
}

.site-info {
  font-size: var(--global--font-size-sm);
  color: var(--global--color-white-50);
}

/* ── Gutenberg blocks ── */

.wp-block-columns {
  display: flex;
  flex-wrap: wrap;
  gap: var(--global--spacing-vertical);
}

.wp-block-column {
  flex: 1 1 100%;
  min-width: 0;
}

pre.wp-block-preformatted {
  background: transparent;
  border: 0;
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  margin: 0;
  overflow: visible;
  padding: 0;
  white-space: normal;
}

/* ── Newsletter form (The Newsletter Plugin) ── */

.tnp-subscription {
  margin-top: calc(2 * var(--global--spacing-vertical));
}

.tnp-field {
  margin-bottom: var(--global--spacing-unit);
}

.tnp-field label {
  display: block;
  font-size: var(--form--font-size);
  font-weight: var(--form--label-weight);
  margin-bottom: calc(var(--global--spacing-vertical) / 3);
}

.tnp-field input[type="email"],
.tnp-field select {
  width: 100%;
  max-width: 100%;
  padding: var(--form--spacing-unit);
  font-family: var(--global--font-secondary);
  font-size: var(--form--font-size);
  line-height: var(--global--line-height-body);
  color: var(--global--color-dark-gray);
  background: var(--global--color-white-90);
  border: var(--form--border-width) solid var(--form--border-color);
  border-radius: 0;
}

.tnp-field select {
  appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' fill='%2328303d'><polygon points='0,0 10,0 5,5'/></svg>");
  background-repeat: no-repeat;
  background-position: right var(--form--spacing-unit) top 60%;
  padding-right: calc(3 * var(--form--spacing-unit));
}

.tnp-field input[type="email"]:focus,
.tnp-field select:focus {
  outline: 2px dotted var(--global--color-primary);
  outline-offset: 2px;
}

.tnp-privacy-field {
  margin-top: 30px;
}

.tnp-privacy-field label {
  display: flex;
  align-items: flex-start;
  gap: 0.5em;
  font-weight: 400;
  cursor: pointer;
}

.tnp-privacy-field input[type="checkbox"] {
  width: 20px;
  height: 20px;
  margin-top: 0.15em;
  flex-shrink: 0;
  accent-color: var(--global--color-primary);
}

.tnp-privacy-field a {
  color: inherit;
}

.tnp-field-button {
  margin-top: 30px;
}

.tnp-submit,
input[type="submit"] {
  display: inline-block;
  padding: calc(0.667 * var(--global--spacing-unit)) calc(1.333 * var(--global--spacing-unit));
  font-family: var(--global--font-secondary);
  font-size: var(--form--font-size);
  font-weight: 500;
  line-height: var(--global--line-height-body);
  color: var(--button--color-text);
  background: var(--button--color-background);
  border: var(--form--border-width) solid transparent;
  border-radius: 0;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}

.tnp-submit:hover,
.tnp-submit:focus,
input[type="submit"]:hover,
input[type="submit"]:focus {
  color: var(--button--color-text-hover);
  background: transparent;
  border-color: var(--button--color-background);
  outline: none;
}

/* ── Player page ── */

body.player-page {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  text-align: center;
  padding: 2rem var(--global--spacing-horizontal);
}

body.player-page header {
  font-family: var(--global--font-primary);
  font-size: clamp(1.5rem, 4vw, 2rem);
  font-weight: 300;
  letter-spacing: 0.04em;
  margin-bottom: 3rem;
  text-transform: uppercase;
}

body.player-page .selection {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  width: min(420px, 100%);
}

body.player-page .audio-select a {
  display: block;
  padding: 1rem 1.5rem;
  font-size: var(--global--font-size-sm);
  text-decoration: none;
  border: 1px solid rgba(255, 255, 255, 0.35);
  transition: background 0.15s ease, border-color 0.15s ease;
}

body.player-page .audio-select a:hover,
body.player-page .audio-select a:focus {
  background: rgba(255, 255, 255, 0.08);
  border-color: var(--global--color-primary);
  color: var(--global--color-primary);
}

@media (min-width: 482px) {
  .site-header {
    padding-bottom: calc(3 * var(--global--spacing-vertical));
  }
}

@media (max-width: 481px) {
  :root {
    --global--font-size-base: 1.125rem;
    --global--spacing-horizontal: 20px;
  }
}
