/*
 * www.tantra-massage-kassel.de — statische Fassung (2026)
 *
 * Desktop (ab 1000 px): genau das Bild der Joomla-Vorlage „corina“ (beez5, Michael Tartsch 2012).
 * Die Werte stammen aus den Regeln, die dort tatsächlich griffen (CSS-Coverage über alle Seiten).
 * Handy/Tablet (unter 1000 px): dieselben Farben, Bilder und Schriften in einer Spalte.
 *
 * Farben der Vorlage
 *   #4c1308  Grund (Rahmen, Kopf)          #CF8650  Menüschrift hell, Inhaltsfläche
 *   #280c05  Text dunkel                   #5c1308  Links, Überschriften
 *   #702E06  Linien Kopfmenü               #669933  Link beim Überfahren
 */

@font-face {
  font-family: 'SchnoerkelFont';
  src: url('fonts/Schnoerkel.woff') format('woff');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Titillium Maps';
  /* wie früher: die OTF-Fassung zuerst (andere Zeilenmetrik als die WOFF) */
  src: url('fonts/TitilliumMaps29L002.otf') format('opentype'),
       url('fonts/TitilliumMaps29L002.woff') format('woff');
  font-display: swap;
}

/* ---------------------------------------------------------------- Grundlagen */

* {
  margin: 0;
  padding: 0;
}

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

body {
  font-size: 100.01%;
  text-align: center;
  position: relative;
  color: #4c1308;
  background: #4c1308;
  font-family: arial, helvetica, sans-serif;
}

img {
  border: 0 none;
}

a:link,
a:visited {
  color: #5c1308;
}

a:hover,
a:active,
a:focus {
  background: #669933;
  color: #fff;
}

h3 {
  font-size: 1.1em;
  font-weight: bold;
  margin: 10px 0;
}

h4 {
  font-size: 1em;
}

p {
  line-height: 1.7em;
  margin: 8px 0;
}

em {
  font-weight: bold;
}

table {
  border-collapse: collapse;
  border: 0;
}

tr,
td {
  border: 0;
}

/* ---------------------------------------------------------------- Rahmen */

#all {
  margin: 0 auto;
  max-width: 1000px;
  text-align: left;
  color: #280c05;
  font-size: 0.8em;
}

#header {
  display: block;
  position: relative;
  overflow: hidden;
  background: #4c1308;
}

#header-image {
  display: block;
  background: #eee;
}

#header-image:hover,
#header-image:focus {
  background: #eee;
}

#header-image img {
  display: block;
}

/* Kopfmenü: liegt auf dem Kopfbild, unter dem Schriftzug */
#header-menu .menu {
  position: absolute;
  top: 0;
  left: 0;
  width: 559px;
  margin: 215px 0 0 234px;
  padding: 3px 5px;
  list-style-type: none;
  font-size: 0.85em;
  text-align: right;
  border-top: 1px solid #702E06;
  border-bottom: 1px solid #702E06;
}

#header-menu .menu li {
  display: inline;
}

#header-menu .menu li a:link,
#header-menu .menu li a:visited {
  color: #280c05;
  background: transparent;
  font-weight: bold;
  text-transform: uppercase;
  text-decoration: none;
  padding: 3px 10px;
}

#header-menu .menu li.active a:link,
#header-menu .menu li.active a:visited {
  color: #CF8650;
  background: #5c1308;
}

#header-menu .menu li a:hover,
#header-menu .menu li a:active,
#header-menu .menu li a:focus {
  color: #CF8650;
  background: #702E06;
}

#contentarea {
  position: relative;
  overflow: hidden;
  padding: 0 20px;
  background: #CF8650 url(/images/site/inhalt_bg.jpg) repeat-y;
}

/* Hauptmenü: Schnörkelschrift in der linken Spalte */
#nav {
  float: left;
  position: relative;
  width: 214px;
  margin: 10px 0 20px;
  font-family: SchnoerkelFont, 'Times New Roman', Times, serif;
  font-size: 1.7em;
  text-shadow: black 3px 2px 4px;
}

#nav .menu {
  list-style-type: none;
}

#nav .menu li a:link,
#nav .menu li a:visited {
  display: block;
  padding: 7px 4px 7px 15px;
  text-decoration: none;
  color: #CF8650;
}

#nav .menu li.active a:link,
#nav .menu li.active a:visited {
  font-weight: bold;
}

#nav .menu li a:hover,
#nav .menu li a:active,
#nav .menu li a:focus {
  background: #CF8650;
  color: #4c1308;
}

#main {
  display: block;
  float: left;
  position: relative;
  width: 550px;
  margin-left: 10px;
  padding: 5px 0 20px;
  min-height: 300px;
}

#footer {
  display: block;
  height: 30px;
}

/* ---------------------------------------------------------------- Inhalt */

.item-page {
  display: block;
  overflow: hidden;
  padding: 0 5px;
}

#main h1 {
  padding: 5px;
  margin: 0 -5px 10px;
  font-size: 1.4em;
  line-height: 1.19em;
  font-weight: normal;
  color: #280c05;
  border-bottom: 1px solid #ddd;
  font-family: 'Titillium Maps', Arial;
}

#main h2 {
  color: #5c1308;
  font-family: 'Titillium Maps', Arial;
  font-size: 1.6em;
  font-weight: normal;
  margin-bottom: 10px;
  padding: 3px 0;
}

#main h2 a {
  color: #280c05;
  text-decoration: none;
}

#main h3 {
  margin: 20px 0 10px;
}

#main ul {
  list-style: square outside;
  padding: 0 0 0 15px;
  margin: 10px 0;
}

/* Zeile nur mit Bild: so hoch wie das Bild (wie früher im „almost standards mode“) */
.nur-bild {
  line-height: 0;
}

/* Einführung als Hörstück (Startseite) */
audio.einfuehrung {
  display: block;
}

#main ul li,
#main ol li {
  padding: 0;
  line-height: 1.7em;
  margin: 0;
}

/* ---------------------------------------------------------------- Fragen-Akkordeon
 * Früher jQuery-Plugin „accordionfaq“ (Stil lightnessfaq, defaulticon, round5).
 * Jetzt <details>/<summary>: ohne JavaScript bedienbar, ohne CSS ganz lesbar. */

.faq {
  clear: both;
  width: 100%;
  font-family: verdana;
}

.faq summary {
  display: block;
  list-style: none;
  position: relative;
  cursor: pointer;
  margin: 0 0 1px;
  padding: 4px 0 4px 20px;
  border-radius: 5px;
}

.faq summary::-webkit-details-marker {
  display: none;
}

/* das Plugin-Icon (Kreis mit Pfeil) aus dem jQuery-UI-Sprite */
.faq summary::before {
  content: "";
  position: absolute;
  left: 2px;
  top: 50%;
  margin-top: -8px;
  width: 16px;
  height: 16px;
  background: url(faq/ui-icons_8c291d_256x240.png) no-repeat -112px -192px;
}

.faq details[open] > summary::before {
  background-position: -128px -192px;
}

#main .faq summary h3 {
  display: inline;
  margin: 0;
  font-size: 1em;
  font-weight: bold;
  line-height: 16px;
  color: #5c1308;
  text-decoration: underline;
}

.faq summary:hover h3,
.faq summary:focus-visible h3 {
  background: #669933;
  color: #fff;
}

.faq summary:focus-visible {
  outline: 2px solid #5c1308;
  outline-offset: 1px;
}

.faq-inhalt {
  position: relative;
  margin: 0 0 5px;
  padding: 4px;
}

.faq-inhalt p {
  margin: 0;
  padding: 4px;
}

.faq-inhalt img {
  margin: 4px;
}

/* Variante mit Kopf-Fläche und Rahmen (Seite „Tantra“) */
.faq.headerborder summary {
  border: 1px solid #cccccc;
}

.faq.headerborder details[open] > summary,
.faq.headerborder summary:hover {
  border-color: #fbd850;
}

.faq.headerbackground summary,
.faq.headerbackground summary h3 {
  background: #f6f6f6 url(faq/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x;
}

.faq.headerbackground details[open] > summary,
.faq.headerbackground details[open] > summary h3 {
  background: #ffffff url(faq/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;
}

.faq.headerbackground details > summary:hover h3 {
  background: #669933;
  color: #fff;
}

.faq details[open] > summary {
  margin-bottom: -1px;
  border-radius: 5px 5px 0 0;
}

.faq.contentborder .faq-inhalt {
  border: 1px solid #dddddd;
}

.faq.contentborder.headerborder .faq-inhalt {
  border-top-width: 0;
}

.faq.contentbackground .faq-inhalt {
  background: #eeeeee url(faq/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x;
  color: #333333;
  border-radius: 0 0 5px 5px;
}

/* ---------------------------------------------------------------- Handy und Tablet
 * Unter 1000 px passt die feste Vorlage nicht mehr: eine Spalte, Text 16 px,
 * Kopfbild auf den Schriftzug zugeschnitten, beide Menüs offen sichtbar (kein JS). */

@media (max-width: 999px) {
  #all {
    font-size: 1em;
  }

  /* Kopfbild: mittlerer Teil (Schriftzug, „Die besondere Berührung!“, Telefonzeile) */
  #header-image {
    overflow: hidden;
    aspect-ratio: 508 / 245;     /* Bildausschnitt x 268–776 von 1000 */
  }

  #header-image img {
    width: 196.850%;          /* 1000 / 508 */
    max-width: none;
    height: auto;
    margin-left: -52.756%;    /* 268 / 508 */
  }

  #header-menu {
    background: #CF8650 url(/images/site/inhalt_hg.jpg) center top / 100% auto;
  }

  #header-menu .menu {
    position: static;
    width: auto;
    margin: 0;
    padding: 6px 8px;
    font-size: 1em;
    text-align: center;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 2px 4px;
  }

  #header-menu .menu li a:link,
  #header-menu .menu li a:visited,
  #header-menu .menu li.active a:link,
  #header-menu .menu li.active a:visited {
    display: block;
    padding: 13px 8px;
  }

  #contentarea {
    padding: 0;
    background: #CF8650 url(/images/site/inhalt_hg.jpg) center top / 100% auto repeat-y;
  }

  #nav {
    float: none;
    width: auto;
    margin: 0;
    padding: 4px 8px 6px;
    font-size: 1.6em;
    background: #4c1308 url(/images/site/navigationsleiste_hg.jpg) center / cover;
  }

  #nav .menu {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0 4px;
  }

  #nav .menu li a:link,
  #nav .menu li a:visited {
    padding: 6px 10px;
  }

  #main {
    float: none;
    width: auto;
    max-width: 640px;         /* Tablet: Zeilen nicht länger als nötig */
    margin: 0 auto;
    padding: 12px 16px 24px;
    min-height: 0;
  }

  .item-page {
    padding: 0;
  }

  #main h5,
  #main h6 {
    font-size: 1em;
  }

  /* Bilder: nie breiter als die Spalte; Bilder neben dem Text stehen allein und mittig */
  #main img {
    max-width: 100%;
    height: auto;
  }

  #main img[style*="float"] {
    float: none !important;
    display: block;
    margin: 12px auto !important;
  }

  /* Tabellen der Startseite / Angebotsliste: Zellen untereinander */
  #main table,
  #main tbody,
  #main tr,
  #main td {
    display: block;
    width: auto !important;
  }

  #main td {
    text-align: center !important;
  }

  audio.einfuehrung {
    display: block;
    width: 100%;
    max-width: 320px;
    margin: 4px auto 0;
  }

  .faq summary {
    padding-top: 8px;
    padding-bottom: 8px;
  }

  #main .faq summary h3 {
    line-height: 1.4;
  }

  #footer {
    height: 24px;
  }
}
