/*
 * Started : 15-JAN-2026
 * Updated : 12-FEB-2026
 */

/*
 * This stylesheet accompanies: Building a static website (part 12) blog post.
 */

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

body
{
   color: black;
   font-family: "Noto Sans", "Oxygen-Sans", Ubuntu, Roboto, Helvetica, Arial, sans-serif;
   max-width: 1000px;
}

/* If the browser window is narrower than the intrinsic size of an image,
 * display it at 100% of the viewport, until that becomes wider than the intrinsic size of the image.
 * The setting of "display: block;" and "margin: 0 auto;" centres all images within <article> … </article>
 */
article img
{
   max-inline-size: 100%;
}

code
{
   background: lightgrey;
}

/* Style code blocks and include a scrollable area if lines are too long. */
pre.code_block
{
   background-color: lightgrey;
   border: thin solid black;
   overflow: auto;
}

/*
 * Styles for the table of contents section.
 */
ol.contents_tab ul li
{
   list-style-type: none;
}

ol.contents_tab ul
{
   margin-block-end: 0;
}

ol.contents_tab
{
   margin-block-end: 0;
}

ol.contents_tab a:visited { text-decoration: none; }
ol.contents_tab a:active { text-decoration: none; }

/*
 * CSS for the global header/navigation area at the top of the page.
 */
header.top
{
   display: flex;
   align-items: center;
   background-color: lightgrey;
   height: 100px;
}

nav.global
{
   display: flex;
   justify-content: space-between;
   align-items: center;
   background: black;
   height: 40px;
   width: 100%; /* Stretch to full width of the header area. */
}

nav.global ul
{
   list-style-type: none;
   text-transform: uppercase;
   margin: 0;
   padding: 0;
}

nav.global li
{
   display: inline;
   margin-inline-end: 20px;
}

nav.global img
{
   margin-inline-start: 20px;
   height: 60px;
}

nav.global a
{
   text-decoration: none;
   color: white;
}

nav.global li a:hover
{
   color: green;
}

/*
 * CSS for the top navigation menu.
 * We set the list not to display any visible bullets and reduce the
 * margin and padding 20 pixels.
 * The list element is set to display mode "inline", which means
 * the items in the list will appear next to each other.
 * We also set the width of the icon graphic to be 40 pixels.
 */
nav.local_navigation ul
{
   list-style-type: none;
   margin: 0;
   padding: 0;
}

nav.local_navigation li
{
   display: inline;
}

nav.local_navigation img
{
   width: 40px;
}

header
{
   background-color: #052962;
   height: 100px;
}

footer
{
   background-color: #052962;
   color: white; /* Make sure the text is visible against the background. */
}

/*
 * CSS to style the "published" section, which displays a small
 * calendar icon and the published and updated dates.
 * We simply set the height of the IMG element (which is the calendar icon)
 * to "1em", to match the font size.
 * Note the "display: inline;" is required because of the CSS used to centre images.
 */
.published img
{
   height: 1em;
   display: inline;
}

h1, h2, h3, h4
{
   font-family: "Noto Serif", "Times New Roman", Georgia, serif;
}

h1
{
   color: #1b0d9f;
   font-size: 3.0rem;
   line-height: 110%;
   margin-block-end: 25px;
}

h2
{
   font-size: 2.5rem;
   margin-block-end: 20px;
}

h3
{
   font-size: 2.0rem;
   margin-block-end: 20px;
}

h4
{
   font-size: 1.6rem;
   margin-block-end: 20px;
}

p, pre, hr, ul, ol, table, details
{
   margin-block-end: 20px;
}

ul, ol
{
   padding-inline-start: 20px;
}

/*
 * Default table style.
 */
table thead tr
{
   background-color: lightgrey;
   border: 1px solid #ffff;
}

table, th, td
{
   border: 1px solid black;
   border-collapse: collapse;
}
