/*  ============= WEB BROWSER RESETS ============ */
* { margin: 0; padding: 0; border: none }
*, *::before, *::after { box-sizing: border-box }
html { height: 100%; font-size: 100%; font: inherit; vertical-align: baseline;
scroll-behavior: smooth; scroll-padding-top: 20px }
body { max-width: 1920px; line-height: 1.5; margin-left: auto; margin-right: auto; 
min-height: 100vh; text-rendering: optimizeSpeed }  
img { width: 100%; height: auto; display: block }
h1, h2, h3, h4 { width: 100% }
input, button, textarea, select { font: inherit }

/* ================= ENDS ================ */


/* ============== HEADERS AND SECTIONS ============ */

/* Default header and widths */
header, section { width: 100% }

/* Last element at bottom of header or section */
header *:last-child, section *:last-child { margin-bottom: 0 }

/* =================== HEADER ================ */

/* Regular and larger screens */
@media (min-width: 1200px) { 
	header { 
		margin-left: auto;
		margin-right: auto;
		padding: 1% 0 3% 0; 
		padding-left: calc( (100% - 1140px)/2 );
		padding-right: calc( (100% - 1140px)/2 );
	}
    .header-narrow {
		padding-left: calc( (100% - 920px)/2 );
		padding-right: calc( (100% - 920px)/2 );
	}
}

/* Tablets and smaller desktops */
@media (min-width: 1025px) and (max-width: 1199px ) { 
	header { padding: 3% 10% 4% 10% }
}

/* Tablets */
@media (min-width: 768px) and (max-width: 1024px) { 
	header { padding: 4% 5% 4% 5% }
}

/* Larger mobiles */
@media (min-width: 400px) and (max-width: 767px)  { 
	header { padding: 7% 13% 8% 13% }
}

/* Smaller mobiles */
@media (max-width: 399px) { 
	header { padding: 7% 10% 8% 10% } 
}

/* Image in header */
header img {
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 24px;
}

/* Main heading in header */
header h1 {
	font-family: 'Fira Sans', sans-serif;
    font-size: calc(48px + (84 - 48) * ((100vw - 320px) / (1140 - 320)));
    color: #1435b3;
    letter-spacing: 1px;
    margin-bottom: 20px;
	font-weight: 500;
}

/* Sub-heading in header */
header h2 {
	font-family: 'Fira Sans', sans-serif;
    font-size: calc(18px + (22 - 18) * ((100vw - 320px) / (1140 - 320)));
    color: #2F4F4F;
    line-height: 1.6;
	font-weight: 500;
}

/* ======================= SECTIONS ======================== */

/* Regular and larger screens */
@media (min-width: 1200px) { 
	section { 
		margin-left: auto;
		margin-right: auto;
		padding: 3.5% 0 4% 0; 
		padding-left: calc( (100% - 1140px)/2 );
		padding-right: calc( (100% - 1140px)/2 );
	}
    .section-narrow {
		padding-left: calc( (100% - 920px)/2 );
		padding-right: calc( (100% - 920px)/2 );
	}
}

/* Tablets and smaller desktops */
@media (min-width: 1025px) and (max-width: 1199px ) { 
	section { padding: 3% 10% 4% 10% }
}

/* Tablets */
@media (min-width: 768px) and (max-width: 1024px) { 
	section { padding: 4% 5% 4% 5% }
}

/* Larger mobiles */
@media (min-width: 400px) and (max-width: 767px)  { 
	section { padding: 7% 13% 8% 13% }
}

/* Smaller mobiles */
@media (max-width: 399px) { 
	section { padding: 7% 10% 8% 10% } 
}

/* Sections: main heading */
section h1 {
	font-family: 'Fira Sans', sans-serif;
    font-size: calc(32px + (48 - 32) * ((100vw - 320px) / (1140 - 320)));
    letter-spacing: 1px;
    color: #1435b3;
    margin-bottom: 12px;
    line-height: 1.2;
	font-weight: 500;
}

/* Sections: text paragraphs */
section p {
	font-family: 'Arvo', serif;
    font-size: calc(17px + (21 - 17) * ((100vw - 320px) / (1140 - 320)));
    color: #2F4F4F;
    margin-bottom: 20px;
    line-height: 1.7;
}

/* Coloured backgrounds */
.bg-header { background-color: #f5f9fb }
.bg-blue-light { background-color: #d8f0f5 }

/* Default gradient direction: top to bottom */ 
.bg-blue-dark { background-image: linear-gradient(#0575e6, #1435b3) } 

/* Gradient direction: left to right */  
.bg-blue-dark { background-image: linear-gradient(90deg, #0575e6, #1435b3) } 

/* Light blue section background: h1 headings and p text paragraphs */
.bg-blue-light h1 { color: #1435b3 }
.bg-blue-light p  { color: #222 }

/* Dark blue section background: h1 headings and p text paragraphs */
.bg-blue-dark h1 { color: #fff }
.bg-blue-dark p  { color: #fff }


/* =============== BUTTONS AND ICONS ============== */
.container-btn {
    margin-top: 32px; margin-bottom: 32px;
    display: flex;
}

.container-btn .btn {
    align-self: flex-start;
} 

@media (min-width: 767px) {
    .container-btn a:first-child { margin-right: 40px }
    /* .container-btn { justify-content: center } */
}

@media (max-width: 767px) {
    .container-btn { flex-direction: column }
    .container-btn a:first-child { margin-bottom: 32px }
    .container-btn a:last-child { margin-bottom: 0 }
    /* .container-btn .btn { align-self: center } */
}

/* All buttons */
.btn {
    font-family: sans-serif; text-decoration: none;
    padding: 14px 26px; font-size: 18px; font-weight: bold;
    /* text-transform: uppercase; 
    letter-spacing: 1px;
    word-spacing: 102%; */
}

/* Solid buttons */
.btn-solid, .btn-solid:link, .btn-solid:visited {
    background-color: blue; 
    color: #fff;
} 
 
.btn-solid:focus, .btn-solid:hover, .btn-solid:active  {
    background-color: darkblue;
    color: #fff;
} 
 
/* Gradient buttons */
.btn-gradient, .btn-gradient:link, .btn-gradient:visited {
    background-image: linear-gradient(90deg,#e052a0,#f15c41);
    color: #fff;
} 
 
 .btn-gradient:focus, .btn-gradient:hover, .btn-gradient:active  {
    background-image: linear-gradient(to right,#3ec7e0,#526bf4);
    color: #fff;
} 
 
 /* Ghost buttons */
.btn-ghost, .btn-ghost:link, .btn-ghost:visited {
    border: solid 2px #000;
    color: #000;
    background-color: transparent; 
    padding: 12px 24px;
} 
 
 .btn-ghost:focus, .btn-ghost:hover, .btn-ghost:active  {
    border: solid 2px blue;
    color: blue;
    background-color: transparent; 
    padding: 12px 24px;
} 

/* Button corner styles */
.btn-soft    { border-radius: 5px }
.btn-rounded { border-radius: 30px }

/* Buttons with Font Awesome icons */
.btn i { margin-right: 10px; }


/* =============== FORMS ============== */
.container-form { 
    display: flex;
    margin-top: 32px; margin-bottom: 32px;
    align-items: stretch;
    padding: 20px; background-color: lightgray;  
}
    
@media (min-width: 767px) {
    .container-form input { margin-right: 32px; min-width: 320px }  
    /* .container-form { justify-content: space-around } */
}
    
@media (max-width: 767px) {
    .container-form { flex-direction: column }
    .container-form input { margin-bottom: 24px; width: 100%; }
    /* .container-form input, .container-form button { 
    display: block; text-align: center; margin-left: auto; margin-right: auto  } */    
}
    
.container-form .btn { padding: 6px 20px }
.container-form input { 
    padding: 6px 6px;
    border: solid 1px gray;
    font-size: 18px;
    font-family: sans-serif;
}


.container-form #form-status {
    background-color: #e4f5e8;
    border: solid 1px green;
    padding: 10px;
    line-height: 1;
    font-size: 18px;
    color: #000;
    display: none;
    font-family: sans-serif;
    margin-top: 12px;
    max-width: 320px;
 }

 
/* =============== UTILITY CLASSES ============== */
.text-center { text-align: center !important }
