/* Lumera Dental — Unterseiten-Komponenten in der Insider-Madeira-Designsprache.
   Tokens kommen aus der Webflow-CSS (:root --base-color-*). Hell, GT Super Display + PP Mori. */

:root{
  --lum-ink:#201f1d;
  --lum-light:#f9f9f9;
  --lum-beige:#f1ede5;
  --lum-darkbeige:#c6c3bb;
  --lum-grey:#383838;
  --lum-soft:#6a6a6a;
}

/* ---------- PAGE HERO ---------- */
.page-hero{
  position:relative; overflow:hidden;
  background:var(--lum-ink); color:#fff;
  padding:11em 0 5.5em;
}
.page-hero-bg{
  position:absolute; inset:0; z-index:0;
  background-size:cover; background-position:center;
  opacity:1;
}
.page-hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,19,18,.5) 0%,rgba(20,19,18,.6) 55%,rgba(20,19,18,.72) 100%);}
.page-hero > .padding-global{position:relative;z-index:1;}
.page-hero .tagline{color:var(--lum-darkbeige);margin-bottom:1.1em;}
.page-hero h1{
  font-family:'GT Super Display',Georgia,serif; font-weight:400;
  font-size:5em; line-height:1.02; letter-spacing:-.01em;
  margin:0 0 .42em; max-width:18ch;
}
.page-hero p{
  font-family:'PP Mori',sans-serif; font-size:1.3em; line-height:1.6;
  color:rgba(255,255,255,.84); max-width:44ch; margin:0 0 1.8em;
}

/* ---------- SECTIONS ---------- */
.lumera-section{padding:6.5em 0;background:var(--lum-light);color:var(--lum-ink);}
.lumera-section.is-beige{background:var(--lum-beige);}
.lumera-section.is-ink{background:var(--lum-ink);color:#fff;}
.lumera-narrow{max-width:52em;margin:0 auto;}
.lumera-section .tagline{color:var(--lum-soft);margin-bottom:1.4em;}
.lumera-section.is-ink .tagline{color:var(--lum-darkbeige);}
.lumera-h2{
  font-family:'GT Super Display',Georgia,serif; font-weight:400;
  font-size:3em; line-height:1.1; letter-spacing:-.01em; margin:0 0 .55em;
}
.lumera-body p{
  font-family:'PP Mori',sans-serif; font-size:1.18em; line-height:1.75;
  color:var(--lum-grey); margin:0 0 1em; max-width:44em;
}
.lumera-section.is-ink .lumera-body p{color:rgba(255,255,255,.82);}

/* ---------- LIST ---------- */
.lumera-list{list-style:none;margin:1.8em 0 0;padding:0;display:grid;gap:1.05em;}
.lumera-list li{position:relative;padding-left:1.6em;font-family:'PP Mori',sans-serif;font-size:1.12em;line-height:1.65;color:var(--lum-grey);max-width:46em;}
.lumera-list li::before{content:"";position:absolute;left:0;top:.62em;width:.5em;height:.5em;border-radius:50%;background:var(--lum-ink);opacity:.5;}
.lumera-list li strong{color:var(--lum-ink);font-weight:500;}
.lumera-section.is-ink .lumera-list li,.lumera-section.is-ink .lumera-list li strong{color:#fff;}
.lumera-section.is-ink .lumera-list li::before{background:var(--lum-darkbeige);opacity:1;}

/* ---------- CARDS (Leistungs-Übersicht) ---------- */
.lumera-cards{display:flex;flex-wrap:wrap;justify-content:center;gap:1.5em;margin-top:.5em;}
.lumera-cards .lumera-card{flex:0 1 calc(33.333% - 1.5em);min-width:255px;}
.lumera-card{
  display:flex;flex-direction:column;background:#fff;border:1px solid rgba(32,31,29,.09);
  border-radius:.4em;padding:2.1em 1.9em;text-decoration:none;color:inherit;
  transition:transform .4s ease,box-shadow .4s ease,border-color .4s ease;
}
.lumera-card:hover{transform:translateY(-4px);box-shadow:0 18px 50px rgba(32,31,29,.10);border-color:rgba(32,31,29,.2);}
.lumera-card h3{font-family:'GT Super Display',Georgia,serif;font-weight:400;font-size:1.7em;line-height:1.15;margin:0 0 .5em;}
.lumera-card p{font-family:'PP Mori',sans-serif;font-size:1.02em;line-height:1.6;color:var(--lum-soft);margin:0 0 1.2em;flex:1;}
.lumera-card .card-go{font-family:'PP Mori',sans-serif;font-size:.95em;letter-spacing:.04em;color:var(--lum-ink);opacity:.75;}
.lumera-card:hover .card-go{opacity:1;}

/* ---------- TEAM ---------- */
.lumera-team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.9em;margin-top:1em;}
.lumera-team-card{display:flex;flex-direction:column;}
.lumera-team-photo{aspect-ratio:3/4;background:var(--lum-darkbeige);border-radius:.4em;overflow:hidden;margin-bottom:1.1em;display:flex;align-items:flex-end;justify-content:flex-start;}
.lumera-team-photo img{width:100%;height:100%;object-fit:cover;display:block;-webkit-filter:grayscale(100%) contrast(1.03)!important;filter:grayscale(100%) contrast(1.03)!important;transition:-webkit-filter .6s ease,filter .6s ease;}
.lumera-team-card:hover .lumera-team-photo img{-webkit-filter:grayscale(0) contrast(1)!important;filter:grayscale(0) contrast(1)!important;}
.lumera-team-photo .ph-initials{font-family:'GT Super Display',Georgia,serif;font-size:2.4em;color:rgba(32,31,29,.45);padding:.5em;}
.lumera-team-name{font-family:'GT Super Display',Georgia,serif;font-weight:400;font-size:1.45em;margin:0 0 .15em;}
.lumera-team-role{font-family:'PP Mori',sans-serif;font-size:.92em;letter-spacing:.04em;text-transform:uppercase;color:var(--lum-soft);margin:0 0 .7em;}
.lumera-team-bio{font-family:'PP Mori',sans-serif;font-size:1.02em;line-height:1.6;color:var(--lum-grey);margin:0;}

/* ---------- FAQ ---------- */
.lumera-faq{max-width:48em;margin:1.5em auto 0;}
.lumera-faq details{border-bottom:1px solid rgba(32,31,29,.14);padding:1.15em 0;}
.lumera-faq summary{font-family:'GT Super Display',Georgia,serif;font-weight:400;font-size:1.45em;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1em;}
.lumera-faq summary::-webkit-details-marker{display:none;}
.lumera-faq summary::after{content:"+";font-family:'PP Mori',sans-serif;font-size:1.1em;color:var(--lum-soft);transition:transform .3s ease;}
.lumera-faq details[open] summary::after{transform:rotate(45deg);}
.lumera-faq details p{font-family:'PP Mori',sans-serif;font-size:1.08em;line-height:1.7;color:var(--lum-grey);margin:.9em 0 0;max-width:44em;}

/* ---------- CTA BAND ---------- */
.lumera-cta{background:var(--lum-ink);color:#fff;padding:6.5em 0;text-align:center;}
.lumera-cta h2{font-family:'GT Super Display',Georgia,serif;font-weight:400;font-size:3.4em;line-height:1.08;margin:0 auto .45em;max-width:18ch;}
.lumera-cta p{font-family:'PP Mori',sans-serif;font-size:1.25em;line-height:1.6;color:rgba(255,255,255,.82);max-width:40em;margin:0 auto 1.8em;}

/* ---------- BUTTON ---------- */
.lumera-btn{
  display:inline-block;font-family:'PP Mori',sans-serif;font-size:1em;letter-spacing:.02em;
  padding:.95em 1.7em;border-radius:2em;text-decoration:none;
  background:#fff;color:var(--lum-ink);border:1px solid #fff;
  transition:background .3s ease,color .3s ease,transform .3s ease;
}
.lumera-btn:hover{transform:translateY(-2px);}
.lumera-btn.is-outline{background:transparent;color:#fff;border-color:rgba(255,255,255,.6);}
.lumera-btn.is-outline:hover{background:#fff;color:var(--lum-ink);}
.lumera-btn.is-ink{background:var(--lum-ink);color:#fff;border-color:var(--lum-ink);}
.lumera-section .lumera-btn.is-ink:hover{background:transparent;color:var(--lum-ink);}

/* ---------- REVEAL (IntersectionObserver + CSS-Transition; no-JS sicher) ---------- */
.lumera-anim .reveal{opacity:0;transform:translateY(40px);transition:opacity .9s cubic-bezier(.22,1,.36,1),transform .9s cubic-bezier(.22,1,.36,1);}
.lumera-anim .reveal.is-visible{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){.lumera-anim .reveal{opacity:1;transform:none;transition:none;}}

/* ---------- MOCK-BUCHUNG ---------- */
.lum-booking{background:#fff;border:1px solid rgba(32,31,29,.1);border-radius:.5em;padding:2.4em;box-shadow:0 20px 60px rgba(32,31,29,.06);}
.lum-booking-steps{display:flex;gap:1.5em;flex-wrap:wrap;margin-bottom:2em;font-family:'PP Mori',sans-serif;font-size:.85em;letter-spacing:.04em;color:var(--lum-soft);text-transform:uppercase;}
.lum-booking-steps span.is-active{color:var(--lum-ink);font-weight:500;}
.lum-booking-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:2.4em;}
.lum-booking label{display:block;font-family:'PP Mori',sans-serif;font-size:.92em;color:var(--lum-ink);margin:1.3em 0 .5em;}
.lum-booking label:first-child{margin-top:0;}
.lum-booking select,.lum-booking input,.lum-booking textarea{width:100%;font-family:'PP Mori',sans-serif;font-size:1em;padding:.8em .9em;border:1px solid rgba(32,31,29,.18);border-radius:.35em;background:#fbfaf8;color:var(--lum-ink);box-sizing:border-box;}
.lum-booking textarea{min-height:5em;resize:vertical;}
.lum-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:.35em;}
.lum-cal .lum-dow{font-family:'PP Mori',sans-serif;font-size:.72em;text-align:center;color:var(--lum-soft);padding:.3em 0;}
.lum-day{box-sizing:border-box;font-family:'PP Mori',sans-serif;font-size:.92em;aspect-ratio:1;border:1px solid rgba(32,31,29,.1);border-radius:.3em;background:#fff;color:rgba(32,31,29,.4);cursor:default;display:flex;align-items:center;justify-content:center;transition:background .2s ease,color .2s ease,border-color .2s ease;}
.lum-day.is-empty{border-color:transparent;background:transparent;}
.lum-day.is-off{color:rgba(32,31,29,.22);background:#f4f2ee;}
.lum-day.is-free{color:var(--lum-ink);border-color:rgba(32,31,29,.22);font-weight:500;cursor:pointer;}
.lum-day.is-free:hover,.lum-day.is-sel{background:var(--lum-ink);color:#fff;border-color:var(--lum-ink);}
.lum-slots{display:flex;flex-wrap:wrap;gap:.5em;}
.lum-slot{font-family:'PP Mori',sans-serif;font-size:.9em;padding:.55em 1em;border:1px solid rgba(32,31,29,.18);border-radius:2em;background:#fff;color:var(--lum-ink);cursor:pointer;transition:all .2s ease;}
.lum-slot:hover,.lum-slot.is-sel{background:var(--lum-ink);color:#fff;border-color:var(--lum-ink);}
.lum-booking-note{font-family:'PP Mori',sans-serif;font-size:.85em;color:var(--lum-soft);margin-top:1.2em;}
.lum-booking .lumera-btn{margin-top:1.4em;}
@media screen and (max-width:767px){.lum-booking-grid{grid-template-columns:1fr;}.lum-booking{padding:1.6em;}}

/* ---------- RESPONSIVE ---------- */
@media screen and (max-width:991px){
  .lumera-cards,.lumera-team-grid{grid-template-columns:repeat(2,1fr);}
  .page-hero h1{font-size:3.8em;}
}
@media screen and (max-width:767px){
  .page-hero{padding:9em 0 4em;}
  .page-hero h1{font-size:3em;}
  .page-hero p{font-size:1.15em;}
  .lumera-section{padding:4.5em 0;}
  .lumera-h2{font-size:2.3em;}
  .lumera-cards,.lumera-team-grid{grid-template-columns:1fr;}
  .lumera-cta h2{font-size:2.4em;}
}
