@charset "UTF-8";
/* CSS Grabwert */

body {
      font-family: 'Alegreya Sans';
      margin: 0; padding-top: 100px; /* Platz fĆ¼r die fixe Navibar */
      background-color: #e0e0e0;
    }
h1, h2, h3, h4, h5 {
    font-family: 'Alegreya Sans'; font-weight: 700; 
}
h1 {font-size: 2.4rem;}
h2 {font-size: 2rem;}
h3 {font-size: 1.7rem;}
h4 {font-size: 1.4rem;}
h5 {font-size: 1.2rem;}
a {color: #514697;}

/* Navigation */   
.top-nav {
      background-color: #fff;
      position: fixed;
      top: 0;
      width: 100%;
      height: 100px;
      z-index: 1000;
      color: #000;
      padding-top: 15px; padding-bottom: 15px;
      border-bottom: 2px solid #524596;
    }
.toplinks {
    text-align: right;
}
.toplinks a { color: #000; }
.toplinks a:hover {color:#dab3f9; }
.submenu a {color: #524596;}
.submenu a:hover {color: #000; }
.navilogo {
  height: 70px;
  width: auto;
}
.dropdown.menu > li.is-dropdown-submenu-parent > a::after {
  border-color: #524596 transparent transparent;
}
/* === Grabwert Navi: Mobile === */

[data-gw-nav="1"] {
  position: relative;
}

[data-gw-nav="1"] .toplinks {
  position: relative;
  display: flex;
  justify-content: flex-end;
  align-items: center;
}

/* Mobile Toggle Button */
[data-gw-nav="1"] .gw-mobile-toggle {
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
}

[data-gw-nav="1"] .gw-mobile-toggle img {
  max-height: 32px;
  width: auto;
  display: block;
}

/* Grundlayout Men¸«ä */
[data-gw-nav="1"] .gw-main-menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* Small / Medium: Men¸«ä verborgen und als Dropdown unter der Leiste */
@media screen and (max-width: 63.999em) {
  [data-gw-nav="1"] .gw-main-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #ffffff;
    z-index: 2000;
    flex-direction: column;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
  }

  [data-gw-nav="1"] .gw-main-menu.is-open {
    display: block;
  }

  [data-gw-nav="1"] .gw-main-menu > li > a {
    display: block;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid #eee;
  }

  [data-gw-nav="1"] .gw-main-menu > li:last-child > a {
    border-bottom: none;
  }

  /* Submen¸«ä im Mobile: unter dem Hauptpunkt ein-/ausklappen */
  [data-gw-nav="1"] .gw-main-menu .submenu {
    display: none;
    margin: 0;
    padding: 0;
    background: #f8f8f8;
  }

  [data-gw-nav="1"] .gw-main-menu .submenu.is-open {
    display: block;
  }

  [data-gw-nav="1"] .gw-main-menu .submenu li a {
    display: block;
    padding: 0.5rem 2rem;
    border-bottom: 1px solid #e0e0e0;
    font-size: 0.95rem;
  }
}

/* Large: Desktop-Variante wie bisher (horizontales Men¸«ä) */
@media screen and (min-width: 64em) {
  [data-gw-nav="1"] .gw-mobile-toggle {
    display: none;
  }

  [data-gw-nav="1"] .gw-main-menu {
    display: flex !important;
    position: static;
    box-shadow: none;
  }

  [data-gw-nav="1"] .gw-main-menu > li > a {
    padding: 0.5rem 0.75rem;
  }

  [data-gw-nav="1"] .gw-main-menu .submenu {
    background: #ffffff;
  }
}

    
/* Content */
    .content {
      background-color: #ffffff;
      padding-top: 1.5rem;
    }
    .topdiv {padding: 2rem 0;}

    
/* Titelboxen */
.grw-startbox {
    background-image: url('../grafik/grw-startbild.jpg');
    background-size: cover;        /* Proportional, f¸«ällt das gesamte DIV */
    background-position: center;   /* Sauberes Framing */
    background-repeat: no-repeat;
    border-radius: 16px;
    margin-bottom: 2em;
}
.grw-titelbox {

    border-radius: 16px;
    margin-bottom: 2em;
}
.grw-startbox h1 {font-size: 3em; line-height: 1.0; margin-bottom: 1em;}
.grw-left {
    background: rgba(81,70,151,1);
    padding: 2rem;
    color: #fff;
    border-top-left-radius: 16px;
}
.grw-bg {
    background: #ccc;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    min-height: 4em;
    border-bottom-right-radius: 16px;
}
.homelogo-wrapper {
    display: flex; 
    align-items: center;
    justify-content: center;
}
.spalten { margin-bottom: 2em; }
.homeicon { height: 3.5em; }
.itemtext { margin-top: 1em; font-size: 1.1em;}
@media screen and (max-width: 639px) {
    .grw-left { border-top-right-radius: 16px; }
    .grw-bg { border-bottom-left-radius: 16px; }
    .homelogo { height: 180px; margin: 2em;}
    .spalten { column-count: 1;}
}
@media screen and (min-width: 640px) {
    .grw-left { border-bottom-left-radius: 16px; }
    .grw-bg { border-top-right-radius: 16px; }
    .homelogo { height: 340px; }
    .spalten { column-count: 2; column-gap: 3em; }
}
.itembox {
    border: 1px solid #544594;
    border-radius: 16px;
    box-shadow: 0 0 15px rgba(84, 69, 148, 0.35); 
    padding: 1.5rem; 
    margin-bottom: 3em;
}

/* Texteditor Anfrageformular */  
.text-preview {
  background: #f8f8f8;
  border: 1px solid #ddd;
  padding: 0.5rem;
  margin-top: 0.5rem;
  min-height: 3rem;
  white-space: normal;
}

.editor-toolbar button {
  background-color: #524596;
  color: #ffffff;
  border: none;
  padding: 0.3rem;
  width: 32px;
  height: 32px;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  border-radius: 4px;
}

.editor-toolbar button svg {
  width: 20px;
  height: 20px;
}

.editor-toolbar {
  display: flex;
  gap: 6px;
  margin-bottom: 0.5rem;
}

.select-disabled {
  pointer-events: none;
  background-color: #eee;
  color: #555;
}

.schriftgroesse-gruppe {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.25rem;
}

.schriftgroesse-gruppe .groesse-label {
  display: inline-block;
  min-width: 2.4rem;
  text-align: center;
  font-weight: bold;
  padding: 0.2rem 0.4rem;
  background: #eee;
  border-radius: 4px;
  font-size: 0.95em;
  line-height: 1.5;
  margin-bottom: 1em;
}

#schriftart-anzeige {
  display: flex;
  align-items: center;
}
#schriftart-anzeige img {
  width: 200px;
  height: 100px;
  object-fit: contain;
  margin-right: 1rem;
}
#schriftart-trigger.disabled {
  opacity: 0.4;
  pointer-events: none;
}
#schriftart-options.disabled {
  display: none !important;
}

.grafik-anzeige {
  border: 1px dashed #ccc;
  padding: 1rem;
  text-align: center;
  min-height: 120px;
}

.droparea-wrapper {
  margin-top: 0.5rem;
}

.droparea {
  border: 2px dashed #ccc;
  border-radius: 8px;
  padding: 1rem;
  text-align: center;
  cursor: pointer;
  background: #fafafa;
}

.droparea.dragover {
  border-color: #0070c9;
  background: #eef6ff;
}

.grafik-preis {
  font-weight: bold;
  margin-top: 0.5rem;
}

.reset-button {
  margin-top: 0.5rem;
  border: none;
  background: transparent;
  color: #c00;
  font-size: 1.2rem;
  cursor: pointer;
}

.reset-button {
  display: none;              /* Standardm¸«£¸©Īig ausgeblendet */
  margin-top: 0.5em;
  background: #eee;
  border: none;
  color: #333;
  font-size: 1.2em;
  cursor: pointer;
  padding: 0.25em 0.5em;
  border-radius: 4px;
}

.reset-button:hover {
  background: #ccc;
}
.has-image .reset-button {
  display: inline-block;
}


.droparea-wrapper.has-image .reset-button {
  display: inline-block; /* Wenn Bild vorhanden: einblenden */
}

.menge-steuerung {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.menge-anzeige {
  min-width: 50px;
  text-align: center;
  font-weight: bold;
  font-size: 1.2rem;
}

.align-middle {
  vertical-align: middle;
}

/* Auswahlbuttons Bildauswahl Grabsteine und Grabplatten */

.grabstein-button {
  position: absolute;
  bottom: 0;
  left: 0;
  background-color: #514697;
  color: #fff;
  padding: 0.5rem 0.75rem;
  font-size: 0.9rem;
  border: none;
  border-radius: 0;
  z-index: 2;
  transition: background-color 0.2s ease;
}

.grabstein-button:hover {
  background-color: #766cb7;
  color: #fff;
}

/* Live Auswahlbar */
    #live-auswahlbar {
      position: fixed;
      left: 0; right: 0; bottom: 0;
      z-index: 999;
      background: #fff;
      border-top: 1px solid #000;
      padding: 0.6rem 0;
    }
    #live-auswahlbar .grid-container { max-width: 1200px; }
    #live-auswahlbar .summary-text { font-size: 0.95rem; }
    #live-auswahlbar .summary-price { font-weight: 700; text-align: right; }
    body { padding-bottom: 72px; } /* Platz, damit Inhalt nicht von der Bar ¸«äberdeckt wird */
    
      /* Live-Bar soll sich nie wie ein Link anf¸«ählen */
  #live-auswahlbar, #live-auswahlbar * {
    cursor: default !important;
    text-decoration: none !important;
    color: #000 !important;
  }
  /* Falls doch mal ein <a> hinein ger¸«£t: klicks deaktivieren */
  #live-auswahlbar a {
    pointer-events: none !important;
    color: inherit !important;
  }
  /* Sicherstellen, dass die Live-Bar Klicks NICHT durchl¸«£sst */
  #live-auswahlbar { pointer-events: auto; }

/* Schriften¸«äbersicht */

.schrift-gruppe {
    background: #bbb5e5;
    padding: 0.6rem 2rem;
    border-radius: 16px;
    margin-bottom: 2em;
}
.schrift-gruppe h2 {
    margin: 0;
}

/* === Referenz-Galerie (Flickr-Style) === */
.ref-gallery {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;              /* horizontal + vertikal Abstand */
  margin: 1rem 0;
}

.ref-item {
  position: relative;
  margin: 0;             /* Abstand l¸«£uft ¸«äber gap */
  overflow: hidden;
  cursor: pointer;
}

.ref-item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* === Popup-Overlay und Box === */
.ref-popup-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.7);
  display: none;              /* wird per .is-visible aktiviert */
  z-index: 1000;
}

.ref-popup-overlay.is-visible {
  display: block;
}

/* zentrierte Box ¸«äber transform, unabh¸«£ngig von Flex */
.ref-popup {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: #fff;
  max-width: 1000px;
  width: 90%;
  padding: 1.5rem 2rem;
  box-shadow: 0 10px 30px rgba(0,0,0,0.4);
  display: flex;
  gap: 1.5rem;
  align-items: flex-start;
  flex-wrap: wrap;
}

/* Bildbox 600 x 600, proportional */
.ref-popup-image-wrap {
  flex: 0 0 auto;
  width: 600px;
  height: 600px;
  max-width: 100%;
  max-height: 80vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #000;
}

.ref-popup-image {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

/* Textspalte rechts */
.ref-popup-content {
  flex: 1 1 250px;
}

.ref-popup-title {
  margin: 0 0 0.5rem;
}

.ref-popup-title b {
  font-weight: 700;
}

.ref-popup-desc,
.ref-popup-details {
  margin: 0.3rem 0;
}

/* Schlie¸©Īen-Button */
.ref-popup-close-btn {
  margin-top: 1rem;
  padding: 0.4rem 1.2rem;
  border: none;
  background: #514697;
  color: #fff;
  cursor: pointer;
}

.ref-popup-close-btn:hover {
  opacity: 0.9;
}




    
/* Footer */
