/* ---- General Body Styling ---- */
body {
    color: #000;
    font-family: 'Roboto Condensed', sans-serif;
}

/* ---- Set up site grid ---- */
.wrapper {
    display: grid;
    grid-template-columns: 1fr 300px; /* Main content takes 1 fraction, sidebar takes 300px */
    grid-template-rows: auto;
    grid-template-areas:
        "header header"
        "nav nav"
        "main aside"
        "footer footer";
    grid-gap: 10px; /* Increased for better spacing */
}


/* ---- Global Element Padding & Border Radius ---- */
header, nav, main, aside, footer {
    padding: 20px;
    border-radius: 10px;
}

/* ---- Header Styling ---- */
header {
    grid-area: header;
    background-color: deepskyblue;
    border: 2px solid grey;
    color: #fff;
    height: 84px;

    /* Align image and text horizontally */
    display: flex;
    align-items: center;
    gap: 20px;
    padding-left: 20px;
}

/* Image styling */
img.roundleft {
    border-top-left-radius: 10px;
    border-bottom-left-radius: 10px;
    box-shadow: 1px 0px 10px #000;
    float: left;
}

/* Adjust heading */
h1 {
    font-family: 'Josefin Sans', sans-serif;
    font-size: 300%;
    margin: 0;
    flex-grow: 1; /* Allows it to take available space */
    text-align: center; /* Centers the heading */
}

/* ---- Navigation Styling ---- */
nav {
    grid-area: nav;
    background-color: lightcyan;
    border: 2px solid beige;
    color: #000;
}

/* ---- Main Content Styling ---- */
main {
    grid-area: main;
    background-color: beige;
    border: 2px solid lightblue;
    color: #000;
}

/* ---- Sidebar (Aside) Styling (Moved to right) ---- */
aside {
    grid-area: aside;
    background-color: lavender;
    border: 2px solid purple;
    color: #000;
}


/* ---- Footer Styling ---- */
footer {
    grid-area: footer;
    background-color: deepskyblue;
    border: 2px solid grey;
    color: #fff;
}

/* ---- All-round Class ---- */
.allround {
    border-radius: 20px;
    box-shadow: 1px 0px 10px #000;
}

/* ---- Hover Text Formatting ---- */
/* from http://css-workshop.com/hover-box-text-over-image-on-hover-and-more */
.hvrbox,
.hvrbox * {
    box-sizing: border-box;
}
.hvrbox {
    position: relative;
    display: inline-block;
    overflow: hidden;
    max-width: 100%;
    border-radius: 20px;
    height: auto;
}
.hvrbox img {
    max-width: 100%;
}
.hvrbox .hvrbox-layer_bottom {
    display: block;
}
.hvrbox .hvrbox-layer_top {
    opacity: 0;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6);
    color: #fff;
    padding: 15px;
    -moz-transition: all 0.4s ease-in-out 0s;
    -webkit-transition: all 0.4s ease-in-out 0s;
    -ms-transition: all 0.4s ease-in-out 0s;
    transition: all 0.4s ease-in-out 0s;
}
.hvrbox:hover .hvrbox-layer_top,
.hvrbox.active .hvrbox-layer_top {
    opacity: 1;
}
.hvrbox .hvrbox-text {
    text-align: center;
    font-size: 18px;
    display: inline-block;
    position: absolute;
    top: 50%;
    left: 50%;
    -moz-transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
}
.hvrbox .hvrbox-text_mobile {
    font-size: 15px;
    border-top: 1px solid rgb(179, 179, 179); /* for old browsers */
    border-top: 1px solid rgba(179, 179, 179, 0.7);
    margin-top: 5px;
    padding-top: 2px;
    display: none;
}
.hvrbox.active .hvrbox-text_mobile {
    display: block;
}

/* ---- Link Formatting ---- */
a:link { color: #051fb4; } /* Blue */
a:hover { color: darkblue; } /* Dark Blue */
a:visited { color: #333; } 

/* Navigation Links */
nav a { text-decoration: none; }
nav a:link, nav a:visited { color: #051fb4; }
nav a:hover { color: darkblue; }

/* ---- Drop Down Menu ---- */
.littlearrow {
    font-size: 75%;
}

.dropbtn {
    color: rgb(0, 0, 0);
    padding: 16px;
    font-size: 16px;
    border: none;
    cursor: pointer;
}

/* Dropdown Container */
.dropdown {
    position: relative;
    display: inline-block;
}

/* Dropdown Content */
.dropdown-content {
    display: none;
    position: absolute;
    background-color: #f9f9f9;
    min-width: 160px;
    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
    z-index: 1;
}

/* Dropdown Links */
.dropdown-content a {
    color: black;
    padding: 12px 16px;
    text-decoration: none;
    display: block;
}

/* Dropdown Hover Effects */
.dropdown-content a:hover {
    background-color: #f1f1f1;
}

.dropdown:hover .dropdown-content {
    display: block;
}

.dropdown:hover .dropbtn {
    background-color: #fafdfa;
}

/* --- Google Form Styling --- */
iframe {
    width: 85%;
    height: 754px;
    margin: auto;
    display: block;
    border: 0;
}

/* ---- Grid for front page images ---- */
.homeimages {
    display: grid;
    grid-template-columns: 250px 250px;
    grid-template-rows: auto;
    grid-template-areas:
        "free haiku"
        "limerick acrostic";
    grid-gap: 20px; /* Increased for better spacing */

    width: 520px;
    margin: auto;
    padding: 5px;
}

.free { grid-area: free; }
.haiku { grid-area: haiku; }
.limerick { grid-area: limerick; }
.acrostic { grid-area: acrostic; }
