/*
Theme Name: frauadel reference ui — ultra
Author: frauadel
Version: 43.0
Requires PHP: 8.0
*/

:root{
  --black:#0a0a0a;
  --white:#ffffff;
  --space-md:32px;
  --space-lg:56px;
  --safe-top:env(safe-area-inset-top,0px);
  --safe-right:env(safe-area-inset-right,0px);
}

*,
*::before,
*::after{box-sizing:border-box}

html{-webkit-text-size-adjust:100%}

html,body{
  margin:0;
  padding:0;
  width:100%;
  min-height:100%;
  background:var(--black);
  color:var(--white);
  font-family:"InterVariable","Inter",system-ui,-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
  font-variation-settings:"wght" 420;
  -webkit-font-smoothing:antialiased;
}

a{color:#fff!important;text-decoration:none!important}

/* HERO */
.hero{
  position:fixed;
  inset:0;
  z-index:0;
  overflow:hidden;
}
.hero video,
.hero img{
  width:100%;
  height:100%;
  object-fit:cover;
}

/* film grain */
.hero::after{
  content:"";
  position:absolute;
  inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='.08'/%3E%3C/svg%3E");
  mix-blend-mode:overlay;
  pointer-events:none;
}

/* BACK BUTTON */
.back-link{
  position:fixed;
  left:var(--space-md);
  bottom:var(--space-md);
  z-index:10;
  font-size:12px;
  letter-spacing:.22em;
  text-transform:uppercase;
  opacity:.6;
}
.back-link:hover{opacity:1}

/* HAMBURGER */
.menu-toggle{
  position:fixed;
  top:calc(var(--space-md) + var(--safe-top));
  right:calc(var(--space-md) + var(--safe-right));
  width:36px;height:26px;
  z-index:10;
  cursor:pointer;
}
.menu-toggle span{
  position:absolute;left:0;right:0;height:2px;background:#fff;
  transition:transform .35s ease, opacity .25s ease;
}
.menu-toggle span:nth-child(1){top:0}
.menu-toggle span:nth-child(2){top:12px}
.menu-toggle span:nth-child(3){bottom:0}

/* MENU OVERLAY */
.menu-overlay{
  position:fixed;inset:0;z-index:20;
  background:rgba(0,0,0,.95);
  backdrop-filter:blur(28px);
  -webkit-backdrop-filter:blur(28px);
  opacity:0;pointer-events:none;
  transition:opacity .45s ease;
}
.menu-overlay.active{opacity:1;pointer-events:auto}

.menu-overlay nav{
  min-height:100dvh;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
}

/* MENU LOGO */
.menu-logo{margin-bottom:6vh}
.menu-logo img{height:32px;width:auto}

/* MENU LIST */
.menu-overlay ul{list-style:none;margin:0;padding:0}
.menu-overlay li{margin:26px 0}
.menu-overlay a{
  font-size:clamp(2.2rem,6vw,4rem);
  letter-spacing:.28em;
  text-transform:uppercase;
}

/* MENU FOOTER */
.menu-footer{
  margin-top:8vh;
  font-size:12px;
  letter-spacing:.24em;
  text-transform:uppercase;
  opacity:.55;
}
.menu-footer span{display:block;margin-top:8px;font-size:10px}

/* CONTENT */
#site-content{
  position:relative;
  z-index:5;
  max-width:760px;
  margin:0 auto;
  padding:calc(var(--space-lg) + var(--safe-top)) var(--space-md) var(--space-lg);
}
#site-content p{
  font-size:clamp(1.05rem,3.6vw,1.25rem);
  line-height:1.75;
}


/* HERO background image fix */
.hero{
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}


/* FORCE white back button */
.back-link{color:#fff!important}

/* HERO rebuilt (no pseudo elements) */
.hero{
  position:fixed;
  inset:0;
  z-index:0;
}
.hero-bg{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}
.hero-grain{
  position:absolute;
  inset:0;
  pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='.06'/%3E%3C/svg%3E");
  mix-blend-mode:overlay;
}

/* MENU CLOSE BUTTON */
.menu-close{
  position:absolute;
  top:32px;
  right:32px;
  background:none;
  border:0;
  color:#fff;
  font-size:32px;
  cursor:pointer;
}


/* REMOVE ALL GRAIN */
.hero-grain{display:none!important}

/* HERO */
.hero{
  position:fixed;
  inset:0;
  z-index:0;
}
.hero-bg{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}

/* EDITORIAL CLOSE */
.menu-close-text{
  position:absolute;
  top:32px;
  right:32px;
  color:#fff;
  font-size:12px;
  letter-spacing:.28em;
  text-transform:uppercase;
  cursor:pointer;
  opacity:.65;
}
.menu-close-text:hover{opacity:1}

/* FORCE BACK WHITE */
.back-link{color:#fff!important}


/* ================================
   GLOBAL PAGE STYLING (DESKTOP + MOBILE)
   ================================ */

html, body {
  background:#000;
  color:#fff;
}

a { color:#fff; }

/* CONTENT STRUCTURE */
.site-content,
.page,
.page-content,
.entry-content {
  background:#000;
  color:#fff;
  max-width: 1200px;
  margin: 0 auto;
  padding: clamp(64px, 8vw, 120px) clamp(24px, 6vw, 80px);
}

/* TYPOGRAPHY CONSISTENCY */
.entry-content p,
.entry-content li {
  font-size: clamp(16px, 2.1vw, 20px);
  line-height: 1.55;
}

/* HEADINGS */
.entry-content h1,
.entry-content h2,
.entry-content h3 {
  color:#fff;
  margin: 0 0 1.2em;
}

/* ================================
   MOBILE PARITY
   ================================ */

@media (max-width: 1024px) {
  body {
    font-size: 100%;
  }

  .entry-content,
  .site-content {
    padding: 72px 24px;
  }

  /* remove mobile-only white backgrounds */
  section, article, main {
    background: transparent;
  }
}

/* ================================
   PRIVACY / DATENSCHUTZ PAGE FIX
   ================================ */

.page-id-datenschutz,
.page-template-default {
  background:#000;
}

/* Ensure inline, no boxed white areas */
.entry-content > * {
  background: transparent !important;
}

/* ================================
   SCROLL + INTERACTION PARITY
   ================================ */

@media (hover: none) {
  * {
    transition: none !important;
  }
}
