/*
 * An Gineadair Beag is a content management system to run websites with.
 *
 * Copyright (C) 2005-2026 GunChleoc
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as
 * published by the Free Software Foundation, either version 3 of the
 * License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */

/************ General element styles ************/
html body {
    font-size: 110%;
}

a:active {
    font-style: italic;
}

li {
    margin-left: 1em;
}

/* General text sizes */
.medtext,
div.medtext,
span.medtext {
    font-size: 90%;
}

.smalltext,
div.smalltext,
span.smalltext {
    font-size: 80%;
    letter-spacing: -0.25px;
}

/* Highlighted text */
.highlight {
    font-weight: bold;
}

/**************** Form elements *****************/
fieldset {
    margin: 1em 0;
    padding: 1em;
    border-width: 1px;
    border-style: solid;
}

input {
    text-indent: 2px;
}

input[type=button],
input[type=password],
input[type=reset],
input[type=submit],
input[type=text],
select,
textarea,
.buttonlink {
    border-width: 1px;
    border-style: solid;
    border-radius: 0.2em;
    font-size: 100%;
}

input[type=file] {
    font-size: 100%;
}

.buttonlink {
    padding: 0.2em 0.3em;
    font-weight: normal;
    text-align: center;
}

a.buttonlink:link,
a.buttonlink:visited,
a.buttonlink:active,
a.buttonlink:focus,
a.buttonlink:hover {
    text-decoration: none;
}

/************ Layout control ************/
.rightalign {
    float: right;
    text-align: right;
}

.leftalign {
    float: left;
    text-align: left;
}

.centeralign {
    text-align: center;
}

/* to prevent floating for new sections after image */
.newline {
    clear: both;
}

/************ Main layout containers ************/
/* Border around everything else */
#wrapper {
    padding: 1em;
    border-width: 1px;
    border-style: solid;
}

#header,
#headertitlemenu {
    display: grid;
    grid-template-columns: 20% 60% 20%;
    width: 100%;
}

#headertitlemenu {
    padding-left: 0;
    padding-right: 0;
    margin-top: 1.5em;
}

#headertitlemenu a,
#headertitlemenu input {
    font-size: 65%;
}

#headerleft {
    padding-bottom: 2em;
}

#headercenter {
    text-align: center;
}

#headerright {
    text-align: right;
    padding-bottom: 2em;
}

/* Grid for navigator & contentarea to prevent ragged bottom */
#contentwrapper {
    display: grid;
    grid-template-columns: 19.5% auto;
}

#togglenavigatorbutton {
    z-index: 999;
    display: none;
    overflow: hidden;
}

#navigator {
    z-index: 990;
    display: block;
    width: auto;
    margin-top: 0.5em;
    margin-left: 0.6em;
    padding: 0.2em;
    font-size: 120%;
}

#header_noscript_menu {
    display: none;
}

/* The width needs to be coordinated with the JavaScript in pages/page.tpl */
@media screen and (max-width: 900px) {
    #contentwrapper {
        grid-template-columns: auto;
    }

    #navigator {
        display: none;
        width: 100%;
    }

    #header_noscript_menu {
        display: block;
        width: 100%;
    }

    #skip_navigation {
        display: none;
    }
}

#banners {
    width: 95%;
    margin-top: 2em;
    padding: 0.35em 0;
    border-width: 1px 0 0 0;
    border-style: solid;
    font-size: 75%;
}

#contentarea {
    z-index: 1;
    min-width: 1px;
    margin: 1.5em 0 0 1.5em;
    padding: 0 1em 1.5em;
}

/************ Navigator elements ************/
/* For accessibility */
.invisible {
    float: left;
    overflow: hidden;
    width: 0;
    height: 0;
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 0;
}

.potdcaption {
    width: 98%;
    margin-bottom: 2em;
    padding-top: 0.5em;
    font-size: 65%;
    font-weight: bold;
    text-align: left;
}

.aotd {
    width: 98%;
    margin-bottom: 2em;
    padding: 0.35em 0;
    border-width: 1px 0;
    border-style: solid;
    font-size: 75%;
    font-weight: bold;
    text-align: center;
}

.aotd a {
    text-decoration: none;
}

/* Navigator - list styling */
#navigator ul {
    padding: 0;
    list-style-type: none;
    font-weight: bold;
    margin-left: -40px;
}

/* Navigator link for the main levels */
.navtitle {
    margin-top: 1em;
    font-size: 100%;
}

/* Navigator link for the lower levels */
.navlink {
    margin-top: 0.5em;
    font-size: 90%;
}

#navigator a:link,
#navigator a:visited {
    text-decoration: none;
}

#navigator a:focus,
#navigator a:hover {
    text-decoration: underline;
}

/************ header elements ************/
#sitedescription {
    padding: 0.75em 0;
    font-style: italic;
}

.logoutlink {
    margin-top: 100px;
    text-align: right;
}

/* Page title in header and navigator elements on splashpage */
.headerpagetitle {
    width: 98.5%;
    padding: 0.4em 0.5em 0.35em;
    font-size: 160%;
    font-weight: bold;
    text-align: center;
}

/* Site name */
.maintitle {
    margin: 0.25em;
    font-size: 350%;
    font-weight: bold;
}

/************ Footer elements ************/
.footer {
    font-size: 80%;
    letter-spacing: -0.5px;
}

/************ Content titles ************/

/* Titles in the content area */
.title {}

/* The text used for individual pages' titles */
h2.title {
    font-size: 250%;
    font-weight: bold;
    line-height: 160%;
}

/* Titles for newsitemsections, articlesections */
h3.title {
    margin-bottom: 0.75em;
    font-size: 220%;
}

/* For newsitemsections */
h4.title {
    margin: 0.5em 0 0.75em;
    font-size: 175%;
}

div.title {
    font-size: 175%;
}

/************ Content elements ************/
/* section text all over the place */
.sectiontext {
    padding-top: 0.75em;
    text-align: justify;
}

/* Synopsis for page intros formerly articlesynopsis */
.introtext {
    padding-top: 0.75em;
    padding-bottom: 0.5em;
    font-weight: bold;
    text-align: justify;
}

/* Pagemenu */
.pagemenu {
    float: right;
    text-align: right;
}

/* Copyright info */
.copyright {
    font-size: 80%;
    letter-spacing: -0.5px;
}

.editdata {
    width: 100%;
    margin-top: 1.5em;
    padding-top: 0.5em;
    border-width: 1px 0 0 0;
    border-style: solid;
}

.code {
    overflow: auto;
    padding: 0 0.2em;
    border-width: 1px;
    border-style: solid;
}

pre.code {
    padding: 0.2em 0;
}

/************ Menu pages ************/
/* Navigator - list styling */
nav.subpages {
    margin: 0;
    padding: 0;
}

nav.subpages ul {
    list-style-type: none;
}

nav.subpages li {
    margin-left: 0;
    padding-left: 0;
}

/* content - linklistmenu & linklist */
.contentnavtitle {
    margin-top: 1.5em;
    font-size: 140%;
}

.contentnavsubtitle {
    margin-top: 1em;
    font-size: 120%;
}

.contentnavlinkwrapper {
    margin-top: 1.75ex;
    line-height: 1.5em;
    text-align: justify;
}

/* Linklist & articlemenu */

.title a,
.title a:visited,
a.title,
a.title:visited {
    font-weight: bold;
    text-decoration: none;
}

.title a:active,
.title a:focus,
.title a:hover,
a.title:active,
a.title:focus,
a.title:hover {
    text-decoration: underline;
}

/* for articlemenu */
.articleinfo {
    margin-top: 0.05em;
    font-size: 85%;
}

/* for menu pages */
.subpages {
    margin-left: 3em;
}

/************ Newsitems and articles ************/
/* Clickable categories */
.articleinfocategories {
    margin-top: 0.2em;
    font-size: 80%;
}

.newsitemcategories {
    margin-top: 0.2em;
    font-size: 100%;
}

.categorylist {
    text-align: left;
}

.categorylist a {
    margin: 0 0.5em;
    white-space: nowrap;
}

/* News: RSS button */
.rss {
    float: left;
    text-align: left;
}

/* News: filter form wrapper */
.newsfilterform {
    margin-top: 1.5em;
    border-width: 1px 0;
    border-style: solid;
}

/* Newsitem: wrapper */
.newsitem {
    margin-bottom: 1.5em;
    padding-top: 0.5em;
    border-width: 1px 0 0 0;
    border-style: solid;
}

/* section text all over the place */
.newsitemsynopsis {
    padding-top: 1em;
}

/* Newsitem: Label for section with quoted text */
.newsquotetitle {
    margin: 0 0 1em 2em;
    padding-top: 2em;
    font-weight: bold;
}

/* Newsitem: Section with quoted text */
div.newsquote {
    margin: 0 2em;
    padding: 1em;
}

/* Newsitem and article: Source info */
.sourceinfo div {
    margin-top: 0.2em;
}

.articlesource {}

.articleauthor {
    font-weight: bold;
    font-style: italic;
}

.articlelocation {}

.articledate {
    font-style: italic;
}

/* Article: Table of Contents */
.articletoc {
    margin-top: 1.5em;
    padding: 0.5em 0;
    border-width: 1px 0;
    border-style: solid;
}

/************ Gallery ************/
.galleryimage {
    margin: 1em;
    padding: 1em;
    font-size: 90%;
    text-decoration: none;
}

.gallerycontents {
    display: grid;
    /* This needs to be wider than the Thumbnail Size in the Site Properties */
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    width: 100%;
}

/************ Linklist ************/
/* Linklist link */

.linklistlink {
    margin-top: 1em;
    border-width: 1px 0 0 0;
    border-style: solid;
}

/************ Fieldset ************/
legend {
    font-weight: bold;
}

.fieldset-grid-two-column {
    display: inline-grid;
    /* We have an extra column because of the legend */
    grid-template-columns: auto auto auto;
}

.fieldset-grid-two-column label,
.fieldset-grid-two-column input {
    margin: 0.4em;
}

/* The main submit button option */
input.mainoption {
    font-weight: bold;
}

input[type=button],
input[type=password],
input[type=reset],
input[type=submit],
input[type=text],
select,
textarea,
.buttonlink {
    border-width: 1px;
    border-style: solid;
    text-decoration: none;
}

/************ Images and image captions ************/
/* Image + caption text */
.captionedimage {
    margin: 1em;
    padding: 0.75em;
    border-width: 1px;
    border-style: solid;
    text-align: center;
}

.imagecaption {
    padding: 0.5em 0.75em 0;
    font-size: 100%;
    font-weight: bold;
    font-style: normal;
    text-align: center;
}

/************ Splashpage ************/
.splashpageheaderspacer {
    padding: 3.5em 0 1em;
}

#splashpagecontentarea {
    min-width: 1px;
    margin-top: 3em;
    padding: 0 1em 1em;
    text-align: center;
}

.splashpagelink {
    display: inline;
    margin: 0em 0.5em;
    font-size: 85%;
}

.splashpagelink a {
    font-weight: bold;
    text-decoration: none;
}

.splashpagelink a:active,
.splashpagelink a:focus,
.splashpagelink a:hover {
    text-decoration: underline;
}

/************ sitemap ************/

.sitemap {
    font-size: 110%;
}

/************ tables ************/
table {
    width: 70%;
    margin: 2em 15%;
    border-width: 1px 1px 0;
    border-style: solid;
    font-size: 100%;
    border-collapse: collapse;
    border-spacing: 0;
}

@media screen and (max-width: 1200px) {
    table {
        width: 80%;
        margin: 1em 10px;
    }
}

@media screen and (max-width: 1000px) {
    table {
        width: 100%;
        margin: 1em 0;
    }
}

caption {
    height: 26px;
    padding: 0.4em 0.5em 0.35em;
    border-width: 1px 1px 0;
    border-style: solid;
    font-size: 125%;
    font-weight: bold;
    text-align: center;
}

th {
    padding: 0.5em;
    border-width: 1px 1px 0;
    border-style: solid;
    font-size: 110%;
    font-weight: bold;
    text-align: center;
}

td {
    padding: 0.5em;
    border-width: 1px;
    border-style: solid;
}
