/*
Theme Name: Gymnasium am Kattenberge
Description: This is a child theme for Flatsome Theme
Author: UX Themes
Template: flatsome
Version: 3.0
*/

/*************** ADD CUSTOM CSS HERE.   ***************/

@font-face {
    font-family: 'Artico Expanded';
    src: url('fonts/artico-expanded-bold.woff2') format('woff2'),
         url('fonts/artico-expanded-bold.woff') format('woff'),
         url('fonts/artico-expanded-bold.ttf') format('truetype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

h1, h2, h3, h4, h5 {
    font-family: 'Artico Expanded', sans-serif !important;
    font-weight: 700;
    line-height: 1.2em;
}

h1, h2 {
    color: #202020;
}

h4 {
    font-weight: 400 !important;
}

.alt-font {
	font-family: "DM Serif Display", sans-serif !important;
}

.menu-item-92 a, .menu-item-93 a {
	font-weight: 600 !important;
}


/* --- Icons ------------------------------------------------ */

[data-lucide], [data-lucide] svg {
    width: 1em;
    height: 1em;
    vertical-align: -0.125em;
}

.gak-icon-box {
    margin-bottom: 10px;
}

.gak-icon-box svg {
	font-size: 3em;
}

.gak-gradient {
    background: linear-gradient(
        to right,
        rgba(192, 57, 43, 0.12),
        rgba(248, 200, 66, 0.12),
        rgba(26, 79, 160, 0.12)
    );
}


/* --- News Cards ------------------------------------------------ */

.gak-news-card .col-inner {
  display: flex;
  flex-direction: column;
}

.gak-news-card .button {
  margin-top: auto;
  align-self: flex-start;
}


/* --- Blog Cards ------------------------------------------------ */

.gak-blog-cards .col-inner {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.gak-blog-cards .col-inner .box-blog-post {
  display: flex;
  flex-direction: column;
  flex: 1;
}

/* width: 100% stellt sicher, dass padding-top: 75% korrekt berechnet wird */
.gak-blog-cards .col-inner .box-image {
  flex: 0 0 auto;
  width: 100%;
  position: relative;
  overflow: hidden;
}

.gak-blog-cards .col-inner .box-text {
  display: flex;
  flex-direction: column;
  flex: 1;
}

.gak-blog-cards .col-inner .box-text-inner {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding-bottom: 10px;
}

.gak-blog-cards .col-inner .from_the_blog_excerpt {
  flex: 1;
}

.gak-blog-cards .col-inner a.button {
  align-self: flex-start;
  border-radius: 5px;
}


/* --- Tabellen ------------------------------------------------ */

.gak-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-radius: 8px;
  box-shadow: 0 2px 15px rgba(0, 0, 0, 0.5);
}
 
.gak-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 1rem;
}
 
.gak-table thead tr {
  background: #1a4b8c;
  color: #ffffff;
}
 
.gak-table th {
  padding: 12px 16px;
  font-weight: 600;
  text-align: left;
}
 
.gak-table th:not(:first-child) {
  text-align: center;
}
 
.gak-table tbody tr:nth-child(odd) {
  background: #e8eef7;
}
 
.gak-table tbody tr:nth-child(even) {
  background: #ffffff;
}
 
.gak-table td {
  padding: 12px 16px;
}
 
.gak-table td:first-child {
  font-weight: 600;
}
 
.gak-table td:not(:first-child) {
  text-align: center;
}
 
.gak-table__planning {
  font-style: italic;
  color: #5f6575;
}
 
@media (max-width: 640px) {
 
  .gak-table thead {
    display: none;
  }
 
  .gak-table,
  .gak-table tbody,
  .gak-table tr {
    display: block;
    width: 100%;
  }
 
  .gak-table tbody tr {
    margin-bottom: 2px;
  }
 
  .gak-table td {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    text-align: right !important;
    border-bottom: 1px solid #dde3ed;
  }
 
  .gak-table td:last-child {
    border-bottom: none;
  }
 
  .gak-table td::before {
    content: attr(data-label);
    font-weight: 600;
    color: #1a4b8c;
    text-align: left;
    flex-shrink: 0;
  }
 
  .gak-table__planning {
    display: block;
    text-align: center !important;
  }
 
  .gak-table__planning::before {
    display: none;
  }
 
}

.gak-table-wrap {
  padding: 2%;
}

/* ---- Stundenplan: Blöcke deutlich voneinander trennen ---- */

/* Kräftige Linie über jedem Unterrichtsblock */
.gak-table-wrap table tbody tr:not(.gak-pause) > td {
    border-top: 3px solid #1A4FA0;
}

/* Pausen treten zurück: heller Grund, kleinere Schrift, feine Linie */
.gak-table-wrap table tbody tr.gak-pause > td {
    background: #F2F2EF;
    border-top: 1px solid rgba(26, 79, 160, 0.12);
    font-size: 0.88em;
    color: #5a6172;
}

/* Die erste Zeile braucht oben keine Linie, dort sitzt schon der Tabellenkopf */
.gak-table-wrap table tbody tr:first-child > td {
    border-top: none;
}


/* --- Social Media Icons --- */
.gak-social {
    display: flex;
    gap: 10px;
}
.gak-social-right  { justify-content: flex-end; }
.gak-social-center { justify-content: center; }

.gak-social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .12);
    color: #fff;
    font-size: 19px;
    transition: background .2s ease, transform .2s ease;
}
.gak-social-link:hover,
.gak-social-link:focus-visible {
    background: #C0392B;
    color: #fff;
    transform: translateY(-2px);
}
.gak-social-link:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 2px;
}


/* --- Hinweiskarten Startseite --- */
.gak-kachel .col-inner {
    position: relative;
    transition: transform .2s ease;
}
.gak-kachel h3 a {
    color: inherit;
}
.gak-kachel h3 a::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 5px;
}
.gak-kachel:hover .col-inner {
    transform: translateY(-3px);
}
.gak-kachel h3 a:focus-visible::after {
    outline: 2px solid #1A4FA0;
    outline-offset: 3px;
}

.gak-hinweise .col-inner {
    display: flex;
    flex-direction: column;
    height: 100%;
}
.gak-hinweise .button {
    margin-top: auto;
    align-self: flex-start;
}
.gak-hinweise h2 {
    font-size: 1.5em;
    line-height: 1.25;
}
.gak-hinweise h4 {
    margin-bottom: .4em;
}
.gak-hinweise-1 .col-inner {
    max-width: 900px;
}
.gak-hinweise-1 h2 {
    font-size: 1.9em;
}
.gak-hinweise h2,
.gak-hinweise p {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.gak-hinweise h2 { -webkit-line-clamp: 3; }
.gak-hinweise p  { -webkit-line-clamp: 4; }

/* Eine einzelne Karte über die volle Breite verträgt mehr */
.gak-hinweise-1 h2 { -webkit-line-clamp: 2; }
.gak-hinweise-1 p  { -webkit-line-clamp: 3; }


/* ------------------------------------------------------------------
 * 1 · Grundsicherung: nichts läuft mehr aus der Box heraus
 * Trennt notfalls mitten im Wort. Hässlich, aber besser als Überlauf.
 * ---------------------------------------------------------------- */
.text-box h1,
.text-box h2,
.text-box h3,
.text-box h4,
.text-box p {
    overflow-wrap: break-word;
}

/* ------------------------------------------------------------------
 * 2 · Automatische Silbentrennung, nur auf schmalen Displays
 * Der Browser trennt nach deutschen Regeln, also „Lernentwick-lungs-
 * gespräche" statt an beliebiger Stelle. Setzt voraus, dass im
 * <html>-Tag lang="de-DE" steht, das macht WordPress von selbst.
 * ---------------------------------------------------------------- */
@media (max-width: 849px) {
    .text-box h1,
    .text-box h2,
    .text-box h3,
    .text-box h4 {
        -webkit-hyphens: auto;
        hyphens: auto;
    }
}

/* ------------------------------------------------------------------
 * 3 · Umbruch von Hand, nur auf dem Handy
 * <br class="br-mobil" /> bricht ausschließlich unter 550 Pixeln um.
 * <br class="br-gross" /> bricht ausschließlich darüber um.
 * ---------------------------------------------------------------- */
.br-mobil { display: none; }

@media (max-width: 549px) {
    .br-mobil { display: inline; }
    .br-gross { display: none; }
}

@media only screen and (max-width: 48em) {
/*************** ADD MOBILE ONLY CSS HERE  ***************/


}