/* ============= 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(19px + (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 } } @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 } } /* All buttons */ .btn { font-family: sans-serif; text-decoration: none; padding: 14px 26px; font-size: 18px; font-weight: bold; } /* 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 } } @media (max-width: 767px) { .container-form { flex-direction: column } .container-form input { margin-bottom: 24px; width: 100%; } } .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.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 }