* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  background: #0b0b0f;
  color: #f1e6c8;
  font-family: Georgia, serif;
  overflow-x: hidden;
}

body.modal-open {
  overflow: hidden;
}

body.start-message-pending {
  overflow: hidden;
}

body.start-message-pending > *:not(#loader) {
  visibility: hidden;
}

a {
  text-decoration: none;
}

/* ======================================================
   HINWEIS SCREEN
====================================================== */

#loader {
  position: fixed;
  inset: 0;
  z-index: 99999;
  background: #050507;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  opacity: 1;
  visibility: visible;
}

#loader.hidden {
  display: none;
  pointer-events: none;
}

.loader-title {
  width: 100%;
  max-width: 90vw;
  padding: 0 20px;
  text-align: center;
  font-size: clamp(38px, 10vw, 72px);
  line-height: 1.05;
  word-break: normal;
  overflow-wrap: normal;
  white-space: nowrap;
  color: #d4af37;
  margin-bottom: 25px;
  text-shadow:
    0 0 12px rgba(212,175,55,.5),
    0 0 30px rgba(212,175,55,.2);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  flex-wrap: nowrap;
}

.loader-title img {
  width: 28px !important;
  height: 28px !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  flex: 0 0 auto;
  display: block;
  transform: translateY(+0.10em);
}

#loader-title-text {
  display: inline-block;
  white-space: nowrap;
  min-width: 0;
}

.loader-title strong {
  color: #f7e7a6;
  font-weight: bold;
}

.loader-text {
  max-width: 760px;
  padding: 0 25px;
  text-align: center;
  line-height: 1.8;
  font-size: 18px;
  color: #ddd;
}

.loader-text strong {
  color: #ff4d4d;
  font-size: 22px;
}

.loader-button {
  margin-top: 40px;
  background: #d4af37;
  color: #111;
  border: none;
  padding: 15px 34px;
  border-radius: 8px;
  font-size: 17px;
  font-weight: bold;
  cursor: pointer;
  transition: .25s;
}

.loader-button:hover {
  background: #f0cc55;
  transform: scale(1.04);
}

/* ======================================================
   HEADER
====================================================== */

header {
  position: relative;
  isolation: isolate;
  background:
    linear-gradient(
      rgba(0,0,0,.36),
      rgba(0,0,0,.66) 58%,
      rgba(0,0,0,.88)
    ),
    url("../images/gildenbanner.webp?v=01");
  background-size: cover;
  background-position: center 72%;
  background-repeat: no-repeat;
  min-height: clamp(560px, 68svh, 820px);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  border-bottom: 2px solid #6b4e16;
  overflow: hidden;
}

header::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(circle at center, rgba(212,175,55,.08), transparent 38%),
    linear-gradient(to bottom, transparent 72%, rgba(11,11,15,.55));
}

.hero-content {
  padding: 20px;
}

header h1 {
  font-size: 96px;
  color: #d4af37;
  letter-spacing: 3px;
  white-space: nowrap;
  text-shadow:
    0 0 12px rgba(0,0,0,.95),
    0 0 30px rgba(0,0,0,.75),
    0 0 32px rgba(212,175,55,.24);
}

header p {
  margin-top: 20px;
  font-size: 28px;
  color: #f1e6c8;
  text-shadow:
    0 0 10px rgba(0,0,0,.95),
    2px 2px 10px #000;
}

.hero-button {
  display: inline-block;
  margin-top: 40px;
  background: #d4af37;
  color: #111;
  padding: 16px 34px;
  border-radius: 8px;
  font-size: 18px;
  font-weight: bold;
  transition: .25s;
}

.hero-button:hover {
  background: #f0cc55;
  transform: scale(1.04);
}

.hero-zoom-button {
  position: absolute;
  right: 24px;
  bottom: 24px;
  z-index: 3;
}

.hero-zoom-button,
.member-image-zoom-button,
.image-wrap button {
  width: 48px;
  height: 48px;
  border: 1px solid #6b4e16;
  border-radius: 50%;
  background: rgba(0,0,0,.72);
  cursor: pointer;
  transition: .2s;
  box-shadow: 0 0 18px rgba(0,0,0,.5);
  font-size: 0;
  color: transparent;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

.hero-zoom-button::before,
.member-image-zoom-button::before,
.image-wrap button::before {
  content: "";
  width: 20px;
  height: 20px;
  display: block;
  background: #d4af37;
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.5 4a6.5 6.5 0 0 1 5.12 10.5l4.44 4.44a1 1 0 0 1-1.42 1.42l-4.44-4.44A6.5 6.5 0 1 1 10.5 4Zm0 2a4.5 4.5 0 1 0 0 9a4.5 4.5 0 0 0 0-9Z'/%3E%3C/svg%3E");
  mask-size: contain;
  mask-position: center;
  mask-repeat: no-repeat;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.5 4a6.5 6.5 0 0 1 5.12 10.5l4.44 4.44a1 1 0 0 1-1.42 1.42l-4.44-4.44A6.5 6.5 0 1 1 10.5 4Zm0 2a4.5 4.5 0 1 0 0 9a4.5 4.5 0 0 0 0-9Z'/%3E%3C/svg%3E");
  -webkit-mask-size: contain;
  -webkit-mask-position: center;
  -webkit-mask-repeat: no-repeat;
}

.hero-zoom-button span {
  display: none;
}

.hero-zoom-button:hover,
.member-image-zoom-button:hover,
.image-wrap button:hover {
  background: rgba(0,0,0,.9);
  transform: scale(1.06);
}

.hero-zoom-button:hover::before,
.member-image-zoom-button:hover::before,
.image-wrap button:hover::before {
  background: #f0cc55;
}

/* ======================================================
   NAVIGATION
====================================================== */

nav {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: #171018;
  border-bottom: 1px solid #6b4e16;
  text-align: center;
  padding: 18px;
}

.nav-toggle {
  display: none;
  width: 100%;
  background: transparent;
  color: #d4af37;
  border: 1px solid #3b2d12;
  border-radius: 10px;
  padding: 12px 16px;
  font-family: Georgia, serif;
  font-size: 18px;
  font-weight: bold;
  cursor: pointer;
  justify-content: space-between;
  align-items: center;
}

.nav-arrow {
  display: inline-block;
  transition: transform .25s ease;
}

.nav-links {
  display: block;
}

.nav-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  vertical-align: middle;
  margin: 0 14px;
}

.nav-logo img {
  width: 24px;
  height: 24px;
  display: block;
  object-fit: contain;
  filter: drop-shadow(0 0 6px rgba(212,175,55,.45));
  opacity: .95;
}

nav a {
  color: #d4af37;
  margin: 0 14px;
  font-size: 17px;
  font-weight: bold;
  transition: .2s;
}

nav a:hover {
  color: white;
}

/* ======================================================
   DASHBOARD LOGIN STRIP
====================================================== */

.dashboard-login-strip {
  max-width: 1200px;
  margin: 28px auto 0;
  padding: 0 25px;
}

.dashboard-login-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  background:
    linear-gradient(
      135deg,
      rgba(212,175,55,.13),
      rgba(21,21,29,.96) 42%,
      rgba(18,13,20,.98)
    );
  border: 1px solid #3b2d12;
  border-radius: 14px;
  padding: 18px 22px;
  box-shadow: 0 0 18px rgba(0,0,0,.38);
}

.dashboard-login-text span {
  display: block;
  color: #d4af37;
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 4px;
}

.dashboard-login-text p {
  color: #cfc3a3;
  font-size: 15px;
  line-height: 1.5;
}

.dashboard-login-button {
  flex: 0 0 auto;
  display: inline-block;
  background: #d4af37;
  color: #111;
  padding: 12px 22px;
  border-radius: 8px;
  font-size: 15px;
  font-weight: bold;
  transition: .25s;
  white-space: nowrap;
}

.dashboard-login-button:hover {
  background: #f0cc55;
  transform: scale(1.04);
}

/* ======================================================
   CONTENT
====================================================== */

section {
  max-width: 1200px;
  margin: auto;
  padding: 80px 25px;
}

h2 {
  color: #d4af37;
  font-size: 40px;
  margin-bottom: 40px;
  border-bottom: 1px solid #6b4e16;
  padding-bottom: 12px;
}

p {
  font-size: 18px;
  line-height: 1.8;
}

strong {
  color: white;
}

/* ======================================================
   ABOUT
====================================================== */

#about-content {
  background: #15151d;
  border: 1px solid #3b2d12;
  border-radius: 14px;
  padding: 30px;
  box-shadow: 0 0 18px rgba(0,0,0,.45);
}

#about-content p {
  color: #f1e6c8;
}

#about-content p:not(:last-child) {
  margin-bottom: 18px;
}

#about-content strong {
  color: white;
}

/* ======================================================
   CARDS
====================================================== */

.cards {
  display: grid;
  grid-template-columns:
    repeat(
      auto-fit,
      minmax(
        min(100%, 420px),
        1fr
      )
    );
  justify-content: center;
  gap: 25px;
}

/* Letzte Karte zentrieren wenn ungerade Anzahl */
.cards > :last-child:nth-child(odd) {
  grid-column: 1 / -1;
  max-width: 420px;
  width: 100%;
  justify-self: center;
}

.card {
  background: #15151d;
  border: 1px solid #3b2d12;
  border-radius: 12px;
  padding: 30px;
  box-shadow:
    0 0 18px rgba(0,0,0,.45);
  transition: .25s;
}

.card:hover {
  transform: translateY(-5px);
  border-color: #d4af37;
}

.card h3 {
  color: #d4af37;
  font-size: 25px;
  margin-bottom: 20px;
}

.progress-updated {
  margin-top: 35px;
  color: #999;
  font-size: 14px;
  text-align: center;
}

.raid-badge-new {
  display: inline-flex;
  align-items: center;
  margin-left: 12px;
  padding: 4px 10px;

  border: 1px solid rgba(212,175,55,.35);
  border-radius: 999px;

  background:
    linear-gradient(
      180deg,
      rgba(212,175,55,.18),
      rgba(212,175,55,.08)
    );

  color: #f0cc55;
  font-size: 13px;
  font-weight: bold;
  letter-spacing: .08em;

  vertical-align: middle;

  box-shadow:
    inset 0 0 10px rgba(212,175,55,.08),
    0 0 10px rgba(212,175,55,.08);
}

.raid-badge-new::before {
  content: "✦";
  margin-right: 6px;
  font-size: 11px;
  opacity: .9;
}

/* ======================================================
   RAID PROGRESS BARS
====================================================== */

.progress-card {
  position: relative;
}

.raid-progress-list {
  display: flex;
  flex-direction: column;
  gap: 22px;
  margin-top: 8px;
}

.raid-progress-row {
  width: 100%;
}

.raid-progress-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 8px;
}

.raid-progress-head span {
  color: #d4af37;
  font-size: 17px;
  font-weight: bold;
}

.raid-progress-head strong {
  color: white;
  font-size: 17px;
  white-space: nowrap;
}

.raid-progress-bar {
  width: 100%;
  height: 13px;
  border: 1px solid #3b2d12;
  border-radius: 999px;
  background: rgba(0,0,0,.35);
  overflow: hidden;
  box-shadow:
    inset 0 0 8px rgba(0,0,0,.65),
    0 0 10px rgba(0,0,0,.25);
}

.raid-progress-fill {
  width: 0%;
  height: 100%;
  border-radius: 999px;
  background:
    linear-gradient(
      90deg,
      rgba(137,98,22,.95),
      rgba(212,175,55,.95),
      rgba(240,204,85,.95)
    );
  box-shadow:
    0 0 12px rgba(212,175,55,.35),
    inset 0 0 6px rgba(255,255,255,.18);
  transition: width .6s ease;
}

.raid-progress-summary {
  margin-top: 28px;
  padding-top: 18px;
  border-top: 1px solid #3b2d12;
  color: #cfc3a3;
  font-size: 16px;
}

/* ======================================================
   DISCORD WIDGET
====================================================== */

.discord-section {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 35px;
  align-items: stretch;
}

.discord-info {
  background: #15151d;
  border: 1px solid #3b2d12;
  border-radius: 14px;
  padding: 30px;
  box-shadow: 0 0 18px rgba(0,0,0,.45);
}

.discord-info h3 {
  color: #d4af37;
  font-size: 28px;
  margin-bottom: 20px;
}

.discord-widget {
  background: #15151d;
  border: 1px solid #3b2d12;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 0 18px rgba(0,0,0,.45);
  min-height: 500px;
}

.discord-widget iframe {
  width: 100%;
  height: 500px;
  border: 0;
  display: block;
}

.discord-small-note {
  margin-top: 18px;
  color: #999;
  font-size: 14px;
  line-height: 1.6;
}

/* ======================================================
   TEAM SECTION
====================================================== */

.team-wrapper {
  background: #120d14;
  border: 1px solid #6b4e16;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 0 22px rgba(0,0,0,.45);
}

.team-summary {
  cursor: pointer;
  padding: 28px 32px;
  color: #d4af37;
  font-size: 40px;
  font-weight: bold;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.team-summary::-webkit-details-marker {
  display: none;
}

.team-wrapper[open] .team-summary .plus {
  transform: rotate(45deg);
}

.team-content {
  padding: 0 32px 40px;
}

.team-content > p {
  margin-top: 10px;
}

.team-list {
  display: flex;
  flex-direction: column;
  gap: 18px;
  margin-top: 35px;
}

.member-accordion {
  background: #15151d;
  border: 1px solid #3b2d12;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 0 18px rgba(0,0,0,.45);
}

.member-accordion summary {
  cursor: pointer;
  padding: 22px 28px;
  color: #d4af37;
  font-size: 22px;
  font-weight: bold;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.member-accordion summary::-webkit-details-marker {
  display: none;
}

.member-accordion[open] .plus {
  transform: rotate(45deg);
}

.member-open-content {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 30px;
  padding: 0 28px 32px;
}

.member-image {
  height: 320px;
  align-self: start;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid #3b2d12;
  background: #0b0b0f;
}

.member-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.member-image-lightbox {
  position: relative;
  cursor: zoom-in;
}

.member-image-lightbox img {
  cursor: zoom-in;
}

.member-image-zoom-button {
  position: absolute;
  right: 14px;
  bottom: 14px;
}

.member-info h3 {
  color: #fff;
  font-size: 30px;
  margin-bottom: 12px;
}

.member-role {
  display: inline-block;
  margin-bottom: 22px;
  padding: 8px 14px;
  background: rgba(212,175,55,.12);
  border: 1px solid #6b4e16;
  border-radius: 999px;
  color: #d4af37;
  font-weight: bold;
}

.member-facts {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 12px 20px;
  margin-top: 22px;
}

.member-facts span {
  color: #d4af37;
  font-weight: bold;
}

.member-facts p {
  margin: 0;
}

/* ======================================================
   HISTORY WRAPPER
====================================================== */

.history-wrapper {
  background: #120d14;
  border: 1px solid #6b4e16;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 0 22px rgba(0,0,0,.45);
}

.history-summary {
  cursor: pointer;
  padding: 28px 32px;
  color: #d4af37;
  font-size: 40px;
  font-weight: bold;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.history-summary::-webkit-details-marker {
  display: none;
}

.history-wrapper[open] .history-summary .plus {
  transform: rotate(45deg);
}

.history-content {
  padding: 0 32px 40px;
}

.history-content > p {
  margin-top: 10px;
}

/* ======================================================
   ACCORDION
====================================================== */

.accordion {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.boss-accordion {
  background: #15151d;
  border: 1px solid #3b2d12;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 0 18px rgba(0,0,0,.45);
  scroll-margin-top: var(--nav-offset, 95px);
}

.boss-accordion summary {
  cursor: pointer;
  padding: 24px 28px;
  color: #d4af37;
  font-size: 22px;
  font-weight: bold;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.boss-accordion summary::-webkit-details-marker {
  display: none;
}

.boss-accordion[open] .plus {
  transform: rotate(45deg);
}

.plus {
  font-size: 32px;
  transition: .25s;
  flex-shrink: 0;
  margin-left: 18px;
}

.boss-open-content {
  padding: 0 28px 32px;
}

.boss-gallery {
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
  margin-bottom: 30px;
}

.boss-gallery.two {
  grid-template-columns: 1fr 1fr;
}

.image-wrap {
  position: relative;
  overflow: hidden;
  border-radius: 12px;
  border: 1px solid #3b2d12;
}

.image-wrap img {
  width: 100%;
  height: 320px;
  object-fit: cover;
  display: block;
}

.image-wrap button {
  position: absolute;
  right: 14px;
  bottom: 14px;
}

.boss-text h3 {
  color: #fff;
  font-size: 30px;
  margin-bottom: 20px;
}

.boss-text p {
  margin-bottom: 18px;
}

.raidmoment-heading-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 20px;
}

.raidmoment-heading-row h3 {
  margin-bottom: 0;
}

.raidmoment-copy-link {
  flex: 0 0 auto;
  border: 1px solid #6b4e16;
  border-radius: 999px;
  background: rgba(212,175,55,.10);
  color: #d4af37;
  padding: 8px 14px;
  font-family: Georgia, serif;
  font-size: 14px;
  font-weight: bold;
  cursor: pointer;
  transition: .2s;
  white-space: nowrap;
}

.raidmoment-copy-link:hover {
  background: rgba(212,175,55,.18);
  color: #f0cc55;
  transform: translateY(-1px);
}

/* ======================================================
   RAID-RÜCKBLICK / KILL-KALENDER
====================================================== */

.kill-calendar-list {
  margin-top: 35px;
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.kill-month {
  background: #15151d;
  border: 1px solid #3b2d12;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 0 18px rgba(0,0,0,.45);
}

.kill-month summary {
  cursor: pointer;
  padding: 22px 28px;
  color: #d4af37;
  font-size: 24px;
  font-weight: bold;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.kill-month summary::-webkit-details-marker {
  display: none;
}

.kill-month[open] .plus {
  transform: rotate(45deg);
}

.kill-month-content {
  padding: 0 28px 28px;
}

.kill-day {
  margin-top: 24px;
  padding-top: 22px;
  border-top: 1px solid #3b2d12;
}

.kill-day:first-child {
  border-top: none;
  padding-top: 0;
}

.kill-day-title {
  color: white;
  font-size: 22px;
  margin-bottom: 16px;
}

.kill-entry {
  background: #0f0f15;
  border: 1px solid #2d2413;
  border-radius: 12px;
  padding: 18px 20px;
  margin-bottom: 14px;
}

.kill-entry:last-child {
  margin-bottom: 0;
}

.kill-entry-title {
  color: #d4af37;
  font-size: 20px;
  font-weight: bold;
  margin-bottom: 10px;
}

.kill-entry-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  color: #ddd;
  font-size: 15px;
  line-height: 1.6;
}

.kill-pill {
  display: inline-block;
  padding: 5px 10px;
  border: 1px solid #3b2d12;
  border-radius: 999px;
  background: rgba(212,175,55,.08);
  color: #f1e6c8;
}

.kill-pill strong {
  color: #d4af37;
}

.kill-empty {
  margin-top: 30px;
  color: #999;
}

/* ======================================================
   M+ TOP 10
====================================================== */

.mplus-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 30px;
  overflow: hidden;
  border-radius: 12px;
}

.mplus-table th,
.mplus-table td {
  padding: 16px 14px;
  border-bottom: 1px solid #3b2d12;
  text-align: left;
  font-size: 17px;
  vertical-align: top;
}

.mplus-table th {
  color: #d4af37;
  background: rgba(212,175,55,.08);
}

.mplus-table td {
  color: #f1e6c8;
}

.mplus-table tr:last-child td {
  border-bottom: none;
}

.mplus-rank {
  color: #d4af37;
  font-weight: bold;
  width: 70px;
}

.mplus-score {
  color: white;
  font-weight: bold;
  white-space: nowrap;
}

.mplus-character a {
  color: #d4af37;
  font-weight: bold;
}

.mplus-character a:hover {
  color: white;
}

.mplus-character-name {
  font-weight: bold;
  transition:
    color .2s ease,
    filter .2s ease,
    text-shadow .2s ease;
}

.mplus-character-name:hover {
  filter: brightness(1.12);
}

.mplus-meta {
  color: #999;
  font-size: 14px;
  margin-top: 4px;
}

.mplus-best-key-line {
  display: block;
}

.mplus-key-details {
  display: block;
  margin-top: 0;
}

.mplus-key-details summary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  list-style: none;
  color: #f1e6c8;
  font-size: 17px;
  font-weight: normal;
  user-select: none;
}

.mplus-key-details summary::-webkit-details-marker {
  display: none;
}

.mplus-info-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border: 1px solid #6b4e16;
  border-radius: 50%;
  background: rgba(212,175,55,.12);
  color: #d4af37;
  font-size: 13px;
  font-weight: bold;
  line-height: 1;
  flex-shrink: 0;
}

.mplus-key-text {
  color: #f1e6c8;
}

.mplus-key-detail-box {
  margin-top: 10px;
  padding: 12px 14px;
  border: 1px solid #3b2d12;
  border-radius: 10px;
  background: rgba(0,0,0,.28);
  color: #cfc3a3;
  font-size: 14px;
  line-height: 1.7;
  min-width: 260px;
  max-width: 420px;
}

.mplus-key-detail-box strong {
  color: #d4af37;
}

.mplus-key-detail-box a {
  color: #d4af37;
  font-weight: bold;
}

.mplus-key-detail-box a:hover {
  color: white;
}

/* ======================================================
   WOW CLASS COLORS - DEZENT
====================================================== */

.mplus-class-death-knight {
  color: #df5268 !important;
  text-shadow: 0 0 8px rgba(196,30,58,.18);
}

.mplus-class-demon-hunter {
  color: #c279e0 !important;
  text-shadow: 0 0 8px rgba(163,48,201,.18);
}

.mplus-class-druid {
  color: #ff9a3c !important;
  text-shadow: 0 0 8px rgba(255,124,10,.16);
}

.mplus-class-evoker {
  color: #5fb9a8 !important;
  text-shadow: 0 0 8px rgba(51,147,127,.18);
}

.mplus-class-hunter {
  color: #c5e68f !important;
  text-shadow: 0 0 8px rgba(170,211,114,.16);
}

.mplus-class-mage {
  color: #8fd7f3 !important;
  text-shadow: 0 0 8px rgba(63,199,235,.18);
}

.mplus-class-monk {
  color: #6fffc0 !important;
  text-shadow: 0 0 8px rgba(0,255,152,.16);
}

.mplus-class-paladin {
  color: #f6a8cc !important;
  text-shadow: 0 0 8px rgba(244,140,186,.16);
}

.mplus-class-priest {
  color: #f0e6d2 !important;
  text-shadow: 0 0 8px rgba(240,230,210,.14);
}

.mplus-class-rogue {
  color: #fff6a0 !important;
  text-shadow: 0 0 8px rgba(255,244,104,.14);
}

.mplus-class-shaman {
  color: #4da6ff !important;
  text-shadow: 0 0 8px rgba(0,112,221,.18);
}

.mplus-class-warlock {
  color: #b5a4e3 !important;
  text-shadow: 0 0 8px rgba(135,136,238,.18);
}

.mplus-class-warrior {
  color: #d7b58c !important;
  text-shadow: 0 0 8px rgba(198,155,109,.16);
}

.mplus-class-death-knight:hover {
  color: #ef6a7e !important;
}

.mplus-class-demon-hunter:hover {
  color: #d48cf0 !important;
}

.mplus-class-druid:hover {
  color: #ffad5c !important;
}

.mplus-class-evoker:hover {
  color: #79cdbc !important;
}

.mplus-class-hunter:hover {
  color: #d7f3a6 !important;
}

.mplus-class-mage:hover {
  color: #a9e4f8 !important;
}

.mplus-class-monk:hover {
  color: #91ffd0 !important;
}

.mplus-class-paladin:hover {
  color: #ffc0dc !important;
}

.mplus-class-priest:hover {
  color: #fff4df !important;
}

.mplus-class-rogue:hover {
  color: #fff9be !important;
}

.mplus-class-shaman:hover {
  color: #75bbff !important;
}

.mplus-class-warlock:hover {
  color: #c8b9f0 !important;
}

.mplus-class-warrior:hover {
  color: #e6c9a4 !important;
}

/* ======================================================
   RAID RULES
====================================================== */

.raid-rules-wrapper {
  background: #120d14;
  border: 1px solid #6b4e16;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 0 22px rgba(0,0,0,.45);
}

.raid-rules-summary {
  cursor: pointer;
  padding: 28px 32px;
  color: #d4af37;
  font-size: 40px;
  font-weight: bold;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.raid-rules-summary::-webkit-details-marker {
  display: none;
}

.raid-rules-wrapper[open] .raid-rules-summary .plus {
  transform: rotate(45deg);
}

.raid-rules-content {
  padding: 0 32px 40px;
}

.raid-rules-content p {
  color: #f1e6c8;
  margin-bottom: 18px;
}

.raid-rules-content p:last-child {
  margin-bottom: 0;
}

/* ======================================================
   LIGHTBOX
====================================================== */

#lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(0,0,0,.88);
  display: none;
  align-items: center;
  justify-content: center;
  padding: 25px;
  overflow: hidden;
  cursor: zoom-out;
}

#lightbox.active {
  display: flex;
}

#lightbox img {
  width: auto;
  height: auto;
  max-width: none;
  max-height: none;
  border-radius: 14px;
  border: 1px solid #6b4e16;
  box-shadow: 0 0 35px rgba(0,0,0,.8);
  transition:
    width .12s ease-out,
    height .12s ease-out,
    transform .12s ease-out;
  transform-origin: center center;
  user-select: none;
  -webkit-user-drag: none;
  cursor: default;
  will-change: width, height, transform;
  image-rendering: auto;
}

#lightbox.zoomed img {
  cursor: grab;
}

#lightbox.dragging img {
  cursor: grabbing;
}

.lightbox-zoom-hint {
  position: fixed;
  left: 50%;
  bottom: 22px;
  transform: translateX(-50%);
  z-index: 10000;
  padding: 8px 14px;
  border: 1px solid #6b4e16;
  border-radius: 999px;
  background: rgba(0,0,0,.72);
  color: #d4af37;
  font-size: 13px;
  line-height: 1.4;
  pointer-events: none;
  box-shadow: 0 0 18px rgba(0,0,0,.5);
}

/* ======================================================
   CTA
====================================================== */

.cta {
  background: #15151d;
  border: 1px solid #3b2d12;
  border-radius: 14px;
  text-align: center;
  padding: 34px 25px 46px;
  box-shadow: 0 0 18px rgba(0,0,0,.45);
}

.cta h2 {
  margin-bottom: 28px;
}

.cta p {
  max-width: 850px;
  margin-left: auto;
  margin-right: auto;
}

.button {
  display: inline-block;
  margin-top: 30px;
  background: #d4af37;
  color: #111;
  padding: 15px 34px;
  border-radius: 8px;
  font-size: 17px;
  font-weight: bold;
  transition: .25s;
}

.button:hover {
  background: #f0cc55;
  transform: scale(1.04);
}

/* ======================================================
   FOOTER
====================================================== */

footer {
  background: #08080b;
  border-top: 1px solid #222;
  text-align: center;
  padding: 30px;
  color: #999;
  font-size: 14px;
}

footer a {
  color: #d4af37;
  transition: .2s;
}

footer a:hover {
  color: white;
}

/* ======================================================
   ULTRAWIDE
====================================================== */

@media (min-aspect-ratio: 21/9) {
  header {
    min-height: min(64svh, 820px);
    background-position: center 78%;
  }
}

/* ======================================================
   MOBILE
====================================================== */

@media (max-width: 900px) {
  header {
    min-height: 580px;
    background-position: center 70%;
  }

  header h1 {
    font-size: clamp(44px, 7vw, 62px);
    letter-spacing: 2px;
  }

  header p {
    font-size: 22px;
  }

  .discord-section {
    grid-template-columns: 1fr;
  }

  .discord-widget {
    min-height: 420px;
  }

  .discord-widget iframe {
    height: 420px;
  }

  .member-open-content {
    grid-template-columns: 1fr;
  }

  .member-image {
    height: 420px;
  }

  .boss-gallery.two {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  nav {
    padding: 10px;
  }

  .nav-toggle {
    display: flex;
    position: relative;
    justify-content: center;
    align-items: center;
    gap: 8px;
  }

  .nav-toggle::before,
  .nav-toggle::after {
    content: "";
    width: 22px;
    height: 22px;
    background-image: url("../images/favicon.ico");
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    filter: drop-shadow(0 0 6px rgba(212,175,55,.45));
    opacity: .95;
    flex: 0 0 auto;
  }

  .nav-arrow {
    position: absolute;
    right: 16px;
  }

  .nav-logo {
    display: none;
  }

  .nav-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px 10px;
    max-height: 500px;
    overflow: hidden;
    transition: max-height .3s ease, opacity .25s ease, margin-top .25s ease;
    margin-top: 12px;
    opacity: 1;
  }

  .main-nav.nav-collapsed .nav-links {
    max-height: 0;
    opacity: 0;
    margin-top: 0;
    pointer-events: none;
  }

  .main-nav.nav-collapsed .nav-arrow {
    transform: rotate(180deg);
  }

  nav a {
    display: inline-block;
    margin: 0;
    padding: 8px 10px;
    font-size: 15px;
    border: 1px solid #3b2d12;
    border-radius: 999px;
    background: rgba(212,175,55,.06);
  }

  section {
    padding: 60px 18px;
  }

  h2 {
    font-size: 32px;
  }

  .team-summary,
  .history-summary,
  .raid-rules-summary {
    font-size: 30px;
    padding: 24px;
  }

  .team-content,
  .history-content,
  .raid-rules-content {
    padding: 0 24px 30px;
  }

  .raidmoment-heading-row {
    flex-direction: column;
    gap: 12px;
  }

  .raidmoment-copy-link {
    width: 100%;
    text-align: center;
  }

  .mplus-table {
    display: block;
    width: 100%;
    overflow: visible;
    white-space: normal;
    border-collapse: separate;
    border-spacing: 0;
  }

  .mplus-table thead {
    display: none;
  }

  .mplus-table tbody {
    display: block;
    width: 100%;
  }

  .mplus-table tr {
    display: block;
    width: 100%;
    margin-bottom: 16px;
    padding: 18px 18px 16px;
    background: #15151d;
    border: 1px solid #3b2d12;
    border-radius: 14px;
    box-shadow: 0 0 18px rgba(0,0,0,.35);
  }

  .mplus-table tr:last-child {
    margin-bottom: 0;
  }

  .mplus-table td {
    display: grid;
    grid-template-columns: 105px 1fr;
    gap: 12px;
    align-items: start;
    width: 100%;
    padding: 9px 0;
    border-bottom: 1px solid rgba(59,45,18,.75);
    font-size: 15px;
    white-space: normal;
  }

  .mplus-table td:last-child {
    border-bottom: none;
    padding-bottom: 0;
  }

  .mplus-table td::before {
    color: #d4af37;
    font-weight: bold;
  }

  .mplus-table td:nth-child(1)::before {
    content: "Platz";
  }

  .mplus-table td:nth-child(2)::before {
    content: "Charakter";
  }

  .mplus-table td:nth-child(3)::before {
    content: "Spec";
  }

  .mplus-table td:nth-child(4)::before {
    content: "Bester Key";
  }

  .mplus-table td:nth-child(5)::before {
    content: "Score";
  }

  .mplus-rank {
    width: auto;
  }

  .mplus-score {
    white-space: normal;
  }

  .mplus-meta {
    margin-top: 3px;
  }

  .mplus-key-details summary {
    font-size: 15px;
  }

  .mplus-key-detail-box {
    min-width: 0;
    max-width: 100%;
    width: 100%;
    white-space: normal;
  }

  .lightbox-zoom-hint {
    display: none;
  }

  .hero-zoom-button,
  .member-image-zoom-button,
  .image-wrap button {
    width: 42px;
    height: 42px;
  }

  .hero-zoom-button {
    right: 16px;
    bottom: 16px;
  }

  .hero-zoom-button::before,
  .member-image-zoom-button::before,
  .image-wrap button::before {
    width: 18px;
    height: 18px;
  }

  .dashboard-login-strip {
    margin-top: 22px;
    padding: 0 18px;
  }

  .dashboard-login-inner {
    flex-direction: column;
    text-align: center;
    padding: 20px;
  }

  .dashboard-login-button {
    width: 100%;
    text-align: center;
  }
}

@media (max-width: 520px) {
  header {
    min-height: 520px;
    background-position: center 68%;
  }

  header h1 {
    font-size: clamp(32px, 9.5vw, 44px);
    letter-spacing: 1px;
  }

  header p {
    font-size: 18px;
  }

  .hero-button,
  .button {
    width: 100%;
    text-align: center;
  }

  .loader-title {
    font-size: clamp(30px, 9vw, 54px);
    padding: 0 14px;
    gap: 7px;
  }

  .loader-title img {
    width: clamp(18px, 5vw, 24px) !important;
    height: clamp(18px, 5vw, 24px) !important;
    transform: translateY(+0.10em);
  }

  .loader-text {
    font-size: 16px;
  }

  .loader-button {
    width: calc(100% - 50px);
  }

  .cards {
    grid-template-columns: 1fr;
  }

  .card,
  #about-content,
  .discord-info {
    padding: 24px;
  }

  .member-facts {
    grid-template-columns: 1fr;
  }

  .member-image {
    height: 340px;
  }

  .image-wrap img {
    height: 240px;
  }

  .kill-entry-meta {
    flex-direction: column;
    align-items: flex-start;
  }

  .cta {
    padding-top: 30px;
    padding-bottom: 42px;
  }
}