/* ===================
START OF NORMALIZE CSS
=================== */

html {
	line-height: 1.15;
	-ms-text-size-adjust: 100%;
	-webkit-text-size-adjust: 100%;
}

h1 {
	font-size: 2em;
	margin: 0.67em 0;
}

dl dl,
dl ol,
dl ul,
ol dl,
ul dl {
	margin: 0;
}

ol ol,
ol ul,
ul ol,
ul ul {
	margin: 0;
}

hr {
	box-sizing: content-box;
	color: inherit;
	height: 0;
	overflow: visible;
}

main {
	display: block;
}

pre {
	font-family: monospace, monospace;
	font-size: 1em;
}

a {
	background-color: transparent;
}

abbr[title] {
	text-decoration: underline;
	text-decoration: underline dotted;
}

b, strong {
	font-weight: bolder;
}

code, kbd, samp {
	font-family: monospace, monospace;
	font-size: 1em;
}

small {
	font-size: 80%;
}

audio, video {
	display: inline-block;
}

audio:not([controls]) {
	display: none;
	height: 0;
}

img {
	border-style: none;
}

svg:not(:root) {
	overflow: hidden;
}

table {
	border-color: inherit;
	text-indent: 0;
}

button, input, select {
	margin: 0;
}

button {
	overflow: visible;
	text-transform: none;
}

button, [type="button"], [type="reset"], [type="submit"] {
	-webkit-appearance: button;
}

fieldset {
	padding: 0.35em 0.75em 0.625em;
}

input {
	overflow: visible;
}

legend {
	box-sizing: border-box;
	color: inherit;
	display: table;
	max-width: 100%;
	white-space: normal;
}

progress {
	display: inline-block;
	vertical-align: baseline;
}

select {
	text-transform: none;
}

textarea {
	margin: 0;
	overflow: auto;
}

[type="checkbox"], [type="radio"] {
	box-sizing: border-box;
	padding: 0;
}

[type="search"] {
	-webkit-appearance: textfield;
	outline-offset: -2px;
}

::-webkit-inner-spin-button, ::-webkit-outer-spin-button {
	height: auto;
}

::-webkit-input-placeholder {
	color: inherit;
	opacity: 0.54;
}

::-webkit-search-decoration {
	-webkit-appearance: none;
}

::-webkit-file-upload-button {
	-webkit-appearance: button;
	font: inherit;
}

::-moz-focus-inner {
	border-style: none;
	padding: 0;
}

:-moz-focusring {
	outline: 1px dotted ButtonText;
}

:-moz-ui-invalid {
	box-shadow: none;
}

details {
	display: block;
}

dialog {
	background-color: white;
	border: solid;
	color: black;
	display: block;
	height: -moz-fit-content;
	height: -webkit-fit-content;
	height: fit-content;
	left: 0;
	margin: auto;
	padding: 1em;
	position: absolute;
	right: 0;
	width: -moz-fit-content;
	width: -webkit-fit-content;
	width: fit-content;
}

dialog:not([open]) {
	display: none;
}

summary {
	display: list-item;
}

canvas {
	display: inline-block;
}

template {
	display: none;
}

[hidden] {
	display: none;
}

/* =================
END OF NORMALIZE CSS
================= */

.screen-too-small {
	display: none;
}

#invalid-download-token {
	display: none;
}

#proceed-download {
	display: none;
}

#safari-msg {
    text-align: center !important;
}

:root {
	--darker-light-gray: #797979;
	--darker-royal-gold: #8b730f;
	--gray: #333333;
	--hover-light-gray: #f0f0f0;
	--lighter-light-gray: #f4f4f4;
	--light-gray: #e0e0e0;
	--royal-blue: #2c3e50;
	--royal-gold: #b59410;
	--white: #fdfdfd;
	--red: #c0392b;
}

@media (max-width: 359px) {
    body > *:not(.screen-too-small) {
        display: none !important;
    }

    body {
        margin: 0;
        padding: 0;
        overflow: hidden;
    }

    p {
        margin: 10px;
    }

    ul {
        margin: 10px;
    }

    .screen-too-small {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        height: 100vh;
        width: 100vw;
        text-align: center;
        background-color: var(--white);
        color: var(--gray);
    }

    .screen-too-small h2 {
        color: var(--royal-blue);
        border-bottom: 2px solid var(--royal-gold);
        padding-bottom: 8px;
        margin-bottom: 20px;
        font-family: 'Georgia', serif;
    }

    .list {
        padding-left: 20px;
        list-style-type: none;
    }
    
    .list li {
        text-align: left;
        position: relative;
        margin-bottom: 12px;
        padding-left: 25px;
        color: var(--gray);
    }
    
    .list li::before {
        content: "•";
        color: var(--royal-gold);
        font-weight: bold;
        position: absolute;
        left: 0;
        font-size: 1.2rem;
        line-height: 1.4;
    }
}

@media (min-width: 360px) {

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

    body {
        font-family:'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
        line-height: 1.5;
        color: var(--gray);
        background-color: var(--white);
    }

    .wrapper {
        display: flex;
        flex-direction: column;
        min-height: 100vh;
    }

    nav {
        background-color: var(--royal-blue);
        color: var(--white);
        padding: 1rem 5%;
        display: flex;
        justify-content: space-between;
        align-items: center;
        position: sticky;
        position: -webkit-sticky;
        top: 0;
        z-index: 1000;
        box-shadow: 0 2px 10px rgba(0,0,0,0.15);
    }

    .nav-logo {
        font-size: 1.4rem;
        font-weight: bold;
        letter-spacing: 1px;
    }

    .nav-logo a {
        color: inherit;
        text-decoration: none;
        transition: color 0.3s ease;
        width: 100%;
    }

    .nav-logo a:hover {
        color: var(--royal-gold);
        transition: color 0.3s ease;
    }

    .nav-links {
        list-style: none;
        @media (min-width: 600px) {
            display: flex;
        }
        @media (max-width: 599px) {
            display: none;
        }
    }

    .nav-links li {
        margin-left: 25px;
    }

    .nav-links a {
        color: var(--white);
        text-decoration: none;
        font-size: 0.95rem;
        transition: color 0.3s ease;
    }

    .nav-links a:hover {
        color: var(--royal-gold);
    }

    .banner {
        height: 300px;
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
        color: var(--white);
        text-align: center;
        overflow: hidden;
    }
    
    .banner-img {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
        z-index: 1;
    }
    
    .banner-text {
        position: relative;
        z-index: 2;
    }

    .banner-text h1 {
        font-size: 3.5rem;
        margin-top: 0px;
        margin-bottom: 10px;
        font-family: 'Georgia', serif;
        padding: 0 20px;
    }

    .banner-text p {
        font-size: 1.2rem;
        opacity: 0.9;
        padding: 0 20px;
    }

    .container {
        max-width: 900px;
        margin: 40px auto 0;
        padding: 0 20px;
    }

    figure {
        width: 100%;
        text-align: center;
    }

    .general-image {
        width: 100%;
        max-width: 500px;
        height: auto;
        display: block;
        margin: auto;
        border: 1px solid var(--royal-blue);
        box-sizing: border-box;
    }

    caption {
        margin-bottom: 10px;
    }
    
    table {
        width: 100%;
        table-layout: fixed;
        border-collapse: collapse;
        margin-bottom: 50px;
        background-color: var(--white);
        border: 1px solid var(--light-gray);
        overflow: hidden;
    }

    table th {
        background-color: var(--royal-blue);
        color: var(--white);
        text-align: left;
        font-weight: 600;
        text-transform: uppercase;
        font-size: 0.85rem;
        letter-spacing: 0.5px;
    }

    table th, table td {
        padding: 15px;
        word-wrap: nowrap;
        overflow: hidden;
    }

    table td {
        border-bottom: 1px solid var(--light-gray);
        vertical-align: middle;
    }

    table tr:hover {
        background-color: var(--hover-light-gray);
        transition: color 0.3s ease;
    }

    .sni-table th:nth-child(1), .sni-table td:nth-child(1) {
        width: 50%;
        white-space: nowrap;
        text-overflow: ellipsis;
    }

    .sni-table th:nth-child(2), .sni-table td:nth-child(2) {
        width: 30%;
        white-space: nowrap;
        text-overflow: ellipsis;
        text-align: center;
    }

    .sni-table th:nth-child(3), .sni-table td:nth-child(3) {
        width: 20%;
        text-align: center;
    }

    @media (max-width: 599px) {
        .sni-table th:nth-child(1), .sni-table td:nth-child(1) {
            display: none;
        }

        .sni-table th:nth-child(2), .sni-table td:nth-child(2) {
            width: 57.5%;
        }

        .sni-table th:nth-child(3), .sni-table td:nth-child(3) {
            width: 42.5%;
        }
    }

    .general-table {
        width: 100% !important;
        table-layout: fixed;
        border-collapse: collapse;
        box-sizing: border-box;
    }

    .general-table th, .general-table td {
        text-align: center;
    }

    .heavy-table td, .heavy-table th {
        word-wrap: break-word;
        overflow-wrap: break-word;
        word-break: break-word;
        hyphens: auto;
    }

    .download-button {
        color: var(--royal-gold);
        text-decoration: none;
        transition: color 0.3s ease;
        font-weight: bold;
        font-size: 0.9rem;
    }

    .download-button:hover {
        color: var(--darker-royal-gold);
        text-decoration: underline;
        transition: color 0.3s ease;
    }

    .email-protected {
        unicode-bidi: bidi-override;
        direction: rtl;
        text-align: left;
        display: inline-block;
    }

    section {
        margin-bottom: 50px;
    }

    h2 {
        color: var(--royal-blue);
        border-bottom: 2px solid var(--royal-gold);
        padding-bottom: 8px;
        margin-bottom: 20px;
        font-family: 'Georgia', serif;
    }

    h3 {
        color: var(--royal-blue);
        margin-top: 15px;
        margin-bottom: 5px;
        font-family: 'Georgia', serif;
    }

    .card {
        background: var(--white);
        padding: 25px;
        border: 1px solid var(--light-gray);
        border-radius: 4px;
        margin-bottom: 20px;
    }

    .card h3 {
        padding-bottom: 20px;
    }

    .pointer {
        color: var(--royal-gold);
        text-decoration: none;
    }

    code {
        background: var(--lighter-light-gray);
        padding: 2px 5px;
        border-radius: 3px;
        font-family: 'Courier New', Courier, monospace;
    }

    .list {
        margin: 20px 0;
        padding-left: 20px;
        list-style-type: none;
    }
    
    .list li {
        position: relative;
        margin-bottom: 12px;
        padding-left: 25px;
        color: var(--gray);
    }
    
    .list li::before {
        content: "•";
        color: var(--royal-gold);
        font-weight: bold;
        position: absolute;
        left: 0;
        font-size: 1.2rem;
        line-height: 1.4;
    }
    
    strong {
        color: var(--royal-blue);
    }



    .spacer-div {
        flex-grow: 1;
    }

    footer {
        background-color: var(--lighter-light-gray);
        color: var(--darker-light-gray);
        text-align: center;
        padding: 30px 10px;
        border-top: 1px solid var(--light-gray);
        font-size: 0.85rem;
    }

    .footer-links {
        margin-top: 10px;
    }

    .footer-links a {
        color: var(--darker-light-gray);
        margin: 0 10px;
        text-decoration: none;
    }

    .footer-links a:hover {
        text-decoration: underline;
    }

    .download-manager-container {
        background-color: var(--hover-light-gray);
        display: none;
        flex-direction: column;
        align-items: center;
        width: 100%;
        padding: 25px;
        border: 1px solid var(--light-gray);
        border-radius: 4px;
        margin-bottom: 20px;
    }

    .download-error-msg {
        color: var(--red);
        display: none;
        margin-top: 20px;
        font-weight: bold;
    }

    progress {
        width: 100%;
        height: 20px;
        accent-color: var(--royal-gold);
        margin-top: 15px;
        margin-bottom: 10px;
    }

    .image-container {
        height: 500px;
        width: auto;
        display: block;
        margin-left: auto;
        margin-right: auto;
    }

}