/* sw-core-child/assets/css/apply.css */

/* ---------------------------------------------------------
   Base typography + colors
--------------------------------------------------------- */
html{
  /* optional: wenn du Rem global leicht skalieren willst */
  /* font-size: 100%; */
}

body{
  background: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-body);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  font-weight: var(--fw-regular);
}

/* Absatz & Standardtexte */
p, li, dt, dd, blockquote, cite{
  font-size: var(--fs-body);
  line-height: var(--lh-body);
}

/* Kleine UI Texte */
small, .small, .wp-caption-text, .comment-metadata, .entry-meta, .post-meta, .gp-post-meta{
  font-size: var(--fs-meta);
  line-height: var(--lh-normal);
  color: var(--color-muted);
}

/* ---------------------------------------------------------
   Global Body Font Enforcement
   (stellt sicher dass NICHTS mehr auf GP Defaults fällt)
--------------------------------------------------------- */
body,
input,
textarea,
select,
button,
nav,
a{
  font-family: var(--font-body);
}

/* Navigation / Menü */
.main-navigation,
.main-navigation a,
.main-navigation .main-nav ul li a,
.menu-toggle{
  font-family: var(--font-body);
  font-weight: 500;
}

/* ---------------------------------------------------------
   Headings H1-H6
--------------------------------------------------------- */
h1, h2, h3, h4, h5, h6{
  color: var(--color-heading);
  font-family: var(--font-heading);
  line-height: var(--lh-heading);
  letter-spacing: var(--ls-tight);
  margin-block: 0 0.6em;
}

h1{ font-size: var(--fs-h1); font-weight: var(--fw-h1); }
h2{ font-size: var(--fs-h2); font-weight: var(--fw-h2); }
h3{ font-size: var(--fs-h3); font-weight: var(--fw-h3); }
h4{ font-size: var(--fs-h4); font-weight: var(--fw-h4); }
h5{ font-size: var(--fs-h5); font-weight: var(--fw-h5); }
h6{ font-size: var(--fs-h6); font-weight: var(--fw-h6); letter-spacing: var(--ls-normal); }

/* Optional: Überschriften enger im Content */
.entry-content h1,
.entry-content h2,
.entry-content h3{
  margin-top: 1.2em;
}

/* ---------------------------------------------------------
   Links (inkl. visited, hover, focus)
--------------------------------------------------------- */
a{
  color: var(--color-link);
  text-decoration: var(--link-decoration);
  text-decoration-thickness: var(--link-decoration-thickness);
  text-underline-offset: var(--link-underline-offset);
  font-weight: 500;
}

a:visited{
  color: var(--color-link-visited);
}

/* Fallback */
a:hover, a:focus{
  color: var(--color-link);
  text-decoration: var(--link-hover-decoration);
}

/* Moderne Browser */
@supports (color: color-mix(in srgb, #000 50%, #fff)){
  a:hover, a:focus{
    color: var(--color-link-hover);
  }
}

a:focus-visible{
  outline: none;
  box-shadow: var(--focus-ring);
  border-radius: var(--radius-1);
}

/* ---------------------------------------------------------
   Strong / Bold Typografie
--------------------------------------------------------- */
strong, b{
  font-weight: 700;
}

/* ---------------------------------------------------------
   Buttons (GP + WP Core + Blocks)
--------------------------------------------------------- */
button,
input[type="button"],
input[type="submit"],
input[type="reset"],
.button,
.wp-block-button__link,
a.wp-block-button__link,
.gp-button,
.generate-back-to-top{
  font-family: var(--btn-font-family);
  font-size: var(--btn-font-size);
  font-weight: var(--btn-font-weight);
  line-height: var(--btn-line-height);

  padding: var(--btn-pad-y) var(--btn-pad-x);
  border-radius: var(--btn-radius);

  background: var(--btn-bg);
  color: var(--btn-text);

  border: var(--btn-border-width) solid var(--btn-border);

  /* Global button shadow (SEO Wunderland style) */
  box-shadow: var(--btn-shadow);

  transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease, transform 160ms ease, box-shadow 160ms ease;
  text-decoration: none;
}

/* Hover */
button:hover,
input[type="button"]:hover,
input[type="submit"]:hover,
input[type="reset"]:hover,
.button:hover,
.wp-block-button__link:hover,
.gp-button:hover,
.generate-back-to-top:hover{
  background: var(--btn-bg-hover);
  color: var(--btn-text-hover);
  border-color: var(--btn-border-hover);
  box-shadow: var(--btn-shadow-hover);
  transform: translateY(-1px);
}

/* Active press */
button:active,
input[type="button"]:active,
input[type="submit"]:active,
input[type="reset"]:active,
.button:active,
.wp-block-button__link:active,
.gp-button:active,
.generate-back-to-top:active{
  transform: translateY(0);
}

/* Focus */
button:focus-visible,
input[type="button"]:focus-visible,
input[type="submit"]:focus-visible,
input[type="reset"]:focus-visible,
.button:focus-visible,
.wp-block-button__link:focus-visible,
.gp-button:focus-visible,
.generate-back-to-top:focus-visible{
  outline: none;
  box-shadow: var(--focus-ring);
}

/* Disabled */
button:disabled,
input[type="submit"]:disabled{
  opacity: 0.6;
  cursor: not-allowed;
}

/* ---------------------------------------------------------
   Widgets
--------------------------------------------------------- */
.widget{
  font-size: var(--fs-widget-text);
  color: var(--color-text);
}

.widget-title{
  font-family: var(--font-heading);
  font-size: var(--fs-widget-title);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-tight);
  line-height: var(--lh-heading);
  color: var(--color-heading);
  margin-bottom: 0.75em;
}

.widget a{
  color: var(--color-link);
}

/* ---------------------------------------------------------
   Forms
--------------------------------------------------------- */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="search"],
input[type="password"],
textarea,
select{
  font-family: var(--font-body);
  font-size: var(--fs-ui);
  line-height: var(--lh-normal);
  color: var(--color-text);

  border: 1px solid var(--color-border);
  border-radius: var(--radius-2);
  padding: 0.65em 0.85em;

  background: var(--color-surface);
}

input:focus-visible,
textarea:focus-visible,
select:focus-visible{
  outline: none;
  border-color: var(--color-primary)!important;
}

/* ---------------------------------------------------------
   Bootstrap
--------------------------------------------------------- */
.bi {
  font-size: 20px;
  color: var(--c-orange)!important;
}

/* ---------------------------------------------------------
   Admin
--------------------------------------------------------- */

.swsh-tech-table{
  width: 100%;
  table-layout: fixed;
}

.swsh-tech-table th,
.swsh-tech-table td{
  vertical-align: middle;
}

.swsh-tech-table .swsh-input{
  width: 100%;
  box-sizing: border-box;
}

.swsh-tech-table .swsh-id{
  max-width: 90px; /* oder 6rem */
}

/* ---------------------------------------------------------
   Heading letter-spacing + opacity overrides
   (aus tokens.css :root herausgelöst – Fix ungültiger Nesting-Syntax)
--------------------------------------------------------- */
h1 { letter-spacing: -0.02em; }
h2 { letter-spacing: -0.015em; }
h3 { letter-spacing: -0.01em; }
h5 { opacity: 0.95; }
h6 { opacity: 0.85; }
