
/* __DESIGN_SITE__ */
/* ============================================================
   swingerclub-baden-wuerttemberg.de -- direction "neo-mint"
   Violet fonce (#4a148c -> #311b92) + vert d eau (#80cbc4 / #b2dfdb).
   Boutons ronds ou en pilule, coins tres arrondis.
   Disposition inversee : actions a gauche, nav au centre, logo a droite
   (desktop) ; hamburger a droite (mobile).
   Ne touche qu au header, a la barre mobile et au footer.
   ============================================================ */

:root{
  --nc-violet-1:#4a148c;
  --nc-violet-2:#311b92;
  --nc-violet-3:#24127a;
  --nc-mint-1:#80cbc4;
  --nc-mint-2:#b2dfdb;
}

/* ---------- HEADER DESKTOP : fond degrade diagonal ---------- */
header.sticky{
  background:linear-gradient(135deg,var(--nc-violet-1) 0%,var(--nc-violet-2) 65%,var(--nc-violet-3) 100%) !important;
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
  border-bottom-color:transparent !important;
  box-shadow:0 6px 24px -10px rgba(36,18,122,.65);
  position:relative;
  overflow:visible;
  animation:nc-header-in .55s ease both;
}

/* liseret degrade anime en pied de header (fine bande, pas une surface opaque) */
header.sticky::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:-2px;
  height:2px;
  background:linear-gradient(90deg,transparent,var(--nc-mint-1),var(--nc-mint-2),var(--nc-mint-1),transparent);
  background-size:200% 100%;
  animation:nc-shimmer 6s linear infinite;
  pointer-events:none;
}

@keyframes nc-header-in{
  from{opacity:0;transform:translateY(-8px);}
  to{opacity:1;transform:translateY(0);}
}
@keyframes nc-shimmer{
  0%{background-position:0% 0;}
  100%{background-position:200% 0;}
}

/* Ordre invers\00e9  desktop : actions a gauche (order 1), nav au centre
   (order 2, flex:1 pour occuper l espace restant et centrer son bouton),
   logo a droite (order 3). Le conteneur garde son justify-between d origine. */
header.sticky div.hidden.md\:flex.items-center.gap-4.flex-shrink-0{
  order:1;
  gap:.5rem;
}
header.sticky nav.hidden.md\:flex{
  order:2;
  flex:1 1 auto;
  display:flex;
  justify-content:center;
}
header.sticky div.hidden.md\:flex.items-center.flex-shrink-0:not(.gap-4){
  order:3;
  justify-content:flex-end;
  min-width:0;
}

/* logo a droite : pastille vert d eau translucide, coins tres arrondis */
header.sticky div.hidden.md\:flex.items-center.flex-shrink-0:not(.gap-4) a{
  color:var(--nc-mint-2) !important;
  padding:.35rem 1rem;
  border-radius:999px;
  background:rgba(178,223,219,.10);
  border:1px solid rgba(178,223,219,.28);
  letter-spacing:.01em;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:22rem;
  transition:background-color .2s ease,transform .2s ease;
}
header.sticky div.hidden.md\:flex.items-center.flex-shrink-0:not(.gap-4) a:hover{
  background:rgba(178,223,219,.20);
  transform:translateY(-1px);
}

/* bouton de nav ("Top 10 Bundeslaender") : pilule vert d eau */
header.sticky nav.hidden.md\:flex button{
  color:var(--nc-mint-2) !important;
  background:rgba(128,203,196,.12);
  border:1px solid rgba(128,203,196,.35);
  border-radius:999px;
  padding:.5rem 1.1rem;
  transition:background-color .2s ease,transform .2s ease,box-shadow .2s ease;
}
header.sticky nav.hidden.md\:flex button:hover{
  background:var(--nc-mint-1);
  color:var(--nc-violet-2) !important;
  transform:translateY(-2px);
  box-shadow:0 8px 18px -6px rgba(128,203,196,.55);
}

/* boutons d action (login, recherche) : parfaitement ronds */
header.sticky button[aria-label="Login"],
header.sticky button[aria-label="Suche"]{
  width:2.5rem;
  height:2.5rem;
  padding:0 !important;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:rgba(128,203,196,.14);
  border:1px solid rgba(128,203,196,.32);
  color:var(--nc-mint-2) !important;
  transition:background-color .2s ease,transform .2s ease,box-shadow .2s ease;
}
header.sticky button[aria-label="Login"]:hover,
header.sticky button[aria-label="Suche"]:hover{
  background:var(--nc-mint-1);
  color:var(--nc-violet-2) !important;
  transform:translateY(-2px) scale(1.04);
  box-shadow:0 8px 18px -6px rgba(128,203,196,.55);
}
@media (prefers-color-scheme:dark){
  header.sticky nav.hidden.md\:flex button,
  header.sticky button[aria-label="Login"],
  header.sticky button[aria-label="Suche"]{
    color:var(--nc-mint-2) !important;
  }
}

/* ---------- BARRE MOBILE : bandeau violet, hamburger a droite ---------- */
@media (max-width:767px){
  header.sticky div.md\:hidden.flex.items-center.justify-between.w-full{
    flex-direction:row-reverse;
    background:linear-gradient(120deg,var(--nc-violet-1),var(--nc-violet-2));
    margin:0 -1rem;
    padding:.55rem 1rem;
    box-shadow:inset 0 -1px 0 rgba(178,223,219,.25);
  }
  /* hamburger : pastille ronde vert d eau, desormais a droite (row-reverse) */
  header.sticky div.md\:hidden button[aria-label="Menü"]{
    color:var(--nc-mint-2) !important;
    width:2.25rem;
    height:2.25rem;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    background:rgba(128,203,196,.16);
    border:1px solid rgba(128,203,196,.32);
  }
  /* logo mobile, centre, en vert d eau */
  header.sticky div.md\:hidden a{
    color:var(--nc-mint-2) !important;
    font-weight:700;
    letter-spacing:.01em;
  }
  /* bouton "Mitgliederbereich" : pilule discrete, se retrouve a gauche */
  header.sticky div.md\:hidden button:not([aria-label="Menü"]){
    color:var(--nc-mint-2) !important;
    background:rgba(178,223,219,.10);
    border:1px solid rgba(178,223,219,.25);
    border-radius:999px;
    padding:.35rem .7rem;
    min-height:44px;
  }
}

/* ---------- FOOTER : violet, 2 colonnes larges, liens en pilule ---------- */
footer.border-t{
  background:linear-gradient(160deg,var(--nc-violet-2) 0%,var(--nc-violet-3) 100%) !important;
  border-top-color:transparent !important;
  border-radius:28px 28px 0 0;
  overflow:hidden;
  position:relative;
}
footer.border-t::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:2px;
  background:linear-gradient(90deg,transparent,var(--nc-mint-1),transparent);
  opacity:.7;
}

/* 2 colonnes larges a partir de 640px : marque+navigation a gauche,
   mentions+Bundeslaender a droite (mobile reste empile, sans debordement) */
@media (min-width:640px){
  footer .grid.grid-cols-1{
    grid-template-columns:1fr 1fr;
    grid-template-areas:"nc-brand nc-legal" "nc-nav nc-land";
    row-gap:2.5rem;
  }
  footer .grid.grid-cols-1 > div:nth-child(1){grid-area:nc-brand;}
  footer .grid.grid-cols-1 > div:nth-child(2){grid-area:nc-nav;}
  footer .grid.grid-cols-1 > div:nth-child(3){grid-area:nc-legal;}
  footer .grid.grid-cols-1 > div:nth-child(4){grid-area:nc-land;}
}

footer h3[style]{ color:var(--nc-mint-2) !important; }
footer h3:not([style]){ color:var(--nc-mint-2) !important; }
footer .text-zinc-600{ color:#cbb9ec !important; }
footer .text-zinc-500{ color:#a993d6 !important; }
footer .border-zinc-200{ border-color:rgba(178,223,219,.22) !important; }

/* liens de navigation/mentions/Bundeslaender : chips pilule au survol */
footer .space-y-2\.5 a{
  color:var(--nc-mint-2) !important;
  display:inline-block;
  padding:.15rem .1rem;
  border-radius:999px;
  transition:background-color .2s ease,padding .2s ease,transform .2s ease;
}
footer .space-y-2\.5 a:hover{
  background:rgba(128,203,196,.16);
  padding:.15rem .7rem;
  transform:translateY(-1px);
}

footer a[href="/cgu"].underline{ color:var(--nc-mint-2) !important; }
footer a[href="/sitemap.xml"]{
  color:var(--nc-violet-2) !important;
  background:var(--nc-mint-1);
  border-radius:999px;
  padding:.4rem 1rem;
  font-weight:600;
  transition:transform .2s ease,box-shadow .2s ease;
}
footer a[href="/sitemap.xml"]:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 16px -6px rgba(128,203,196,.6);
}

/* ---------- accessibilite : coupe toute animation/transition ---------- */
@media (prefers-reduced-motion:reduce){
  header.sticky,
  header.sticky::after,
  header.sticky div.hidden.md\:flex.items-center.flex-shrink-0:not(.gap-4) a,
  header.sticky nav.hidden.md\:flex button,
  header.sticky button[aria-label="Login"],
  header.sticky button[aria-label="Suche"],
  footer .space-y-2\.5 a,
  footer a[href="/sitemap.xml"]{
    animation:none !important;
    transition:none !important;
  }
  header.sticky nav.hidden.md\:flex button:hover,
  header.sticky button[aria-label="Login"]:hover,
  header.sticky button[aria-label="Suche"]:hover,
  header.sticky div.hidden.md\:flex.items-center.flex-shrink-0:not(.gap-4) a:hover,
  footer .space-y-2\.5 a:hover,
  footer a[href="/sitemap.xml"]:hover{
    transform:none !important;
  }
}

/* planche du 17/09 : les actions sont à GAUCHE → la bulle « Mach mit! » (centrée sous l'icône profil,
   translate -50 %) sortait de l'écran par la gauche ; alignée sur le bord gauche de l'icône. Et le logo
   en pastille tronquait « Swingerclub in Bade… » : plus de place sur desktop. */
@media (min-width: 768px) {
  header.sticky .absolute.top-full { left: 0 !important; right: auto !important; transform: none !important; translate: none !important; }
  header.sticky div.hidden.md\:flex.items-center.flex-shrink-0:not(.gap-4) a.font-bold[href="/"] { max-width: none !important; font-size: 1rem !important; letter-spacing: 0 !important; padding: .45rem .95rem !important; }
  header.sticky div.hidden.md\:flex.items-center.flex-shrink-0:not(.gap-4) { flex: 0 0 auto !important; min-width: 0; }
}

/* garde-fou design_site.py (Next, 17/09) : le logo mobile est un <a> absolu centré ; un nom de site
   allemand long (« Kostenlose Sexdates in Deutschland ») débordait ou s'empilait sur 3 lignes
   par-dessus les icônes (capture du 17/09). Une ligne, ellipse, place réservée aux boutons. */
@media (max-width: 767px) {
  header .md\:hidden a[href="/"] {
    max-width: 56% !important; white-space: nowrap !important; overflow: hidden !important;
    text-overflow: ellipsis !important; font-size: clamp(.95rem, 4.4vw, 1.25rem) !important; line-height: 1.2 !important;
    position: absolute !important; /* lot 21 : un `position: relative` posé pour un ::after l'avait mis dans le flux → bouton par-dessus */
  }
  header nav.hidden { display: none !important; } /* lot 21 : `display:flex` posé sur nav.hidden.md:flex la faisait sortir sur mobile, par-dessus le logo */
}
/* __END_DESIGN_SITE__ */
