@import url('https://fonts.googleapis.com/css?family=Alegreya+Sans:400,700&subset=latin-ext');
@import url('https://fonts.googleapis.com/css?family=Open+Sans:300i,600,600i&subset=latin-ext');

/* ============================================================
   LIGHT MODE BASE
   ============================================================ */
a {
   color: #33A1FD;
}

h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
   font-family: "Alegreya Sans", "Open sans", sans-serif;
   font-weight: 700;
}

strong {
   font-weight: 600;
}

blockquote {
	font-size: 15px;
    font-weight: 300;
    font-style: italic;
}

ul.typeahead.dropdown-menu>li.active * {
    color: #fac905 !important;
}

html, body {
   height: 100%;
}

body {
   display: flex;
   flex-direction: column;
}

body>.top {
 	background-color: #ecb604;  
}

body>.top .login>p {
   padding: 3px 0;
}

body>.top .login>p>a {
   font-family: "Alegreya Sans";
   letter-spacing: 1px;
   color: #fff;
}

/* Keep the LOGGED-OUT "Inloggen" link identical to the signed-in links.
   The inline script only rebuilds the area when signed in, so logged-out
   pages keep the template's .login p — pin it here so the look matches. */
header .container .header-nav-top .login p a {
   font-family: "Alegreya Sans", "Open Sans", sans-serif;
   font-size: 16px;
   font-weight: 400;
   letter-spacing: 1px;
   text-transform: none;
   color: #fff;
}

#content {
   flex: 1 0 auto;
}

header {
   border-bottom: none;
   background-color: #fac905;
}

header .navbar-header {
 	margin: 1em 0;  
}

#menu {
   margin-bottom: 0 !important;
}

.button {
    background-color: #ecb604;
    border: none;
    color: black;
    padding: 15px 32px;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    font-size: 20px;
    font-family: "Alegreya Sans", "Open sans", sans-serif;
    border-radius: 10px;
  }

.sf-menu>li {
   padding: 0 .2em;
   border: none;
}

.sf-menu ul {
  box-shadow: none;
}

.sf-menu>li>ul {
   border: none;
}

.sf-menu>li>ul li {
   border: none;
   border-radius: 3px;
   box-shadow: 0 2px 5px rgba(0, 0, 0, 0.5);
}

.sf-menu>li>ul li a:hover {
   color: #000;
   background-color: #feefb4;
}
.sf-menu>li>ul>li>ul {
    margin-left: .3em;
}
.sf-menu>li>ul>li>ul>li>a:first-of-type {
    margin-top: 0 !important
}

.sf-menu>li:last-of-type {
   border: none !important;
}

.sf-menu>li a {
   color: #000;
   border-radius: 3px;
   display: block;
   text-transform: none;
   font-family: "Alegreya Sans", "Open Sans", sans-serif;
   font-weight: 700;
   font-size: 1.2em;
   padding: .4em .7em;
   margin: .3em 0;
   transition: background-color .1s;
}

.sf-menu>li a:hover {
   background-color: #feefb4;
}


.sf-menu>li a[href="/preipop"] {
   color: #32ae70;
   background-color: #674574;
   transition: background-color .1s;
}

.sf-menu>li a[href="/preipop"]:hover {
   background-color: #4a1c5b;
}

.sf-menu>li a[href="/word-lid"] {
   color: #fff;
   background-color: #a314d7;
}

.sf-menu>li a[href="/word-lid"]:hover {
   margin: .1em 0 .5em 0;
   box-shadow: 0 .2em #880db5;
}

.sf-menu>li a[href="/word-lid"]:active {
   margin: .2em 0 .4em 0;
   box-shadow: 0 .1em #60a810;
}

.sf-menu.sf-arrows .sf-with-ul {
   padding-right: 1.9em;
}

.sf-arrows .sf-with-ul:after {
   right: 0.8em;
}

@media (max-width: 767px) {
   header ul.sf-menu>li a {
      padding: .4em .7em;
   }
}

#content>.container {
   background-color: #fff;
   padding-top: 3vh;
}

footer {
   color: #000;
} 

footer a {
   color: #33A1FD;
}

footer a:hover {
   color: #33A1FD;
   text-decoration: underline;
}

footer {
   background-color: #eee;
}


footer dl.headlines.headlines-footer dd *{
   color: #000 !important;
}

dt.date {
   border-radius: 3px;
   overflow: hidden;
   font-family: "Alegreya Sans";
}

dt.date a {
   background-color: #fac905 !important;
}

dt.date a div {
	color: #000 !important;   
}

dl.headlines dt.date div:last-child {
   line-height: 13px;
}

footer .col-xs-12.col-sm-4 {
   margin-bottom: 1em;
}

footer .headline {
   background-color: #fac905;
   border-radius: 3px;
   border-bottom: none;
   padding: .4em .7em;
   margin: 0 0 1em 0;
}

footer .headline>h3 {
 	color: #000;
   border-bottom: none;
   padding: 0;
}

footer ul.social-icons li a {
   border-radius: 3px;
}

#copyright {
   border-top: none !important;
   background-color: #222 !important;
}

/* Caroussel op homepage minder hoog */
#carousel-homepage .carousel-inner, #carousel-homepage .item {
 	height: 300px !important;   
}


.c-quicklink {
    max-width: 150px;
    width: 100%;
    height: 98px;
    position: relative;
    display: block;
    overflow: hidden;
    background-color: black;
    border-radius: 10px;
}

@media (min-width: 1100px) {
    .c-quicklink {
    	max-width: 200px;
        height: 113px;
    }
}

@media (min-width: 1200px) {
    .c-quicklink {
    	max-width: 250px;
        height: 141px;
    }
}

@media (min-width: 1300px) {
    .c-quicklink {
    	max-width: 300px;
        height: 169px;
    }
}

.c-quicklink__image {
    height: 100%;
    width: 100%;
    text-align: center;
    opacity: 0.6;
    transition: opacity 0.2s;
    background-position: center;
    background-size: 100%;
}

.c-quicklink:hover .c-quicklink__image {
	opacity: 0.4;
}

.c-quicklink__text {
	color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    top: 0;
    position: absolute;
    left: 0;
    height: 100%;
    width: 100%;
    font-size: 20px;
    line-height: 1.1;
    text-align: center;
    font-family: "Alegreya Sans", "Open sans", sans-serif;
}

.c-arrow-button {
    background-color: transparent;
    border: 0;
    background-repeat: no-repeat;
    height: 32px;
    width: 32px;
    cursor: pointer;
}

.c-arrow-button--left {
    background-image: url("https://www.cleopatra-groningen.nl/_media/1636817/7c4a32b4c49c4be6a66bfe94b4f748f4");
}

.c-arrow-button--right {
    background-image: url("https://www.cleopatra-groningen.nl/_media/1636816/b3b4525f0a674f4fa8a8298999d71c0a");
}

.c-page-indicator {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  box-shadow: inset 0 0 3px 1px rgba(0,0,0,0.18);
}

[data-currentpage="0"] > [data-page-indicator="0"],
[data-currentpage="1"] > [data-page-indicator="1"],
[data-currentpage="2"] > [data-page-indicator="2"]{
  box-shadow: 0 0 1px 1px rgba(0,0,0,0.18);
  background-color: #fac905;
}

.ps-l-quicklink {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    max-width: 930px;
    position: relative;
    top: -16px;
    margin: 0 auto;
}

@media (min-width: 1200px){
    .ps-l-quicklink {
    	max-width: 100%;
    }
}

.ps-l-quicklink > * {
    margin-top: 16px;
}

.l-hor-gap-s > * + * {
  margin-left: 8px;
}

.l-hor-gap-m > * + * {
  margin-left: 16px;
}

/* aanpassen marges en formaten om webshop heen */
.webpage-37888 .col-md-3{
    width: 0 !important;
}

.webpage-37888 .col-md-9{
    width: 100% !important;
}

.webpage-37888 .container{
    margin-left: 0;
    margin-right: 0;
}

section#content>.container>.row{
    margin-left: -15px;
    margin-right: -15px;
}



.spacer {
    border-bottom: 1px solid #E5E7EB;
    margin-top: 24px;
    margin-bottom: 24px;
}

/* ============================================================
   HOMEPAGE EVENTS LIST — single vertical list below the 3-column
   breakpoint (≤991px).
   The three .col-md-4 columns sit side-by-side at >=992px (4 events
   each). At <=991px they stack into ONE vertical column of all 12
   events — but the theme's .dl-horizontal rules (dt float:left +
   width:160px, dd margin-left:180px) still apply in this range, so
   every event squeezed into a ~54px sliver with its title unreadable.
   This block turns each event back into a proper horizontal row
   (date badge left, title + tags filling the rest) for the whole
   stacked range. Desktop (>=992px) is untouched.
   ============================================================ */
@media (max-width: 991px) {
    /* The .paragraph-events-view container is display:grid and squeezes
       the inner .row into a ~112px track, which is why the events render
       as narrow slivers below the 3-column breakpoint. Override to block
       so the row can be full-width, then make each column full-width so
       the 12 events form one vertical list. */
    .paragraph-events-view {
        display: block !important;
    }
    .paragraph-events-view > .row {
        width: 100%;
    }
    .paragraph-events-view > .row > .col-md-4 {
        width: 100% !important;
        float: none !important;
        clear: both;
        padding-left: 15px;
        padding-right: 15px;
    }
    /* Each event becomes a horizontal row: date badge left, title +
       tags filling the rest. */
    .paragraph-events-view > .row > .col-md-4 > dl.dl-horizontal.headlines dt,
    .paragraph-events-view > .row > .col-md-4 > dl.dl-horizontal.headlines dd {
        float: none;
        width: auto;
    }
    .paragraph-events-view > .row > .col-md-4 > dl.dl-horizontal.headlines {
        display: flex;
        align-items: flex-start;
        gap: 10px;
    }
    .paragraph-events-view > .row > .col-md-4 > dl.dl-horizontal.headlines dt.date {
        flex: 0 0 auto;
        width: 50px;
    }
    .paragraph-events-view > .row > .col-md-4 > dl.dl-horizontal.headlines dd {
        flex: 1 1 auto;
        min-width: 0;
    }
}

/* ============================================================
   HORIZONTAL OVERFLOW FIX (all widths)
   Two pre-existing header elements extend past the viewport right
   edge, producing a horizontal scrollbar on both PC and mobile:

   1. .header-nav  — margin-left:15px + margin-right:15px on a
      full-viewport-width flex container pushes its box 15px past
      each edge (right = vw + 15).
   2. .header-nav-top .row — margin-left:-20px + margin-right:-20px
      (a Bootstrap "bleed" trick) extends the top bar 5px past each
      edge (right = vw + 5).

   Zeroing the margins keeps every element inside the viewport. The
   inner padding (.col-xs-12 has padding:0 20px) still provides the
   visual gutter, so the look is unchanged.

   A safety-net overflow-x:hidden on html/body clips any residual
   sub-pixel or third-party overflow so no scrollbar can appear.
   ============================================================ */
html, body {
    overflow-x: hidden;
}

.header-nav {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.header-nav-top .row {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* ============================================================
   SIGNED-IN HEADER AREA (DESKTOP): [ name ] [ Uitloggen ] [ 🌙 ]
   left→right in .header-nav-top. The inline script replaces the
   template's <div class="login"><p>…</p></div> with a new
   <span id="cleo-userarea"> containing .c-username, .c-logout and
   #cleo-theme-toggle. Because the links are MOVED out of the
   template's .login p, the template rules (gray #6B7280, 14px,
   uppercase, Open Sans) no longer match them — every property is
   pinned here so page-level CSS can't decide the look.
   ============================================================ */

#cleo-userarea {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 3px 0;
    font-family: "Alegreya Sans", "Open Sans", sans-serif;
    font-size: 16px;
    letter-spacing: 1px;
    color: #000;
}

#cleo-userarea a {
    display: inline-block;
    font-family: "Alegreya Sans", "Open Sans", sans-serif !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    letter-spacing: 1px !important;
    color: #000 !important;
    text-decoration: none !important;
    white-space: nowrap;
}

#cleo-userarea a:hover {
    color: #000 !important;
    text-decoration: underline !important;
}

/* ============================================================
   DARK MODE TOGGLE BUTTON (inline SVG sun/moon) — shared by
   desktop header AND mobile drawer. 44×44px touch target on
   mobile. The JS sets the button's innerHTML to an 18px SVG;
   color: currentColor drives the stroke.
   ============================================================ */
#cleo-theme-toggle {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    vertical-align: middle;
    flex: 0 0 auto;
    width: 34px;
    height: 34px;
    margin-left: 10px;
    padding: 0;
    border: none;
    border-radius: 22px;
    background-color: rgba(0, 0, 0, .18);
    color: #fff;
    cursor: pointer;
    transition: background-color .15s;
}
#cleo-theme-toggle svg {
    display: block;
    flex: none;
}
#cleo-theme-toggle:hover {
    background-color: rgba(0, 0, 0, .38);
}

/* ============================================================
   MOBILE DRAWER (≤767px): the hamburger menu's bottom user section.
   The template renders <div class="top-mobile"><div class="login">…</div></div>
   inside the collapsed nav; the JS patch (see cleo_mobile_drawer.js)
   moves the rebuilt #cleo-userarea span into .top-mobile, so the
   drawer shows a vertical stack:  1. name  2. Uitloggen  3. 🌙 toggle
   with a divider above it.
   ============================================================ */
@media (max-width: 767px) {
    /* Divider above the user section (the "divider in the mobile menu") */
    .top-mobile::before {
        content: "";
        display: block;
        width: 100%;
        height: 1px;
        margin: 8px 0 12px 0;
        background-color: rgba(0, 0, 0, .25);
    }

    /* Vertical stack: name / Uitloggen / toggle */
    .top-mobile #cleo-userarea {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 4px;
        padding: 0 4px;
        width: 100%;
    }

    /* 1. User name — high contrast, left-aligned with the links below */
    .top-mobile #cleo-userarea a.c-username {
        font-family: "Alegreya Sans", "Open Sans", sans-serif !important;
        font-size: 16px !important;
        font-weight: 700 !important;
        letter-spacing: 1px !important;
        color: #000 !important;
        text-decoration: none !important;
    }

    /* 2. Uitloggen — same type, slightly lighter weight */
    .top-mobile #cleo-userarea a.c-logout {
        font-family: "Alegreya Sans", "Open Sans", sans-serif !important;
        font-size: 16px !important;
        font-weight: 400 !important;
        letter-spacing: 1px !important;
        color: #000 !important;
        text-decoration: none !important;
    }

    .top-mobile #cleo-userarea a:hover {
        text-decoration: underline !important;
    }

    /* 3. Dark mode toggle — full-width tap-friendly row, icon left-
       aligned with the links above it. 44px min height = touch target. */
    .top-mobile #cleo-theme-toggle {
        display: flex;
        align-items: center;
        justify-content: flex-start;
        width: 100%;
        height: 44px;
        margin: 6px 0 0 0;
        padding: 0 12px;
        box-sizing: border-box;
        border-radius: 22px;
        background-color: rgba(0, 0, 0, .12);
    }
    .top-mobile #cleo-theme-toggle:hover {
        background-color: rgba(0, 0, 0, .30);
    }
    .top-mobile #cleo-theme-toggle:active {
        background-color: rgba(0, 0, 0, .45);
    }

    .top-mobile {
        overflow: visible;
    }
}

/* ============================================================
   DARK MODE (html.cleo-dark) — yellow stays the accent.
   Palette:
     body bg #18181b / text #F3F4F6
     content card #232329
     footer #1f1f24 / muted text #9CA3AF
     elevated surfaces #26262c, borders #3f3f46
     links #38BDF8 (light sky blue, WCAG AA on dark surfaces)
     yellow banners softened to #D9A50E (kills the harsh glare),
     text on them stays #000 (contrast 12.6:1)
   ============================================================ */

/* --- Surfaces & base text --- */
html.cleo-dark body { background-color: #18181b; color: #F3F4F6; }
html.cleo-dark #content > .container { background-color: #232329; }
html.cleo-dark footer { background-color: #1f1f24; color: #9CA3AF; }

/* --- Muted / secondary text (dates, event details, tags, timestamps,
      blog subtext) — was template gray ~#757575 on #232329 = 3.3:1.
      Now #9CA3AF on #232329 ≈ 6.4:1 (WCAG AA, passes AAA for large). --- */
html.cleo-dark .text-muted,
html.cleo-dark .text-muted a,
html.cleo-dark time { color: #9CA3AF; }

/* --- Links: light sky blue on dark surfaces (AA everywhere) --- */
html.cleo-dark a { color: #38BDF8; }
html.cleo-dark footer a { color: #38BDF8; }
html.cleo-dark .text-muted a { color: #38BDF8; }

/* --- Evenementen: event titles next to the yellow date badges --- */
html.cleo-dark dl.headlines dd a { color: #F3F4F6; }
html.cleo-dark dl.headlines dd a:hover { color: #38BDF8; text-decoration: underline; }

/* --- "Nieuwste blogs" / footer widgets: titles + relative time --- */
html.cleo-dark footer dl.headlines.headlines-footer dd { color: #F3F4F6; }
html.cleo-dark footer dl.headlines.headlines-footer dd a { color: #F3F4F6; }
html.cleo-dark footer dl.headlines.headlines-footer dd a:hover { color: #38BDF8; text-decoration: underline; }
html.cleo-dark footer dl.headlines.headlines-footer dd .text-muted,
html.cleo-dark footer dl.headlines.headlines-footer dd time { color: #9CA3AF; }

/* --- Tables, forms, dropdowns, panels --- */
html.cleo-dark .table, html.cleo-dark .table td, html.cleo-dark .table th {
    background-color: #26262c !important; color: #F3F4F6;
}
html.cleo-dark .form-control { background-color: #26262c; color: #F3F4F6; border-color: #3f3f46; }
html.cleo-dark .dropdown-menu, html.cleo-dark .panel, html.cleo-dark .well { background-color: #26262c; color: #F3F4F6; }
html.cleo-dark .btn-default { background-color: #26262c; color: #F3F4F6; border-color: #3f3f46; }

/* --- Navbar & banner harmonization: soften the yellow fills so they
      don't glare in dark mode, but keep text/icons black on them
      (contrast 12.6:1 — far above AA). --- */
html.cleo-dark header,
html.cleo-dark body > .top,
html.cleo-dark dt.date a,
html.cleo-dark footer .headline {
    background-color: #D9A50E !important;
    color: #000 !important;
}
html.cleo-dark .sf-menu > li a:hover { background-color: #b8890a; }

/* --- Signed-in header area (desktop .header-nav-top): the bar stays
      yellow, so the name / Uitloggen / toggle must stay black. --- */
html.cleo-dark header .container .header-nav-top .login p,
html.cleo-dark header .container .header-nav-top .login p a,
html.cleo-dark #cleo-userarea,
html.cleo-dark #cleo-userarea a {
    color: #000 !important;
}

/* --- Mobile drawer user section (dark mode): the drawer inherits the
      softened-yellow header, so name + Uitloggen + toggle icon stay
      black for max contrast. The toggle's translucent dark background
      is already pinned in the mobile block above and works on both. --- */
@media (max-width: 767px) {
    html.cleo-dark .top-mobile #cleo-userarea a.c-username,
    html.cleo-dark .top-mobile #cleo-userarea a.c-logout {
        color: #000 !important;
    }
    html.cleo-dark .top-mobile::before {
        background-color: rgba(0, 0, 0, .35);
    }
}

/* --- Copyright bar stays near-black in both modes --- */
html.cleo-dark #copyright { background-color: #18181b !important; color: #9CA3AF; }