/*
Theme Name: FEISTOS
Description: Übertragung der bestehenden FEISTOS Website nach WordPress.
Version: 1.0.0
Author: 50NRTH
Text Domain: feistos
Requires at least: 6.5
Requires PHP: 7.4
*/

    :root {
      --red: #cc0033;
      --red-deep: #7c001f;
      --black: #000000;
      --night: #080b10;
      --panel: #10151d;
      --panel-soft: #151b24;
      --line: rgba(255, 255, 255, 0.2);
      --text: #f5f7fb;
      --muted: #c7ceda;
      --soft: #8e98a8;
      --max: 1180px;
      --radius: 8px;
      --shadow: 0 22px 60px rgba(0, 0, 0, 0.34);
    }

    * {
      box-sizing: border-box;
    }

    html {
      scroll-behavior: smooth;
      background: var(--night);
      overflow-x: hidden;
    }

    body {
      margin: 0;
      color: var(--text);
      font-family: "Outfit", Arial, sans-serif;
      font-size: 16px;
      line-height: 1.55;
      background:
      linear-gradient(180deg, #05070a 0%, #0a0e14 34%, #111821 100%);
      overflow-x: hidden;
	  letter-spacing: 0.03em;
    }

    body::before {
      content: "";
      position: fixed;
      inset: 0;
      pointer-events: none;
      opacity: 0.05;
      background-image: linear-gradient(rgba(255,255,255,0.58) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.58) 1px, transparent 1px);
      background-size: 28px 28px;
      z-index: -1;
    }

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

    a {
      color: inherit;
    }

    .container {
      width: min(var(--max), calc(100% - 32px));
      margin: 0 auto;
    }

    .topbar {
      position: sticky;
      top: 0;
      z-index: 40;
      background: rgba(3, 5, 8, 0.94);
      backdrop-filter: blur(14px);
      border-bottom: 1px solid #8c8c8c;
    }

    .topbar-inner {
      min-height: 76px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 24px;
    }

    .brand {
      display: inline-flex;
      align-items: center;
      flex: 0 0 auto;
      text-decoration: none;
    }

    .brand img {
      display: block;
      width: 174px;
      height: auto;
    }

    .menu-toggle {
      display: none;
      width: 42px;
      height: 42px;
      padding: 0;
      align-items: center;
      justify-content: center;
      border: 1px solid rgba(255,255,255,0.25);
      border-radius: var(--radius);
      background: rgba(255,255,255,0.06);
      color: #fff;
      cursor: pointer;
    }

    .menu-toggle span,
    .menu-toggle::before,
    .menu-toggle::after {
      content: "";
      display: block;
      width: 18px;
      height: 2px;
      background: currentColor;
      position: absolute;
    }

    .menu-toggle {
      position: relative;
    }

    .menu-toggle::before {
      transform: translateY(-6px);
    }

    .menu-toggle::after {
      transform: translateY(6px);
    }

    .nav {
      display: flex;
      align-items: center;
      gap: 8px;
      flex-wrap: wrap;
      justify-content: flex-end;
    }

    .nav a {
      display: inline-flex;
      align-items: center;
      min-height: 38px;
      padding: 0 12px;
      border-radius: var(--radius);
      color: #f0f3f8;
      text-decoration: none;
      text-transform: uppercase;
      font-family: "Tomorrow", "Outfit", Arial, sans-serif;
      font-size: 0.78rem;
      font-weight: 700;
      letter-spacing: 0.03em;
      transition: background 180ms ease, color 180ms ease;
    }

    .nav a:hover,
    .nav a:focus-visible {
      background: var(--red-deep);
      color: #fff;
      outline: 0;
    }

    .hero {
      padding: 18px 0 46px;
    }

    .hero-media {
      margin: 0;
      width: 100%;
      overflow: hidden;
      border-radius: 0 0 var(--radius) var(--radius);
      box-shadow: var(--shadow);
    }

    .hero-media img {
      width: 100%;
      height: auto;
      display: block;
      object-fit: contain;
      object-position: center;
    }

    main section {
      padding: 46px 0;
      scroll-margin-top: 96px;
    }

    .section-panel {
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background:
        radial-gradient(circle at 0% 100%, rgba(204, 0, 51, 0.2) 0%, rgba(204, 0, 51, 0.08) 24%, rgba(204, 0, 51, 0) 48%),
        linear-gradient(110deg, #151922 0%, #10151d 42%, #0c1118 100%);
      box-shadow: var(--shadow);
      overflow: hidden;
    }

    .intro {
      padding: clamp(22px, 4vw, 44px);
    }

    .eyebrow {
      margin: 0 0 10px;
      color: var(--muted);
      text-transform: uppercase;
      font-size: 0.83rem;
      font-weight: 700;
      letter-spacing: 0.03em;
    }

    h1,
    h2,
    h3 {
      margin: 0;
      font-family: "Tomorrow", "Outfit", Arial, sans-serif;
      font-weight: 700;
      line-height: 1.08;
      letter-spacing: 0.02em;
      text-transform: uppercase;
      text-wrap: balance;
    }

    h1 {
      max-width: 850px;
      font-size: clamp(1.8rem, 4vw, 3.6rem);
    }

    .h-line {
      display: inline;
    }

    h2 {
      font-size: clamp(1.7rem, 3.8vw, 3.1rem);
    }

    h3 {
      font-size: clamp(1.05rem, 2vw, 1.35rem);
    }

    .red {
      color: var(--red);
    }

    .intro-copy {
      max-width: 850px;
      margin: 16px 0 0;
      color: #e0e5ef;
      font-size: clamp(1rem, 1.35vw, 1.15rem);
      overflow-wrap: anywhere;
    }

    .intro-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
      margin-top: 24px;
    }

    .feature-row {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 16px;
      margin-top: 30px;
    }

    .feature {
      display: grid;
      grid-template-columns: 42px 1fr;
      align-items: start;
      gap: 12px;
      min-width: 0;
    }

    .feature img {
      width: 34px;
      height: 34px;
      object-fit: contain;
    }

    .feature strong {
      display: block;
      font-family: "Tomorrow", "Outfit", Arial, sans-serif;
      text-transform: uppercase;
      color: #fff;
      font-size: 0.94rem;
      line-height: 1.2;
      letter-spacing: 0.03em;
    }

    .feature span {
      display: block;
      margin-top: 3px;
      color: var(--muted);
      font-size: 0.93rem;
      line-height: 1.35;
    }

    .section-head {
      margin-bottom: 22px;
    }

    .section-head p {
      max-width: 920px;
      margin: 12px 0 0;
      color: var(--muted);
      overflow-wrap: anywhere;
    }

    .slider-shell {
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: var(--panel);
      box-shadow: var(--shadow);
      overflow: hidden;
    }

    .slider-viewport {
      overflow: hidden;
    }

    .slider-track {
      display: flex;
      transition: transform 420ms ease;
      will-change: transform;
    }

    .slide {
      min-width: 100%;
      margin: 0;
      display: grid;
      grid-template-columns: minmax(0, 1fr) 280px;
      background: #0b1017;
    }

    .slide-visual {
      min-width: 0;
      background: #070a0e;
    }

    .slide-visual img {
      display: block;
      width: 100%;
      height: 100%;
      aspect-ratio: 16 / 8;
      object-fit: cover;
    }

    .slide-copy {
      padding: 26px;
      display: flex;
      flex-direction: column;
      justify-content: flex-end;
      gap: 14px;
      border-left: 1px solid var(--line);
      background:
        linear-gradient(180deg, rgba(204,0,51,0.14), rgba(255,255,255,0.03)),
        var(--panel-soft);
    }

    .slide-copy p {
      margin: 0;
      color: var(--muted);
      font-size: 0.96rem;
      overflow-wrap: anywhere;
    }

    .sortiment-slider .slide {
      grid-template-columns: minmax(0, 1fr);
      background: #0b1017;
    }

    .sortiment-slider .slide {
      position: relative;
    }

    .sortiment-slider .slide-visual {
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .sortiment-slider .slide-visual img {
      width: 100%;
      height: auto;
      aspect-ratio: auto;
      object-fit: contain;
    }

    .sortiment-slider .slide-copy {
      display: none;
    }

    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 42px;
      width: fit-content;
      padding: 0 18px;
      border-radius: var(--radius);
      border: 1px solid transparent;
      color: #fff;
      text-decoration: none;
      text-transform: uppercase;
      font-family: "Tomorrow", "Outfit", Arial, sans-serif;
      font-size: 0.78rem;
      font-weight: 700;
      letter-spacing: 0.03em;
      cursor: pointer;
      transition: transform 180ms ease, background 180ms ease, border-color 180ms ease;
    }

    .btn:hover,
    .btn:focus-visible {
      transform: translateY(-1px);
      outline: 0;
    }

    .btn-primary {
      background: var(--red);
      box-shadow: 0 12px 24px rgba(204,0,51,0.34);
    }

    .btn-primary:hover,
    .btn-primary:focus-visible {
      background: #e3003a;
    }

    .btn-dark {
      background: #000;
      border-color: rgba(255,255,255,0.18);
    }

    .btn-light {
      color: #10151d;
      background: #f4f6fa;
    }

    .slider-controls {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      min-height: 64px;
      padding: 10px 14px;
      border-top: 1px solid var(--line);
      background: rgba(255,255,255,0.035);
    }

    .slider-buttons {
      display: flex;
      gap: 8px;
    }

    .icon-button {
      width: 42px;
      height: 42px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: 0;
      border: 1px solid rgba(255,255,255,0.25);
      border-radius: var(--radius);
      background: rgba(255,255,255,0.06);
      color: #fff;
      cursor: pointer;
    }

    .icon-button img {
      width: 18px;
      height: 18px;
      object-fit: contain;
      filter: brightness(0) invert(1);
    }

    .slider-dots {
      display: flex;
      gap: 7px;
      flex-wrap: wrap;
      justify-content: flex-end;
    }

    .slider-dots button {
      width: 10px;
      height: 10px;
      padding: 0;
      border: 0;
      border-radius: 50%;
      background: rgba(255,255,255,0.42);
      cursor: pointer;
    }

    .slider-dots button[aria-current="true"] {
      background: var(--red);
      box-shadow: 0 0 0 4px rgba(204,0,51,0.22);
    }

    .channel {
      padding: clamp(24px, 4vw, 46px);
      text-align: center;
      background:
        radial-gradient(circle at 38% 50%, rgba(204, 0, 51, 0.42) 0%, rgba(204, 0, 51, 0.2) 25%, rgba(204, 0, 51, 0) 56%),
        linear-gradient(90deg, #10151d 0%, #131922 48%, #080b10 100%);
    }

    .channel p {
      max-width: 760px;
      margin: 12px auto 0;
      color: var(--muted);
      overflow-wrap: anywhere;
    }

    .actions {
      display: flex;
      justify-content: center;
      flex-wrap: wrap;
      gap: 12px;
      margin-top: 24px;
    }

    .service {
      display: grid;
      grid-template-columns: minmax(0, 1.05fr) minmax(280px, 0.95fr);
      gap: 10px;
      align-items: end;
      padding: clamp(24px, 4vw, 46px);
    }

    .service-copy {
      align-self: center;
    }

    .service-copy p {
      max-width: 610px;
      color: var(--muted);
      overflow-wrap: anywhere;
    }

    .phone {
      display: inline-block;
      margin: 16px 0 4px;
      color: #fff;
      font-family: "Tomorrow", "Outfit", Arial, sans-serif;
      font-size: clamp(1.4rem, 3vw, 2.3rem);
      font-weight: 800;
      text-decoration: none;
      line-height: 1;
	  letter-spacing: 0.06em;
    }

    .email {
      color: var(--red);
      font-weight: 700;
      text-decoration: none;
    }

    .service-image {
      align-self: stretch;
      display: flex;
      align-items: flex-end;
      justify-content: flex-end;
      min-height: 340px;
      overflow: hidden;
    }

    .service-image img {
      width: min(100%, 560px);
      max-height: 520px;
      object-fit: contain;
      object-position: bottom right;
      display: block;
    }

    .service-features {
      grid-column: 1 / -1;
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 12px;
      margin-top: 14px;
    }

    .service-tile {
      display: grid;
      grid-template-columns: 38px 1fr;
      gap: 10px;
      align-items: start;
      padding: 14px;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: rgba(0,0,0,0.18);
    }

    .service-tile img {
      width: 30px;
      height: 30px;
      object-fit: contain;
    }

    .service-tile strong {
      display: block;
      font-family: "Tomorrow", "Outfit", Arial, sans-serif;
      text-transform: uppercase;
      font-size: 0.88rem;
      line-height: 1.15;
    }

    .service-tile span {
      display: block;
      margin-top: 3px;
      color: var(--muted);
      font-size: 0.9rem;
      line-height: 1.3;
    }

    .faq-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
    }

    details {
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: rgba(255,255,255,0.035);
      overflow: hidden;
    }

    summary {
      min-height: 56px;
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 14px 16px;
      cursor: pointer;
      color: #fff;
      font-weight: 700;
      list-style: none;
    }

    summary::-webkit-details-marker {
      display: none;
    }

    summary::before {
      content: "+";
      display: inline-flex;
      align-items: center;
      justify-content: center;
      flex: 0 0 auto;
      width: 22px;
      height: 22px;
      border-radius: 50%;
      color: #fff;
      background: var(--red);
      font-weight: 800;
      line-height: 1;
    }

    details[open] summary::before {
      content: "-";
    }

    details p {
      margin: 0;
      padding: 0 16px 18px 48px;
      color: var(--muted);
      overflow-wrap: anywhere;
    }

    .about {
      padding: clamp(24px, 4vw, 42px);
    }

    .about p {
      max-width: 1000px;
      color: var(--muted);
      overflow-wrap: anywhere;
    }

    footer {
      padding: 28px 16px 42px;
      color: var(--soft);
      text-align: center;
      font-size: 0.92rem;
    }

    footer a {
      color: #fff;
    }

    .reveal {
      opacity: 0;
      transform: translateY(16px);
      transition: opacity 520ms ease, transform 520ms ease;
    }

    .reveal.is-visible {
      opacity: 1;
      transform: translateY(0);
    }

    @media (max-width: 960px) {
      .topbar-inner {
        min-height: 68px;
      }

      .menu-toggle {
        display: inline-flex;
      }

      .nav {
        position: absolute;
        left: 16px;
        right: 16px;
        top: calc(100% + 8px);
        display: none;
        padding: 12px;
        border: 1px solid var(--line);
        border-radius: var(--radius);
        background: rgba(5, 8, 12, 0.98);
        box-shadow: var(--shadow);
      }

      .topbar.nav-open .nav {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .nav a {
        justify-content: center;
      }

      .feature-row,
      .service-features {
        grid-template-columns: 1fr;
      }

      .slide {
        grid-template-columns: 1fr;
      }

      .slide-copy {
        border-left: 0;
        border-top: 1px solid var(--line);
      }

      .service {
        grid-template-columns: 1fr;
      }

      .service-image {
        min-height: 280px;
        justify-content: center;
      }

      .faq-grid {
        grid-template-columns: 1fr;
      }
    }

    @media (max-width: 620px) {
      .container {
        width: min(100% - 22px, var(--max));
      }

      .brand img {
        width: 142px;
      }

      main section {
        padding: 32px 0;
      }

      .hero {
        padding-bottom: 32px;
      }

      .hero-media img {
        aspect-ratio: auto;
      }

      .topbar.nav-open .nav {
        grid-template-columns: 1fr;
      }

      .intro,
      .channel,
      .service,
      .about {
        padding: 20px;
      }

      h1 {
        font-size: clamp(1.55rem, 6.6vw, 1.9rem);
        line-height: 1.14;
        overflow-wrap: normal;
      }

      .h-line {
        display: block;
      }

      h2 {
        font-size: clamp(1.3rem, 6.2vw, 1.78rem);
        overflow-wrap: anywhere;
        text-wrap: auto;
      }

      .section-head h2 .red {
        display: block;
      }

      .feature {
        grid-template-columns: 32px minmax(0, 1fr);
      }

      .feature strong {
        font-size: 0.8rem;
        overflow-wrap: anywhere;
      }

      .feature span {
        font-size: 0.86rem;
        overflow-wrap: anywhere;
      }

      .slide-copy {
        padding: 20px;
      }

      .slider-controls {
        align-items: flex-start;
        flex-direction: column;
      }

      .slider-dots {
        justify-content: flex-start;
      }

      .phone {
        font-size: clamp(1.55rem, 9vw, 2.35rem);
      }
    }
	
	.cookie-banner {
	  position: fixed;
	  left: 16px;
	  right: 16px;
	  bottom: 16px;
	  z-index: 1000;
	  width: min(760px, calc(100% - 32px));
	  margin: 0 auto;
	  padding: 22px;
	  border: 1px solid rgba(255, 255, 255, 0.2);
	  border-radius: 8px;
	  color: #f5f7fb;
	  background: #10151d;
	  box-shadow: 0 22px 60px rgba(0, 0, 0, 0.6);
	}

	.cookie-banner[hidden] {
	  display: none;
	}

	.cookie-banner h2 {
	  margin: 0 0 10px;
	  color: #fff;
	  font-family: "Tomorrow", "Outfit", Arial, sans-serif;
	  font-size: 1.15rem;
	  text-transform: uppercase;
	}

	.cookie-banner p {
	  margin: 0;
	  color: #c7ceda;
	  font-size: 0.95rem;
	}

	.cookie-banner a {
	  color: #fff;
	}

	.cookie-actions {
	  display: flex;
	  flex-wrap: wrap;
	  gap: 10px;
	  margin-top: 18px;
	}

	.cookie-button {
	  min-height: 42px;
	  padding: 0 16px;
	  border: 1px solid rgba(255, 255, 255, 0.28);
	  border-radius: 8px;
	  color: #fff;
	  background: transparent;
	  font-family: "Tomorrow", "Outfit", Arial, sans-serif;
	  font-size: 0.76rem;
	  font-weight: 700;
	  text-transform: uppercase;
	  cursor: pointer;
	}

	.cookie-button-primary {
	  border-color: #cc0033;
	  background: #cc0033;
	}

	.cookie-button:hover,
	.cookie-button:focus-visible {
	  border-color: #fff;
	  outline: none;
	}

	.cookie-settings-button {
	  padding: 0;
	  border: 0;
	  color: #fff;
	  background: transparent;
	  font: inherit;
	  text-decoration: underline;
	  cursor: pointer;
	}

	@media (max-width: 620px) {
	  .cookie-banner {
		left: 10px;
		right: 10px;
		bottom: 10px;
		width: calc(100% - 20px);
		padding: 18px;
	  }

	  .cookie-actions {
		display: grid;
		grid-template-columns: 1fr;
	  }

	  .cookie-button {
		width: 100%;
	  }
	}
  
/* WordPress integration */
body.admin-bar .topbar{top:32px} @media(max-width:782px){body.admin-bar .topbar{top:46px}}
#site-nav ul{display:contents;list-style:none;margin:0;padding:0} #site-nav li{display:contents}
.feistos-page{padding:46px 0;min-height:60vh}.feistos-page h1{margin-bottom:30px}.feistos-page h2,.feistos-page h3{margin-top:1.5em;margin-bottom:.6em}.feistos-page a{color:#fff;text-decoration:underline}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}

.feistos-page .card{padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);margin:20px 0}.feistos-page .lead{color:var(--muted)}.feistos-page section{padding:20px 0}.feistos-page li{margin-bottom:.5em}
