/*
 * Port of the Drupal "bluemasters" theme as customised for the 28ème (green variant),
 * with a fluid, responsive layout instead of the fixed 950px one.
 */

:root {
    --green-link: #3d7733;
    --green-footer: #052000;
    --green-muted: #9daa76;
    --green-sidebar: #a2c0a0;
    --green-button: #085723;
    --near-black: #0d0f13;
    --grey-light: #eef0f5;
    --grey-border: #ced1da;
    --width: 950px;
}

*, *::before, *::after { box-sizing: border-box; }

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

body {
    margin: 0;
    background: url(/theme/bg.gif) repeat;
    font: 13px/1.5 Verdana, Helvetica, sans-serif;
    color: #000;
}

img, iframe { max-width: 100%; }
img { height: auto; }

a { color: var(--green-link); text-decoration: none; }
a:hover { text-decoration: underline; }

h1, h2, h3, h4 { font-family: Arial, Helvetica, sans-serif; margin: 0 0 10px; line-height: 1.25; }
h1 { font-size: 230%; }
h2 { font-size: 183%; }
h3 { font-size: 140%; }
h4 { font-size: 120%; }

p { margin: 0 0 10px; }
ul, ol { margin: 15px 0 15px 25px; padding: 0; }

blockquote { border: 1px solid var(--grey-border); background: #d0efce; margin: 20px 0; padding: 20px; color: #859378; font-weight: bold; font-style: italic; }

table { margin: 15px 0; width: 100%; border-collapse: collapse; }
td, th { padding: 10px; vertical-align: top; }
th { background: #9097a7; }

.page { background: url(/theme/bg.png) repeat-x; }

.container { width: 100%; max-width: var(--width); margin: 0 auto; }

/*
 * Header
 */
.header { padding: 80px 0 21px; }

.header__inner { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }

.header__logo { flex: none; }
.header__logo img { display: block; }

.nav { margin-top: 5px; }
.nav ul { list-style: none; margin: 0; padding: 0; }
.nav > ul { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0 5px; }
.nav li { position: relative; }
.nav a { display: block; padding: 5px 10px; color: #fff; font: bold 15px Arial, Helvetica, sans-serif; border-radius: 2px; }
.nav a:hover, .nav a.is-active { background: var(--near-black); text-decoration: none; }

/* 2nd level */
.nav li ul { display: none; position: absolute; right: 0; top: 100%; z-index: 100; min-width: 220px; background: var(--near-black); }
.nav li:hover > ul, .nav li:focus-within > ul { display: block; }
.nav li ul a { color: #7a8090; padding: 10px; text-align: right; border-radius: 0; }
.nav li ul a:hover { color: #3cc42a; }

.nav-toggle { display: none; }

/*
 * Front page slideshow
 */
.slider { margin-bottom: 0; }

.slider__window { position: relative; aspect-ratio: 930 / 320; border: 10px solid #fff; overflow: hidden; background: #fff; }

.slider__slide { position: absolute; inset: 0; opacity: 0; transition: opacity .8s; }
.slider__slide.is-active { opacity: 1; z-index: 1; }
.slider__slide img { display: block; width: 100%; height: 100%; object-fit: cover; }

.slider__caption { position: absolute; left: 0; right: 0; bottom: 0; padding: 10px; background: url(/theme/30w087b.png); color: #fff; font: 1.7em Arial, Helvetica, sans-serif; }

.slider__paging { height: 40px; padding-top: 5px; text-align: center; background: url(/theme/slide-shadow.png) center -7px no-repeat; }
.slider__paging button { width: 14px; height: 14px; margin: 4px; padding: 0; border: 0; cursor: pointer; background: url(/theme/slide-nav-button.png) no-repeat center; }
.slider__paging button.is-active { background-image: url(/theme/slide-nav-button-hover.png); }

/*
 * Content areas
 */
.area { background: url(/theme/home-block-box-bg.png); padding: 20px; }

.home-columns { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; align-items: start; }
.home-columns__column { display: flex; flex-direction: column; gap: 20px; min-width: 0; }

.main-area { display: grid; grid-template-columns: 1fr 267px; }
.main-area__main { background: #fff; padding: 20px; min-width: 0; font-size: 12px; }
.main-area__sidebar { background: var(--grey-light); }

.meta { color: #777d8a; font-size: 11px; }

.content img { border: 1px solid var(--grey-border); background: var(--grey-light); padding: 4px; margin: 10px 0; vertical-align: middle; }

.embed { margin: 15px 0; }
.embed iframe { display: block; width: 100%; }

.teaser { border-bottom: 1px dotted #84a1af; margin-bottom: 20px; }
.teaser h2 { font-size: 160%; margin-bottom: 0; }

.pager { display: flex; justify-content: space-between; margin-top: 20px; }

/*
 * Blocks (home columns, sidebar, footer)
 */
.home-columns .block { background: url(/theme/home-block-header-bg.png) repeat-x top; border-radius: 5px 5px 0 5px; overflow: hidden; }
.home-columns .block__title { margin: 0; padding: 10px 20px; min-height: 46px; color: #fff; font-size: 18px; }
.home-columns .block__content { background: url(/theme/sectionbg.png); padding: 20px; color: var(--green-muted); font: 14px/1.4 Arial, Helvetica, sans-serif; }
.home-columns .block__content h2,
.home-columns .block__content h3,
.home-columns .block__content h4 { color: #fff; font-size: 17px; }
.home-columns .block__content img { max-width: 100%; }
.home-columns .block:not(:has(.block__title)) { padding-top: 46px; }

.main-area__sidebar .block__title { margin: 0; padding: 10px 10px 10px 45px; background: var(--green-sidebar) url(/theme/menu-icon.png) no-repeat 10px center; color: #fff; font-size: 160%; }
.main-area__sidebar .block__content { padding: 20px; }

.footer { background: var(--green-footer); border-bottom: 1px solid #040507; }
.footer__inner { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 20px; padding: 20px 14px; color: #fff; font-size: 10px; }
.footer .block__title { color: var(--green-muted); font-size: 22px; }
.footer a { color: #467046; }

.footer-bottom { background: #040507; border-top: 1px solid #0f131f; height: 90px; }

.logos { display: flex; align-items: center; flex-wrap: wrap; gap: 20px; }
.logos img { display: block; max-height: 60px; width: auto; }

.agenda { display: block; width: 100%; height: 400px; border: 0; background: #fff; }

.latest { list-style: none; margin: 0 0 10px; }
.latest li { margin-bottom: 8px; }
.latest .meta { display: block; }

/*
 * Forms
 */
.form fieldset { border: 1px solid var(--grey-border); margin: 0 0 20px; padding: 15px; }
.form legend { font-weight: bold; padding: 0 5px; }
.form__field { margin-bottom: 1em; }
.form__field label { display: block; font-weight: bold; padding: 5px 0; }
.form__help { color: #666; font-size: 11px; }
.form input[type=text], .form input[type=email], .form input[type=number], .form input[type=date], .form select, .form textarea {
    width: 100%; max-width: 590px; padding: 5px; background: var(--grey-light); border: 1px solid var(--grey-border); font: inherit;
}
.form button { background: var(--green-button); border: 0; color: #fff; font-weight: bold; padding: 10px 20px; cursor: pointer; }
.form__errors { background: #fdd; border: 1px solid #c00; padding: 10px; margin-bottom: 20px; }
.form__success { background: #d0efce; border: 1px solid var(--green-link); padding: 10px; }

/*
 * Small screens
 */
@media (max-width: 980px) {
    .container { padding: 0 10px; }
    .header { padding-top: 20px; }
    .home-columns { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 720px) {
    .header__inner { flex-wrap: wrap; align-items: center; }
    .header__logo img { width: 220px; }

    .nav-toggle { display: block; margin-left: auto; padding: 8px 14px; background: var(--near-black); color: #fff; border: 0; border-radius: 2px; font: bold 15px Arial, Helvetica, sans-serif; cursor: pointer; }
    .nav { display: none; width: 100%; }
    .nav.is-open { display: block; }
    .nav > ul { flex-direction: column; }
    .nav li ul { display: block; position: static; background: none; }
    .nav li ul a { text-align: left; padding-left: 25px; }

    .area { padding: 10px; }
    .home-columns, .main-area { grid-template-columns: 1fr; }
    .slider__caption { font-size: 1.2em; }
}
