/*
 * OSSI PILLEN LEV – Premium-Politur
 * ----------------------------------
 * Rein optische Verfeinerung der bestehenden Website. Inhalte, Elementor-
 * Struktur, Links sowie News- und Galerie-Funktionen bleiben unverändert.
 */

.opl-v2-site,
.opl-v2-member-page {
  --opl-v2-line: rgba(255, 48, 60, 0.3);
  --opl-v2-line-soft: rgba(255, 255, 255, 0.075);
  --opl-v2-shadow:
    0 1px 0 rgba(255, 255, 255, 0.025) inset,
    0 18px 48px rgba(0, 0, 0, 0.34);
}

/* Navigation: ruhiger, praeziser und besser lesbar. */
.opl-v2-rail {
  background:
    radial-gradient(circle at 48% 9%, rgba(139, 9, 18, 0.105), transparent 27%),
    linear-gradient(180deg, #080809 0%, #030304 74%, #050506 100%);
  border-right-color: rgba(255, 42, 54, 0.42);
  box-shadow: 14px 0 50px rgba(0, 0, 0, 0.46);
}

.opl-v2-rail::after {
  opacity: 0.58;
  filter: drop-shadow(0 0 3px rgba(255, 23, 36, 0.58));
}

.opl-v2-rail-logo img {
  filter:
    drop-shadow(0 9px 15px rgba(0, 0, 0, 0.72))
    drop-shadow(0 0 7px rgba(238, 20, 33, 0.19));
}

.opl-v2-rail-logo a:hover img,
.opl-v2-rail-logo a:focus-visible img {
  transform: translateY(-2px) scale(1.012);
  filter:
    drop-shadow(0 11px 17px rgba(0, 0, 0, 0.76))
    drop-shadow(0 0 11px rgba(255, 29, 43, 0.32));
}

.opl-v2-rail-nav {
  gap: 2px;
}

.opl-v2-nav-link .elementor-button {
  color: #d3cece;
  letter-spacing: 0.125em;
}

.opl-v2-nav-link:hover .elementor-button,
.opl-v2-nav-link.is-active .elementor-button {
  transform: translateX(2px);
  background: linear-gradient(90deg, rgba(242, 24, 37, 0.12), transparent 78%);
}

.opl-v2-nav-link:hover .elementor-button::before,
.opl-v2-nav-link.is-active .elementor-button::before {
  box-shadow: 0 0 7px rgba(255, 27, 41, 0.64);
}

.opl-v2-rail-signature {
  border-top-color: rgba(255, 42, 54, 0.31);
  border-bottom-color: rgba(255, 255, 255, 0.055);
}

.opl-v2-social-icon img,
.opl-v2-social-icon:last-child img {
  filter: drop-shadow(0 0 5px rgba(255, 255, 255, 0.17));
}

.opl-v2-social-icon a:hover img,
.opl-v2-social-icon a:focus-visible img {
  transform: translateY(-2px) scale(1.07);
  filter:
    drop-shadow(0 0 5px rgba(255, 255, 255, 0.32))
    drop-shadow(0 0 10px rgba(255, 31, 68, 0.42));
}

@media (min-width: 1181px) {
  .opl-v2-rail-logo {
    width: min(100%, 152px) !important;
  }
}

/* Hero und Uebergang: klarer, aber weiterhin atmosphaerisch. */
.opl-v2-hero::after {
  background:
    radial-gradient(circle at 50% 56%, transparent 38%, rgba(0, 0, 0, 0.11) 72%, rgba(0, 0, 0, 0.42) 100%),
    linear-gradient(180deg, rgba(0, 0, 0, 0.1), transparent 38%, rgba(0, 0, 0, 0.14));
}

.opl-v2-hero-overlay {
  background:
    linear-gradient(
      180deg,
      rgba(0, 0, 0, calc(0.045 + var(--opl-v2-hero-dim) * 0.38)),
      rgba(0, 0, 0, calc(0.065 + var(--opl-v2-hero-dim) * 0.62))
    );
  backdrop-filter: blur(calc(var(--opl-v2-hero-dim) * 2px));
}

.opl-v2-content {
  background:
    radial-gradient(circle at 78% 2%, rgba(126, 6, 15, 0.13), transparent 23%),
    linear-gradient(
      180deg,
      rgba(5, 5, 6, 0.86),
      rgba(7, 6, 7, 0.85) 18%,
      rgba(5, 5, 6, 0.86) 100%
    );
  border-top-color: rgba(255, 42, 54, 0.3);
  box-shadow: 0 -24px 64px rgba(0, 0, 0, 0.38);
}

/* Einheitliche Abstaende und Typografie. */
.opl-v2-section,
.opl-v2-section-gallery {
  --opl-v2-section-space: clamp(82px, 8.3vw, 140px);
}

.opl-v2-section {
  gap: clamp(46px, 6.2vw, 98px);
}

.opl-v2-section::after {
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255, 42, 54, 0.34) 20%,
    rgba(255, 255, 255, 0.065) 62%,
    transparent
  );
}

.opl-v2-section-intro {
  gap: 23px;
}

.opl-v2-section-intro::after {
  background: linear-gradient(
    180deg,
    rgba(255, 44, 56, 0.65),
    rgba(255, 44, 56, 0.08) 72%,
    transparent
  );
  box-shadow: none;
}

.opl-v2-section-detail {
  gap: 27px;
}

.opl-v2-section-title .elementor-heading-title {
  font-size: clamp(40px, 3.85vw, 70px);
  letter-spacing: -0.04em;
  line-height: 0.96;
}

.opl-v2-section-title .elementor-heading-title span,
.opl-v2-member-page-title .elementor-heading-title span {
  text-shadow: 0 0 12px rgba(255, 34, 47, 0.16);
}

.opl-v2-section-lead p,
.opl-v2-feature-copy p {
  color: #bdb7b8;
  line-height: 1.7;
}

.opl-v2-feature-title .elementor-heading-title {
  font-size: clamp(32px, 3.7vw, 62px);
  line-height: 1;
}

/* Ein gemeinsames, dezentes Kartensystem. */
.opl-v2-card,
.opl-v2-total-card,
.opl-v2-map-wrap,
.opl-v2-gallery-season-current,
.opl-v2-contact-form,
.opl-v2-member-login-panel,
.opl-v2-legal-panel,
.opl-v2-member-dashboard-card {
  border-color: rgba(255, 49, 61, 0.27);
  border-radius: 4px;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.025),
    0 18px 48px rgba(0, 0, 0, 0.33);
}

.opl-v2-card {
  gap: 15px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.025), transparent 42%),
    linear-gradient(150deg, rgba(22, 9, 10, 0.97), rgba(7, 7, 8, 0.985));
}

.opl-v2-card::before {
  width: 1px;
  opacity: 0.58;
}

.opl-v2-card:hover {
  border-color: rgba(255, 59, 71, 0.52);
  transform: translateY(-2px);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.035),
    0 22px 58px rgba(0, 0, 0, 0.39),
    0 0 18px rgba(232, 14, 28, 0.075);
}

.opl-v2-card-title .elementor-heading-title {
  letter-spacing: -0.015em;
  line-height: 1.12;
}

.opl-v2-card-copy p {
  color: #c7c1c2;
  line-height: 1.68;
}

.opl-v2-primary-button .elementor-button,
.opl-v2-contact-form .elementor-button {
  border-color: rgba(255, 96, 106, 0.7);
  background: linear-gradient(180deg, #e92130, #a70712);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.14),
    0 10px 24px rgba(163, 5, 17, 0.2);
}

.opl-v2-primary-button .elementor-button:hover,
.opl-v2-primary-button .elementor-button:focus-visible,
.opl-v2-contact-form .elementor-button:hover,
.opl-v2-contact-form .elementor-button:focus-visible {
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.19),
    0 13px 30px rgba(186, 6, 20, 0.27),
    0 0 16px rgba(255, 20, 35, 0.13);
}

/* News: ruhige Karten, klarere Bilder und dezenter Wischhinweis. */
.opl-v2-section-news {
  background:
    radial-gradient(circle at 82% 11%, rgba(132, 5, 15, 0.16), transparent 34%),
    linear-gradient(135deg, rgba(7, 7, 8, 0.86), rgba(14, 5, 7, 0.84));
}

.opl-v2-news-toolbar {
  padding-bottom: 14px !important;
  border-bottom-color: rgba(255, 49, 61, 0.25);
}

.opl-v2-news-arrow .elementor-button {
  border-color: rgba(255, 49, 61, 0.4);
  background: rgba(7, 7, 8, 0.92);
  box-shadow: none;
}

.opl-v2-news-arrow .elementor-button:hover,
.opl-v2-news-arrow .elementor-button:focus-visible {
  background: linear-gradient(180deg, #df1c2b, #93050f);
  box-shadow: 0 8px 20px rgba(174, 6, 18, 0.24);
}

.opl-v2-news-card {
  border-color: rgba(255, 48, 60, 0.25);
  border-radius: 3px;
  box-shadow: 0 20px 54px rgba(0, 0, 0, 0.36);
}

.opl-v2-news-card:hover,
.opl-v2-news-card:focus-visible,
.opl-v2-news-card.is-current {
  border-color: rgba(255, 56, 68, 0.48);
  box-shadow:
    0 24px 64px rgba(0, 0, 0, 0.42),
    0 0 18px rgba(232, 14, 28, 0.065);
}

.opl-v2-news-card-body {
  gap: 25px;
  background:
    radial-gradient(circle at 96% 4%, rgba(107, 5, 13, 0.095), transparent 31%),
    #040405;
}

.opl-v2-news-card-image img {
  filter: saturate(0.96) contrast(1.035) brightness(0.9);
}

.opl-v2-news-card:hover .opl-v2-news-card-image img,
.opl-v2-news-card:focus-visible .opl-v2-news-card-image img {
  filter: saturate(1.045) contrast(1.045) brightness(0.96);
  transform: scale(1.025);
}

/* Mitgliederkarte, Galerie, Formular und Rechtliches aus einem Guss. */
.opl-v2-total-card {
  background: linear-gradient(135deg, rgba(78, 6, 12, 0.42), rgba(9, 9, 10, 0.97));
}

.opl-v2-total-number .elementor-heading-title {
  text-shadow: 0 0 14px rgba(255, 27, 40, 0.24);
}

.opl-v2-map-wrap {
  background:
    radial-gradient(circle at 58% 42%, rgba(105, 6, 14, 0.16), transparent 48%),
    linear-gradient(145deg, rgba(20, 7, 8, 0.93), rgba(5, 5, 6, 0.98));
}

.opl-v2-map-status {
  border-color: rgba(255, 47, 59, 0.27);
  background: rgba(5, 5, 6, 0.9);
  backdrop-filter: blur(7px);
}

.opl-v2-state-card {
  border-color: rgba(255, 45, 57, 0.18);
  background: rgba(255, 255, 255, 0.018);
}

.opl-v2-state-card:hover,
.opl-v2-state-card.is-active {
  border-color: rgba(255, 57, 68, 0.52);
  background: rgba(94, 7, 14, 0.2);
  transform: translateY(-1px);
}

.opl-v2-timeline::before {
  box-shadow: 0 0 5px rgba(255, 23, 37, 0.36);
}

.opl-v2-timeline-card::after {
  box-shadow:
    0 0 0 4px rgba(255, 21, 35, 0.09),
    0 0 9px rgba(255, 21, 35, 0.48);
}

.opl-v2-rule-claim {
  border-color: rgba(255, 40, 52, 0.2);
  background: rgba(48, 7, 10, 0.17);
}

.opl-v2-gallery-heading .opl-v2-kicker {
  border-right-color: rgba(255, 40, 52, 0.3);
}

.opl-v2-gallery-season-current {
  background:
    radial-gradient(circle at 90% 11%, rgba(130, 7, 17, 0.13), transparent 36%),
    linear-gradient(145deg, rgba(18, 15, 16, 0.98), rgba(7, 7, 8, 0.98));
}

.opl-v2-gallery-tab .elementor-button,
.opl-v2-legal-tab .elementor-button,
.opl-v2-subgallery-tab .elementor-button {
  border-color: rgba(255, 48, 60, 0.24);
  background: rgba(10, 9, 10, 0.92);
  color: #c1bbbb;
}

.opl-v2-gallery-tab:hover .elementor-button,
.opl-v2-gallery-tab.is-active .elementor-button,
.opl-v2-legal-tab:hover .elementor-button,
.opl-v2-legal-tab.is-active .elementor-button,
.opl-v2-subgallery-tab:hover .elementor-button,
.opl-v2-subgallery-tab.is-active .elementor-button {
  border-color: rgba(255, 83, 94, 0.67);
  background: linear-gradient(180deg, #dd1c2b, #8b050f);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.11),
    0 9px 23px rgba(150, 5, 17, 0.19);
}

.opl-v2-gallery-archive-toggle .elementor-button {
  border-color: rgba(255, 68, 80, 0.5);
  background: linear-gradient(180deg, rgba(180, 10, 23, 0.96), rgba(89, 5, 12, 0.98));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.09),
    0 10px 25px rgba(142, 5, 16, 0.17);
}

.opl-v2-gallery-archive-toggle:hover .elementor-button {
  background: linear-gradient(180deg, #dc1a29, #79050e);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.12),
    0 13px 30px rgba(157, 5, 18, 0.23);
}

.opl-v2-gallery-image {
  border-color: rgba(255, 44, 56, 0.27);
  border-radius: 2px;
  background: #09090a;
}

.opl-v2-gallery-image img {
  filter: saturate(0.96) contrast(1.035) brightness(0.94);
}

.opl-v2-gallery-image:hover img {
  transform: scale(1.025);
  filter: saturate(1.055) contrast(1.045) brightness(0.98);
}

.opl-v2-section-mitglied-werden {
  background:
    radial-gradient(circle at 76% 44%, rgba(112, 6, 14, 0.16), transparent 39%),
    linear-gradient(135deg, rgba(8, 8, 8, 0.86), rgba(16, 5, 7, 0.84));
}

.opl-v2-contact-form {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.02), transparent 43%),
    rgba(8, 8, 9, 0.96);
}

.opl-v2-contact-form .elementor-field,
.opl-v2-contact-form input,
.opl-v2-contact-form select,
.opl-v2-contact-form textarea {
  border-color: rgba(255, 53, 65, 0.24) !important;
  background: rgba(2, 2, 3, 0.82) !important;
}

.opl-v2-member-login-panel {
  background:
    radial-gradient(circle at 50% 0%, rgba(137, 7, 17, 0.13), transparent 45%),
    rgba(7, 7, 8, 0.975);
}

.opl-v2-member-inline-content .opl-v2-member-page {
  border-color: rgba(255, 43, 55, 0.28);
  border-radius: 4px;
}

.opl-v2-legal-panel {
  background: rgba(8, 8, 9, 0.965);
}

.opl-v2-footer {
  border-top-color: rgba(255, 41, 53, 0.25);
  background: linear-gradient(180deg, #040405, #020203);
}

.opl-v2-footer-mark .elementor-heading-title {
  text-shadow: 0 0 13px rgba(255, 255, 255, 0.09);
}

/* Scroll-Einblendung etwas ruhiger und klarer. */
html.opl-v2-js:not(.opl-v2-editor) .opl-v2-reveal {
  transform: translate3d(0, 28px, 0);
  filter: blur(2px);
  transition:
    opacity 0.72s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.72s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.62s ease;
}

/* Mobile Navigation und Smartphone-Proportionen. */
@media (max-width: 900px) {
  .opl-v2-mobile-navigation {
    background: rgba(4, 4, 5, 0.965);
    border-bottom-color: rgba(255, 39, 51, 0.36);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.24);
    backdrop-filter: blur(12px);
  }

  .opl-v2-mobile-wordmark {
    letter-spacing: 0.075em;
  }

  .opl-v2-mobile-social img {
    opacity: 0.94;
  }

  .opl-v2-mobile-social:active img,
  .opl-v2-mobile-social:focus-visible img {
    opacity: 1;
  }

  .opl-v2-mobile-toggle {
    border-color: rgba(255, 50, 62, 0.48);
    background: rgba(10, 8, 9, 0.88);
    box-shadow: none;
  }

  .opl-v2-section {
    gap: 43px;
  }

  .opl-v2-section-intro {
    padding-bottom: 35px !important;
    border-bottom-color: rgba(255, 38, 50, 0.26);
  }

  .opl-v2-section-title .elementor-heading-title {
    font-size: clamp(37px, 8.3vw, 62px);
  }
}

@media (max-width: 640px) {
  .opl-v2-section,
  .opl-v2-section-gallery {
    --opl-v2-section-space: clamp(68px, 15vw, 92px);
  }

  .opl-v2-section {
    padding-inline: 20px !important;
  }

  .opl-v2-section-title .elementor-heading-title {
    font-size: clamp(34px, 10.5vw, 50px);
    line-height: 0.98;
  }

  .opl-v2-section-lead p,
  .opl-v2-feature-copy p {
    font-size: 16px;
    line-height: 1.66;
  }

  .opl-v2-card {
    padding: 23px !important;
  }

  .opl-v2-news-carousel {
    position: relative;
  }

  .opl-v2-news-carousel::after {
    content: "";
    position: absolute;
    z-index: 4;
    right: 0;
    bottom: 18px;
    width: 24px;
    height: calc(100% - 82px);
    pointer-events: none;
    background: linear-gradient(90deg, transparent, rgba(13, 5, 7, 0.92));
  }

  .opl-v2-news-slider {
    gap: 10px !important;
    padding: 3px 5% 18px 2px !important;
  }

  .elementor .opl-v2-news-slider.e-con > .opl-v2-news-card.e-con,
  .opl-v2-news-slider > .opl-v2-news-card,
  .opl-v2-news-slider > .e-con-inner > .opl-v2-news-card {
    --width: 94% !important;
    --flex-basis: 94% !important;
    flex: 0 0 94% !important;
    width: 94% !important;
    max-width: 94% !important;
    min-width: 94% !important;
  }

  .opl-v2-news-slider > .e-con-inner {
    gap: 10px !important;
  }

  .opl-v2-news-card-body {
    gap: 19px;
    padding: 20px 19px 50px !important;
  }

  .opl-v2-news-card {
    min-height: 440px;
  }

  .opl-v2-gallery-season-current {
    padding: 24px 18px;
  }

  .opl-v2-gallery-tab .elementor-button,
  .opl-v2-legal-tab .elementor-button {
    min-height: 54px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .opl-v2-news-carousel::after {
    transition: none;
  }
}
