/*
Theme Name: IPA Goslar
Description: Schlankes Theme fuer die IPA Verbindungsstelle Goslar. Header und Footer werden im Elementor Theme Builder gestaltet.
Author: IPA Verbindungsstelle Goslar
Version: 0.3.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: ipa-goslar
*/

/* Lokale Schriften (kein Abruf bei Google) */
@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;src:url('assets/fonts/inter-variable.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:italic;font-weight:100 900;font-display:swap;src:url('assets/fonts/inter-italic-variable.woff2') format('woff2');}
@font-face{font-family:'Parisienne';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/parisienne-regular.woff2') format('woff2');}

/* Motto-Balken auf der Startseite */
.elementor-element-6b05782c, .elementor-element-6b05782c *, .elementor-element-40c435ac h1, .elementor-element-40c435ac h2, .elementor-element-40c435ac h3{font-family:'Parisienne',cursive!important;text-transform:none!important;font-weight:400!important;letter-spacing:0!important;}


/* Farben laut IPA Corporate Design (Manual Jan 2023) */
:root {
  --ipa-blau: #0061A7;
  --ipa-marine: #082D50;
  --ipa-gold: #E2B900;
  --ipa-rot: #E3000F;
  --ipa-hellblau: #C9E0EE;
  --ipa-weiss: #FFFFFF;
  --ipa-text: #333333;
}

body { margin: 0; font-family: Inter, system-ui, -apple-system, 'Segoe UI', Arial, sans-serif; color: var(--ipa-text); }
.ipa-main { max-width: 1170px; margin: 0 auto; padding: 24px; }
.ipa-fallback-header, .ipa-fallback-footer { padding: 16px 24px; }
.ipa-fallback-footer { background: #282828; color: #d6d6d6; }

/* Verhindert Seitenspruenge, wenn Scrollleisten erscheinen (z. B. beim Oeffnen von Untermenues). */
html { scrollbar-gutter: stable; overflow-y: scroll; }

.ipa-main-full { margin: 0; padding: 0; width: 100%; }

/* Beitragskarten (Elementor Loop): Farben im Wechsel, 4er-Rhythmus */
.e-collection-loop-layout-base > *:nth-child(4n+1) { background-color: var(--ipa-blau);     color: var(--ipa-weiss); }
.e-collection-loop-layout-base > *:nth-child(4n+2) { background-color: var(--ipa-marine);    color: var(--ipa-weiss); }
.e-collection-loop-layout-base > *:nth-child(4n+3) { background-color: var(--ipa-gold);      color: var(--ipa-marine); }
.e-collection-loop-layout-base > *:nth-child(4n+4) { background-color: var(--ipa-hellblau);  color: var(--ipa-marine); }
.e-collection-loop-layout-base > * a,
.e-collection-loop-layout-base > * a * { text-decoration: none; }
.e-collection-loop-layout-base img { display: block; width: 100%; max-width: none; margin: 0; padding: 0; object-fit: cover; }

/* Einzelbeitrag: Textstil fuer Inhalte im Post-Content-Bereich */
.single-post .elementor-widget-theme-post-content .e-paragraph-base { display: block; font-size: 18px; line-height: 1.65; color: var(--ipa-text); margin: 0; }
.single-post .elementor-widget-theme-post-content .e-heading-base { display: block; color: var(--ipa-marine); font-weight: 700; margin: 0; }
.single-post .elementor-widget-theme-post-content h2.e-heading-base { font-size: 28px; line-height: 1.3; }
.single-post .elementor-widget-theme-post-content h3.e-heading-base { font-size: 22px; line-height: 1.35; color: var(--ipa-blau); margin-top: 8px; }
.single-post .elementor-widget-theme-post-content h4.e-heading-base { font-size: 18px; line-height: 1.4; }

/* Nach-oben-Button */
.ipa-to-top { position: fixed; right: 16px; bottom: 16px; z-index: 60; display: inline-flex; align-items: center; gap: 10px; padding: 12px 18px; background: var(--ipa-marine); color: var(--ipa-weiss); font: 700 16px/1 Inter, system-ui, sans-serif; text-decoration: none; opacity: 0; transform: translateY(8px); transition: opacity .2s ease, transform .2s ease; }
.ipa-to-top[hidden] { display: none; }
.ipa-to-top.is-visible { opacity: 1; transform: none; }
.ipa-to-top__arrow { color: var(--ipa-gold); font-size: 22px; line-height: 1; }
.ipa-to-top:hover, .ipa-to-top:focus-visible { background: var(--ipa-blau); }
@media (prefers-reduced-motion: reduce) { .ipa-to-top { transition: none; } }

/* Sticky Header (im Customizer abschaltbar) */
body.ipa-sticky-header .elementor-location-header { position: sticky; top: 0; z-index: 100; box-shadow: 0 2px 8px rgba(8, 45, 80, .08); }
body.admin-bar.ipa-sticky-header .elementor-location-header { top: 32px; }
@media screen and (max-width: 782px) { body.admin-bar.ipa-sticky-header .elementor-location-header { top: 46px; } }

/* Header-Verkleinerung beim Scrollen: Werte kommen aus den Optionen */
body { --ipa-header-h: var(--ipa-header-h-big, 143px); --ipa-logo-w: var(--ipa-logo-width, 320px); }
body.ipa-header-shrunk { --ipa-header-h: var(--ipa-header-h-small, 72px); --ipa-logo-w: var(--ipa-logo-width-small, 160px); }
@media (prefers-reduced-motion: reduce) { .elementor-location-header * { transition: none !important; } }

/* Menuepunkt "Special": immer rot (auch bei Hover/aktiv) */
.elementor-nav-menu--main .ipa-menu-special > .elementor-item,
.elementor-nav-menu--main .ipa-menu-special > .elementor-item:hover,
.elementor-nav-menu--main .ipa-menu-special > .elementor-item:focus,
.elementor-nav-menu--main .ipa-menu-special > .elementor-item.elementor-item-active,
.elementor-nav-menu--main .ipa-menu-special > .elementor-item.highlighted{color:var(--ipa-rot)!important;}

/* "Special": goldenes Funkeln, das nach dem Laden dreimal ueber das Wort laeuft */
.elementor-nav-menu--main .ipa-menu-special > .elementor-item{
  background-image:linear-gradient(100deg,var(--ipa-rot) 0%,var(--ipa-rot) 40%,var(--ipa-gold) 50%,var(--ipa-rot) 60%,var(--ipa-rot) 100%);
  background-size:250% 100%;background-position:100% 0;background-repeat:no-repeat;
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  animation:ipa-sparkle 2.2s ease-in-out 1.2s 3;
}
@keyframes ipa-sparkle{0%{background-position:100% 0}100%{background-position:0 0}}
@media (prefers-reduced-motion:reduce){
  .elementor-nav-menu--main .ipa-menu-special > .elementor-item{animation:none;}
}

/* Pfad-Balken auf Seiten (weiss auf Blau) */
.ipa-crumbs{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px;color:#fff;font-weight:700;font-size:16px;line-height:1.4;}
.ipa-crumbs a{color:#fff;text-decoration:none;}
.ipa-crumbs a:hover{text-decoration:underline;}

/* ===== Mobil / Tablet (bis 1024px) ===== */
@media (max-width:1024px){
  /* kleinerer Header */
  body { --ipa-header-h: 96px; --ipa-logo-w: 220px; }
  body.ipa-header-shrunk { --ipa-header-h: 72px; --ipa-logo-w: 160px; }

  /* aufgeklapptes Menue: Text dunkelblau, bei Hover rot, ohne Hintergrund */
  .elementor-location-header .elementor-nav-menu--dropdown { background: var(--ipa-weiss) !important; box-shadow: 0 8px 16px rgba(8,45,80,.15); }
  .elementor-location-header .elementor-nav-menu--dropdown a,
  .elementor-location-header .elementor-nav-menu--dropdown .elementor-item,
  .elementor-location-header .elementor-nav-menu--dropdown a.elementor-sub-item,
  .elementor-location-header .elementor-nav-menu--dropdown .sub-arrow { color: var(--ipa-marine) !important; background: transparent !important; font-weight: 700; font-size: 18px; padding: 14px 20px; border-bottom: 1px solid var(--ipa-hellblau); }
  .elementor-location-header .elementor-nav-menu--dropdown a:hover,
  .elementor-location-header .elementor-nav-menu--dropdown a:focus,
  .elementor-location-header .elementor-nav-menu--dropdown a:active,
  .elementor-location-header .elementor-nav-menu--dropdown a.elementor-item-active,
  .elementor-location-header .elementor-nav-menu--dropdown a.highlighted { color: var(--ipa-rot) !important; background: transparent !important; }
  .elementor-location-header .elementor-nav-menu--dropdown .sub-menu a { font-weight: 400; padding-left: 36px; }
  .elementor-location-header .elementor-nav-menu--dropdown .ipa-menu-special > .elementor-item { color: var(--ipa-rot) !important; -webkit-text-fill-color: currentColor; background-image: none !important; animation: none; }
  .elementor-menu-toggle { color: var(--ipa-marine); }

  /* Menue als Overlay direkt unter dem Header (Header waechst nicht mehr) */
  .elementor-location-header .e-con,
  .elementor-location-header .elementor-widget-nav-menu,
  .elementor-location-header .elementor-widget-nav-menu .elementor-widget-container { position: static !important; }
  .elementor-location-header { position: relative; }
  body.ipa-sticky-header .elementor-location-header { position: sticky; }
  .elementor-location-header .elementor-nav-menu--dropdown.elementor-nav-menu__container {
    position: absolute !important; top: 100% !important; left: 0 !important; right: 0 !important;
    width: 100% !important; margin: 0 !important; transform: none !important;
    max-height: calc(100vh - 100px); overflow-y: auto; z-index: 99;
    border-top: 3px solid var(--ipa-gold);
  }
  .elementor-location-header .elementor-nav-menu--dropdown a { text-align: left; }
}

/* Nur Handy (bis 767px): Menue kompakter */
@media (max-width:767px){
  .elementor-location-header .elementor-nav-menu--dropdown a,
  .elementor-location-header .elementor-nav-menu--dropdown .elementor-item,
  .elementor-location-header .elementor-nav-menu--dropdown a.elementor-sub-item { font-family: Inter, system-ui, sans-serif; font-size: 16px; padding: 12px 20px; }
  .elementor-location-header .elementor-nav-menu--dropdown .sub-menu a { padding-left: 32px; }
}

/* Symbol "externer Link" im Menue (Klasse kommt aus functions.php) */
.elementor-nav-menu a.ipa-ext-link::after {
  content: ""; display: inline-block; width: .8em; height: .8em; margin-left: .45em; vertical-align: -0.05em;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h6v6M20 4l-9 9M18 14v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h5'/%3E%3C/svg%3E") no-repeat center / contain;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h6v6M20 4l-9 9M18 14v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h5'/%3E%3C/svg%3E") no-repeat center / contain;
}
