/* =========================
   Schmerzfrei Designsystem (Astra Edition)
   ========================= */

/* ---- Tokens ---- */
:root{
  --ds-primary:#0F6D6A;
  --ds-secondary:#0B1F2A;
  --ds-accent-1:#F4C34F;
  --ds-accent-2:#E86B5A;

  --ds-neutral-0:#FFF9EF;
  --ds-neutral-50:#F7E7D1;
  --ds-neutral-100:#EBD6BF;
  --ds-neutral-300:#CBB9A7;
  --ds-neutral-700:#3B3B3B;
  --ds-neutral-900:#121212;

  --ds-success:#1F9D55;
  --ds-warning:#D97706;
  --ds-error:#DC2626;
  --ds-info:#2563EB;

  --ds-font-head:"Plus Jakarta Sans",system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  --ds-font-body:"Inter",system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;

  --ds-h1:clamp(2.125rem,3vw,2.75rem);
  --ds-h2:clamp(1.625rem,2.4vw,2rem);
  --ds-h3:clamp(1.25rem,1.6vw,1.5rem);
  --ds-h4:1.125rem;
  --ds-body:1rem;
  --ds-small:.875rem;

  --ds-4:4px; --ds-8:8px; --ds-12:12px; --ds-16:16px;
  --ds-24:24px; --ds-32:32px; --ds-48:48px; --ds-64:64px;

  --ds-r-s:10px; --ds-r-m:16px; --ds-r-l:24px;

  --ds-shadow-s:0 1px 2px rgba(0,0,0,.06);
  --ds-shadow-m:0 8px 24px rgba(0,0,0,.10);
  --ds-shadow-l:0 16px 40px rgba(0,0,0,.14);

  --ds-focus:0 0 0 2px var(--ds-info), 0 0 0 5px rgba(37,99,235,.25);

  /* overridable by plugin inline style */
  --ds-btn-primary-bg:var(--ds-primary);
  --ds-btn-primary-fg:#fff;
  --ds-btn-primary-hover:#0C5B58;
  --ds-btn-primary-active:#0A4A48;
}

/* ---- Base ---- */
html,body{background:var(--ds-neutral-0);}
body{
  font-family:var(--ds-font-body);
  font-size:var(--ds-body);
  line-height:1.6;
  color:var(--ds-neutral-700);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

h1,h2,h3,h4{
  font-family:var(--ds-font-head);
  color:var(--ds-secondary);
  letter-spacing:-0.01em;
  margin:0 0 var(--ds-12);
}
h1{font-size:var(--ds-h1);line-height:1.15;font-weight:700;}
h2{font-size:var(--ds-h2);line-height:1.2;font-weight:700;}
h3{font-size:var(--ds-h3);line-height:1.25;font-weight:700;}
h4{font-size:var(--ds-h4);line-height:1.35;font-weight:600;}
p{margin:0 0 var(--ds-16);}
small,.ds-small{font-size:var(--ds-small);line-height:1.55;color:rgba(59,59,59,.85);}

/* Links */
a{color:var(--ds-primary);text-underline-offset:3px;}
a:hover{color:#0C5B58;text-decoration:underline;}
a:visited{color:#0E5A63;}

/* ==================================
   Astra FORCE OVERRIDES (global)
   ==================================
   Ziel: Astra-Buttons/Forms/Links zuverlässig auf DS mappen.
*/
:root .ast-container,
:root .site-content{
  /* wirkt sanft gegen Astra default whites */
}

/* Astra Headings & body in content */
.ast-single-post .entry-content,
.ast-page-builder-template .entry-content,
.ast-container .entry-content,
.ast-container{
  color:var(--ds-neutral-700);
  font-family:var(--ds-font-body);
}

/* Make sections/cards readable on cream bg */
.ast-container .entry-content .wp-block-group,
.ast-container .entry-content .wp-block-columns{
  /* optional: keep as is */
}

/* ---- Buttons: map Astra + WP core + common forms ---- */
.ds-btn,
button.ds-btn,
.wp-block-button__link.ds-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:var(--ds-8);
  height:48px;
  padding:0 18px;
  border-radius:999px;
  font-family:var(--ds-font-head);
  font-weight:700;
  font-size:16px;
  line-height:1;
  border:1px solid transparent;
  cursor:pointer;
  transition:transform .06s ease,background .15s ease,border-color .15s ease,box-shadow .15s ease,color .15s ease;
  text-decoration:none !important;
}
.ds-btn:focus{outline:none;box-shadow:var(--ds-focus);}
.ds-btn:active{transform:translateY(1px);}

.ds-btn.is-primary{background:var(--ds-btn-primary-bg);color:var(--ds-btn-primary-fg);box-shadow:var(--ds-shadow-s);}
.ds-btn.is-primary:hover{background:var(--ds-btn-primary-hover);}
.ds-btn.is-primary:active{background:var(--ds-btn-primary-active);}

.ds-btn.is-secondary{background:transparent;color:var(--ds-primary);border-color:var(--ds-primary);}
.ds-btn.is-secondary:hover{background:#E7F3F2;}

.ds-btn.is-ghost{background:transparent;color:var(--ds-primary);border-color:transparent;}
.ds-btn.is-ghost:hover{background:rgba(15,109,106,.08);}

.ds-btn:disabled,.ds-btn.is-disabled{
  cursor:not-allowed;
  background:var(--ds-neutral-300);
  border-color:var(--ds-neutral-300);
  color:rgba(255,249,239,.85);
  box-shadow:none;
}

/* FORCE: Astra buttons + submit buttons adopt DS primary by default */
.ast-button,
.button,
button,
input[type="button"],
input[type="submit"],
input[type="reset"],
.wp-block-button__link{
  border-radius:999px !important;
  font-family:var(--ds-font-head) !important;
  font-weight:700 !important;
  min-height:48px;
  padding:0 18px !important;
  border:1px solid transparent !important;
  transition:background .15s ease, box-shadow .15s ease, transform .06s ease, color .15s ease !important;
}

/* Primary look for Astra buttons */
.ast-button,
input[type="submit"],
.wp-block-button__link{
  background:var(--ds-btn-primary-bg) !important;
  color:var(--ds-btn-primary-fg) !important;
  box-shadow:var(--ds-shadow-s) !important;
}
.ast-button:hover,
input[type="submit"]:hover,
.wp-block-button__link:hover{
  background:var(--ds-btn-primary-hover) !important;
}
.ast-button:active,
input[type="submit"]:active,
.wp-block-button__link:active{
  background:var(--ds-btn-primary-active) !important;
  transform:translateY(1px);
}

/* Focus */
.ast-button:focus,
button:focus,
input:focus,
select:focus,
textarea:focus,
.wp-block-button__link:focus{
  outline:none !important;
  box-shadow:var(--ds-focus) !important;
}

/* Secondary button style via class (Astra supports extra classes on buttons/links) */
.is-style-outline .wp-block-button__link,
.ast-button.is-secondary,
a.ast-button.is-secondary,
.wp-block-button__link.is-secondary{
  background:transparent !important;
  color:var(--ds-primary) !important;
  border-color:var(--ds-primary) !important;
  box-shadow:none !important;
}
.is-style-outline .wp-block-button__link:hover,
.ast-button.is-secondary:hover,
a.ast-button.is-secondary:hover,
.wp-block-button__link.is-secondary:hover{
  background:#E7F3F2 !important;
}

/* ---- Forms ---- */
input[type="text"], input[type="email"], input[type="tel"],
input[type="url"], input[type="password"], input[type="search"],
select, textarea{
  border-radius:var(--ds-r-s) !important;
  border:1px solid var(--ds-neutral-100) !important;
  background:#fff !important;
  color:var(--ds-neutral-900) !important;
  min-height:44px;
  padding:10px 12px !important;
}

/* Improve placeholder */
::placeholder{color:rgba(18,18,18,.45);}

/* ---- Cards / UI blocks ---- */
.ds-card{
  background:#fff;
  border:1px solid rgba(235,214,191,.85);
  border-radius:var(--ds-r-m);
  padding:var(--ds-24);
  box-shadow:var(--ds-shadow-s);
}
.ds-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:6px 10px;
  border-radius:999px;
  font-size:13px;
  font-weight:600;
  border:1px solid rgba(235,214,191,.9);
  background:rgba(247,231,209,.6);
  color:var(--ds-secondary);
}
.ds-alert{
  border-radius:var(--ds-r-m);
  padding:14px 16px;
  border:1px solid rgba(235,214,191,.9);
  background:rgba(255,255,255,.8);
}

/* ---- Accordion (details/summary) ---- */
.ds-accordion{
  border:1px solid rgba(235,214,191,.9);
  border-radius:var(--ds-r-m);
  background:rgba(255,255,255,.75);
  overflow:hidden;
}
.ds-accordion + .ds-accordion{margin-top:var(--ds-12);}
.ds-accordion summary{
  list-style:none;
  cursor:pointer;
  padding:14px 16px;
  font-family:var(--ds-font-head);
  font-weight:700;
  color:var(--ds-secondary);
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.ds-accordion summary::-webkit-details-marker{display:none;}
.ds-accordion .ds-acc-body{padding:0 16px 16px 16px;}

/* Ampel */
.ds-ampel{display:grid;gap:10px;margin:var(--ds-16) 0;}
.ds-ampel-row{
  display:flex;gap:10px;align-items:flex-start;
  padding:10px 12px;border-radius:var(--ds-r-s);
  background:rgba(255,255,255,.7);
  border:1px solid rgba(235,214,191,.9);
}
.ds-dot{width:10px;height:10px;border-radius:999px;margin-top:6px;flex:0 0 auto;}
.ds-dot.is-green{background:var(--ds-success);}
.ds-dot.is-yellow{background:var(--ds-warning);}
.ds-dot.is-red{background:var(--ds-error);}
.ds-ampel-row strong{color:var(--ds-secondary);}

@media (prefers-reduced-motion: reduce){
  *{transition:none !important;scroll-behavior:auto !important;}
}