/* =========================================================
   RE:BELLE™ Media – styles.css (komplett neu, sauber, stabil)
   Mobile-first. Index (Panels) + Static Pages (About/Preise).
   ========================================================= */

/* ---------- Tokens ---------- */
:root{
  --bg:#f6f4f1;
  --fg:#14161b;
  --muted:rgba(20,22,27,.72);

  --glass:rgba(255,255,255,.78);
  --glass2:rgba(255,255,255,.62);
  --stroke:rgba(20,22,27,.10);
  --stroke2:rgba(20,22,27,.18);

  --accent:#b57a7e;
  --accent2:#6f97aa;

  --radius:18px;
  --shadow:0 16px 48px rgba(0,0,0,.12);
  --maxw:1100px;

  --topbar-h:72px;
}

/* Optional Dark (falls du später umschaltest) */
[data-theme="dark"]{
  --bg:#0f1115;
  --fg:#f2f2f2;
  --muted:rgba(242,242,242,.78);

  --glass:rgba(18,20,26,.66);
  --glass2:rgba(18,20,26,.46);
  --stroke:rgba(255,255,255,.10);
  --stroke2:rgba(255,255,255,.16);

  --shadow:0 18px 60px rgba(0,0,0,.45);
}

/* ---------- Base ---------- */
*{ box-sizing:border-box; }
html,body{ height:100%; }

body{
  margin:0;
  background:var(--bg);
  color:var(--fg);
  font-family:"Nunito Sans",system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

/* Skip-Link */
.skip{
  position:absolute;
  left:-999px;
  top:10px;
  background:#fff;
  color:#000;
  padding:10px 12px;
  border-radius:10px;
  z-index:9999;
}
.skip:focus{ left:10px; }

/* ---------- Typography ---------- */
.h1,.h2{
  margin:0 0 10px;
  font-family:"Cormorant",Georgia,serif;
  letter-spacing:-.02em;
}
.h1{
  font-size:clamp(32px,6vw,56px);
  line-height:1.02;
}
.h2{
  font-size:clamp(26px,4.8vw,44px);
  line-height:1.06;
}

.eyebrow{
  margin:0 0 8px;
  font-weight:900;
  font-size:12px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--muted);
}

.lead{
  margin:0 0 14px;
  font-size:15px;
  line-height:1.72;
  color:var(--muted);
}

.dropcapA{
  font-family:"Allura",cursive;
  font-weight:400;
  display:inline-block;
  transform:translateY(8px);
  margin-right:4px;
  font-size:70px;
  line-height:.65;
}

/* ---------- Buttons / Pills ---------- */
.pill{
  border:1px solid var(--stroke);
  background:rgba(255,255,255,.35);
  color:var(--fg);
  padding:10px 12px;
  border-radius:999px;
  font-weight:900;
  font-size:12px;
  letter-spacing:.2px;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}
[data-theme="dark"] .pill{ background:rgba(255,255,255,.06); }
.pill:hover{ border-color:var(--stroke2); }

.pill--accent{
  background:var(--fg);
  color:var(--bg);
  border-color:var(--fg);
}

.pill--lang{
  min-width:46px;
}

/* ---------- Topbar ---------- */
.topbar{
  position:fixed;
  inset:0 0 auto 0;
  z-index:60;
  padding:10px 10px 0;
  pointer-events:none;
}

.topbar__inner{
  pointer-events:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;

  margin:0 auto;
  max-width:var(--maxw);

  padding:10px 12px;
  border:1px solid var(--stroke);
  border-radius:999px;
  background:linear-gradient(180deg,var(--glass),var(--glass2));
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  box-shadow:var(--shadow);
}

.brand{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}
.brand__mark{
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  border-radius:999px;
  border:1px solid var(--stroke);
  background:rgba(255,255,255,.35);
}
[data-theme="dark"] .brand__mark{ background:rgba(255,255,255,.08); }

.brand__text{ line-height:1.05; min-width:0; }
.brand__name{
  font-weight:900;
  letter-spacing:.2px;
  font-size:13px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.brand__tag{
  font-size:11px;
  opacity:.82;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.nav{
  display:none;
  gap:14px;
}
.nav a{
  color:var(--muted);
  text-decoration:none;
  font-weight:900;
  font-size:12px;
  letter-spacing:.2px;
}
.nav a:hover{ color:var(--fg); }

.topbar__actions{
  display:flex;
  align-items:center;
  gap:10px;
}

@media (min-width:860px){
  .nav{ display:flex; }
}

/* ---------- Index: Snap Panels ---------- */
body.page-index{ overflow:hidden; } /* optional: wenn du body class setzt */

.snap{
  height:100vh;
  overflow-y:auto;
  scroll-snap-type:y proximity;
  scroll-behavior:smooth;
  scroll-padding-top:var(--topbar-h);
  -ms-overflow-style:none;
  scrollbar-width:none;
}
.snap::-webkit-scrollbar{ display:none; }

.panel{
  position:relative;
  height:100vh;
  scroll-snap-align:start;
  display:grid;
  align-items:center;
  overflow:hidden;
}

.panel__bg{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  z-index:0;
}

.panel__shade{
  position:absolute;
  inset:0;
  z-index:1;
  background:
    radial-gradient(900px 520px at 20% 30%, rgba(0,0,0,.06), transparent 60%),
    radial-gradient(900px 520px at 80% 70%, rgba(0,0,0,.08), transparent 60%),
    linear-gradient(180deg, rgba(0,0,0,.24), rgba(0,0,0,.14) 35%, rgba(0,0,0,.22));
  pointer-events:none;
}

.panel::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.10;
  z-index:2;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.16'/%3E%3C/svg%3E");
}

.panel__content{
  position:relative;
  z-index:10;
  width:min(980px, calc(100% - 28px));
  margin:0 auto;
  padding:calc(var(--topbar-h) + 2px) 0 32px;
}

.glass{
  border:1px solid var(--stroke);
  background:linear-gradient(180deg,var(--glass),var(--glass2));
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:18px 16px;
}
@media (min-width:680px){
  .glass{ padding:26px 24px; }
}

/* Cards / grids (Index & Static) */
.grid2{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  margin-top:12px;
}
@media (min-width:720px){
  .grid2{ grid-template-columns:1fr 1fr; }
}

.grid3{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:10px;
  margin-top:12px;
}

.card{
  border:1px solid var(--stroke);
  background:rgba(255,255,255,.55);
  border-radius:16px;
  padding:14px;
}
[data-theme="dark"] .card{ background:rgba(255,255,255,.05); }
.card h3{
  margin:0 0 6px;
  font-family:"Cormorant",Georgia,serif;
  font-size:20px;
}
.card p{
  margin:0;
  color:var(--muted);
  line-height:1.65;
  font-size:14px;
}

.gallery{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
@media (min-width:720px){
  .gallery{ grid-template-columns:repeat(4, 1fr); }
}
.shot{
  margin:0;
  border-radius:18px;
  overflow:hidden;
  border:1px solid var(--stroke);
  background:rgba(255,255,255,.45);
}
[data-theme="dark"] .shot{ background:rgba(255,255,255,.05); }
.shot img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  aspect-ratio:3 / 4;
}

/* ---------- Static Pages: Base ---------- */
.page-static, .page-price{
  overflow:auto;
}

.topbar--static{
  position:sticky;
  top:0;
  z-index:80;
  padding:10px 10px 0;
  background:rgba(246,244,241,.92);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--stroke);
}

.nav--inline{ display:none; }
@media (min-width:860px){
  .nav--inline{ display:flex; }
}

.static{
  width:min(var(--maxw), calc(100% - 28px));
  margin:0 auto;
  padding:22px 0 60px;
}

/* Hero & Sections */
.staticHero{
  padding:26px 0 16px;
}

.staticCtas{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:10px;
}

.staticSection{
  padding:34px 0;
  border-top:1px solid var(--stroke);
}

/* About & Price cards */
.staticGrid{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
  margin-top:14px;
}
@media (min-width:860px){
  .staticGrid{ grid-template-columns:1fr 1fr; }
}

.staticCard{
  border:1px solid var(--stroke);
  border-radius:var(--radius);
  padding:16px;
  background:linear-gradient(180deg,var(--glass),var(--glass2));
  box-shadow:var(--shadow);
}
.staticCard h3{
  margin:0 0 6px;
  font-family:"Cormorant",Georgia,serif;
  font-size:22px;
}
.staticCard p{
  margin:0;
  color:var(--muted);
  line-height:1.7;
}

.staticNote{
  margin-top:14px;
  border:1px solid var(--stroke);
  border-radius:var(--radius);
  padding:14px;
  background:rgba(20,22,27,.04);
  color:rgba(20,22,27,.82);
  line-height:1.7;
}

.staticProse p{
  margin:0 0 10px;
  color:rgba(20,22,27,.78);
  line-height:1.8;
}
.staticSep{ margin:18px 0 16px; }
.staticSep span{
  display:block;
  height:1px;
  background:var(--stroke);
  width:min(460px, 100%);
}

/* Partner grid */
.partnerGrid{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  margin-top:14px;
}
@media (min-width:860px){
  .partnerGrid{ grid-template-columns:repeat(3, 1fr); }
}
.partnerItem{
  text-decoration:none;
  border:1px solid var(--stroke);
  border-radius:var(--radius);
  padding:14px;
  background:rgba(255,255,255,.55);
  display:flex;
  flex-direction:column;
  gap:6px;
  font-weight:900;
  color:var(--fg);
}
.partnerItem span{
  font-weight:600;
  color:var(--muted);
}

/* Contact */
.contact{
  display:grid;
  gap:10px;
  margin-top:10px;
}
.contact__item{
  text-decoration:none;
  color:var(--fg);
  border:1px solid var(--stroke);
  background:rgba(255,255,255,.55);
  border-radius:16px;
  padding:14px;
  display:grid;
  gap:4px;
}
[data-theme="dark"] .contact__item{ background:rgba(255,255,255,.05); }
.contact__item:hover{ border-color:var(--stroke2); }
.contact__k{
  font-size:12px;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--muted);
}
.contact__v{
  font-size:14px;
  font-weight:900;
}

/* Footer */
.rb-footer{
  margin-top:14px;
  padding:14px 12px 8px;
  border-top:1px solid var(--stroke);
  text-align:center;
}
.rb-footer p{
  margin:4px 0;
  font-weight:900;
  letter-spacing:.1px;
}
.rb-footer__tag{ opacity:.88; }
.rb-footer__links{
  margin-top:8px;
  font-weight:800;
  opacity:.85;
}

/* ---------- Preise ---------- */
.saleBanner{
  margin-top:14px;
  border:1px solid var(--stroke);
  border-radius:999px;
  padding:10px 12px;
  display:flex;
  gap:10px;
  align-items:center;
  background:rgba(255,255,255,.55);
}
.saleBadge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:var(--fg);
  color:var(--bg);
  padding:6px 10px;
  border-radius:999px;
  font-weight:900;
  letter-spacing:.18em;
  font-size:12px;
}
.saleText{ color:rgba(20,22,27,.78); }

.priceTable{
  margin-top:14px;
  border:1px solid var(--stroke);
  border-radius:var(--radius);
  overflow:hidden;
  background:rgba(255,255,255,.55);
}
.priceRow{
  display:grid;
  grid-template-columns:1fr auto;
  gap:12px;
  padding:12px 14px;
  border-top:1px solid var(--stroke);
}
.priceRow:first-child{ border-top:none; }
.priceLeft{ display:flex; flex-direction:column; gap:4px; }
.priceLeft b{ font-weight:900; }
.priceLeft span{ color:var(--muted); }
.priceRight{ display:flex; gap:10px; align-items:baseline; white-space:nowrap; }
.old{ color:rgba(20,22,27,.46); text-decoration:line-through; font-weight:800; }
.new{ font-weight:900; font-size:18px; color:var(--fg); }

.faqGrid{
  margin-top:14px;
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
}
@media (min-width:860px){
  .faqGrid{ grid-template-columns:repeat(3, 1fr); }
}
.faqItem{
  border:1px solid var(--stroke);
  border-radius:var(--radius);
  padding:14px;
  background:rgba(255,255,255,.55);
  display:grid;
  gap:6px;
}
.faqItem span{ color:var(--muted); line-height:1.7; }

/* =========================================================
   ABOUT – Bild bleibt, aber Blöcke/Text werden „lesbar & edel“
   ========================================================= */

/* 1) Hintergrundbild über ALLES (bleibt wie es ist, nicht „zu groß“ durch Fixes) */
.page-static.about{
  position:relative;
  background:transparent;
}

/* Bild als „Seiten-Fundament“ */
.page-static.about::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:0;

  /* Wichtig: KEIN scaling-hack – nur cover (wie vorher) */
  background:url("assets/images/about-hero.jpg") center 14% / cover no-repeat;
  filter:grayscale(100%) contrast(1.05);
}

/* 2) Heller Editorial-Schleier – damit Text nicht absäuft */
.page-static.about::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:1;

  background:
    radial-gradient(900px 520px at 25% 25%, rgba(246,244,241,.22), transparent 60%),
    linear-gradient(180deg,
      rgba(246,244,241,.85) 0%,
      rgba(246,244,241,.55) 35%,
      rgba(246,244,241,.40) 70%,
      rgba(246,244,241,.85) 100%
    );
}

/* Inhalt darüber */
.page-static.about main{
  position:relative;
  z-index:2;
}

/* Topbar auf Bild */
.page-static.about .topbar--static{
  background:rgba(246,244,241,.72);
  border-bottom:1px solid rgba(20,22,27,.10);
}

/* 3) Hero: KEIN grauer Klotz – Text steht direkt „auf Bild“, aber stabil */
.page-static.about .staticHero{
  padding-top:60px;
  padding-bottom:12px;
  background:transparent;
}

/* 4) Sections: Glas-Karten, durchscheinend, nicht platt-grau */
.page-static.about .staticSection{
  margin-top:46px;
  padding:38px 28px;

  background:rgba(255,255,255,.58);
  border:1px solid rgba(255,255,255,.66);
  border-radius:24px;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  box-shadow:0 30px 90px rgba(0,0,0,.10);
}

/* Textfarben: sauber, hoch-kontrastig */
.page-static.about .h1,
.page-static.about .h2{
  color:rgba(20,22,27,.92);
}
.page-static.about .lead,
.page-static.about .staticProse p{
  color:rgba(20,22,27,.80);
}

/* Partner/Contact auf About ebenfalls „glasig“ */
.page-static.about .partnerItem,
.page-static.about .contact__item{
  background:rgba(255,255,255,.62);
}

/* Mobile Feinschliff */
@media (max-width:768px){
  .page-static.about::before{
    background-position:center 10%;
  }
  .page-static.about .staticSection{
    padding:28px 18px;
    margin-top:34px;
    border-radius:20px;
  }
}

/* =========================================================
   Utility: Reveal (falls du’s nutzt)
   ========================================================= */
.reveal{
  opacity:0;
  transform:translateY(16px);
  transition:opacity .7s ease, transform .7s ease;
}
.reveal.is-in{
  opacity:1;
  transform:translateY(0);
}

@media (prefers-reduced-motion: reduce){
  .snap{ scroll-behavior:auto; }
  .reveal{ transition:none; }
}
