/* VERSION 2.0 2025-10-31 FRIDAY */

/* ************************************ */
/* GLOBAL VARIABLES (custom properties)	*/
/* ************************************ */

:root {

	/* COLOUR VARIABLES */
	--clr-1: #0d94ff;
	--clr-1-shd: #021320;
	--clr-1-tnt: #e4f3ff;
	--clr-2: #ff7d0d;
	--clr-3: #ff00ff;
	--clr-4: #a6ff0d;
	

	/* TYPOGRAPHY VARIABLES */
	/* font-size variables */
	--fs-100: 1rem;
	--fs-200: 1.25rem; 
	--fs-300: 1.5rem;
	--fs-400: 2rem;
	--fs-500: 2.5rem;
	--fs-600: 3.25rem;
	--fs-700: 4rem;
	--fs-800: 5rem;

	--fs-rspv-1: clamp(2rem, 8vw, 4rem);
	--fs-rspv-2: clamp(1.5rem, 6vw, 2.5rem);

	/* font-family variables */
	--ff-logo: kallisto, sans-serif;
	--ff-heading: interstate, sans-serif;
	--ff-body: skolar-latin, serif;
}

/* ************************************ */
/* CSS RESET AND INITIAL SETUP			*/
/* ************************************ */

/* https://piccalil.li/blog/a-modern-css-reset/ */

/* Remove user agent defaults */
html, body, header, nav, main, footer,
section, article, div, span,
h1, h2, h3, h4, h5, h6,
p, blockquote, a,
figure, figcaption,
img, picture {
	font-size: 100%;
	font-weight: 400;
	font: inherit;
	padding: 0;
	margin: 0;
	border: 0;
	vertical-align: baseline;
}

/* Box sizing rules */
*,
*::before,
*::after {
	box-sizing: border-box;
}

/* Prevent font size inflation */
html {
	-moz-text-size-adjust: none;
	-webkit-text-size-adjust: none;
	text-size-adjust: none;
}

/* Initial body setup */
body {
	background-color: var(--clr-1-shd);
	color: var(--clr-1-tnt);
	font-size: var(--fs-200);
	line-height: 1.45;
	font-family: var(--ff-body);
	margin: 0 auto;
	width: 95%;
	max-width: 1280px;
	min-height: 100vh;	
}

/* Make images easier to work with */
img,
picture {
    max-width: 100%;
    display: block;
	object-fit: contain;
}

/* Inherit fonts for inputs and buttons */
input,
button,
textarea,
select {
    font: inherit;
}

/* Remove animations for people who've turned them off */
@media (prefers-reduced-motion: reduce) {  
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ************************************ */
/* COLOUR UTILITY CLASSES				*/
/* ************************************ */

.bg-clr-1 { background-color: var(--clr-1); }
.bg-clr-1-shd { background-color: var(--clr-1-shd); }
.bg-clr-1-tnt { background-color: var(--clr-1-tnt); }
.bg-clr-2 { background-color: var(--clr-2); }
.bg-clr-3 { background-color: var(--clr-3); }
.bg-clr-4 { background-color: var(--clr-4); }


.clr-1 { color: var(--clr-1); }
.clr-1-shd { color: var(--clr-1-shd); }
.clr-1-tnt { color: var(--clr-1-tnt); }
.clr-2 { color: var(--clr-2); }
.clr-3 { color: var(--clr-3); }
.clr-4 { color: var(--clr-4); }

/* ************************************ */
/* TYPOGRAPHY UTILITY CLASSES			*/
/* ************************************ */
.ital { font-style: italic; }

.fs-100 { font-size: var(--fs-100); }
.fs-200 { font-size: var(--fs-200); }
.fs-300 { font-size: var(--fs-300); }
.fs-400 { font-size: var(--fs-400); }
.fs-500 { font-size: var(--fs-500); }
.fs-600 { font-size: var(--fs-600); }
.fs-700 { font-size: var(--fs-700); }
.fs-800 { font-size: var(--fs-800); }


.fs-rspv-1 { font-size: var(--fs-rspv-1); }
.fs-rspv-2 { font-size: var(--fs-rspv-2); }

.lh-1 { line-height: 1.2;}
.lh-2 { line-height: 1.33;}
.lh-3 { line-height: 1.5;} /* body text min. per WCAG 2.2 SC 1.4.8 */

.ff-logo { font-family: var(--ff-logo); }
.ff-heading { font-family: var(--ff-heading); } 
.ff-body { font-family: var(--ff-body); } 

.ls-1 { letter-spacing: 0.05em;}
.ls-2 { letter-spacing: 0.08em;}
.ls-3 { letter-spacing: 0.12em;}

.uc-1 {
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.uc-2 {
	text-transform: uppercase;
	letter-spacing: 0.08em;
}

.uc-3 {
	text-transform: uppercase;
	letter-spacing: 0.12em;
}

.body-txt {
	padding-left: 1rem;
	margin-top: 1rem;
	max-width: 65ch;
}

/* ************************************ */
/* LAYOUT UTILITY CLASSES				*/
/* ************************************ */

.flex {
	display: flex;
	column-gap: 1.5rem;
}

.grid {
	display: grid;
}

.wrap { flex-wrap: wrap;}

.grow { flex: 1; }

.jstfy-right { justify-content: right; }

.align-btm { align-items: end; }

.txt-ctr { text-align: center; }
.txt-right { text-align: right; }

.pad-blk { 	padding-block: 0.5rem; }

.brdr-top { border-top: 3px solid var(--clr-1-tnt); }
.brdr-btm {	border-bottom: 3px solid var(--clr-1-tnt); } 

.mrgn-btm-05 { margin-bottom: 0.5rem; }
.mrgn-btm-1 { margin-bottom: 1rem; }
.mrgn-btm-15 { margin-bottom: 1.5rem; }
.mrgn-btm-2 { margin-bottom: 2rem; }
.mrgn-btm-25 { margin-bottom: 2.5rem; }

.container {
	margin: 0 auto 5rem;
}

.flow {
	margin-bottom: 0.5em;
}

/* ************************************ */
/* ACCESSIBILITY UTILITY CLASSES		*/
/* ************************************ */
/* Hide content intended for screen reader only */
.sr-only {
  position: absolute; 
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px; 
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap; /* added line */
  border: 0;
}

/* ************************************ */
/* LINK STYLING							*/
/* ************************************ */
a {
	color: var(--clr-1);
}

header a, nav a {
	color: var(--clr-1-tnt);
	text-decoration: none;
}

header a:link, nav a:link {
	color: var(--clr-1-tnt);
}

header a:visited, nav a:visited {
	color: var(--clr-1-tnt);
}

a:focus, header a:focus, nav a:focus {
	outline-color: var(--clr-4);
}

a:hover, header a:hover, nav a:hover {
	color: var(--clr-4);
}

a:active, header a:active, nav a:active {
	color: var(--clr-4);
}
/* ************************************ */
/* TOP BAR LAYOUT						*/
/* ************************************ */

nav a {
	font-size: var(--fs-200);
	letter-spacing: 0.05em;
}

/* ************************************ */
/* MAIN LAYOUT							*/
/* ************************************ */
.home-page {
	flex-direction: column;
	align-items: center;
}

.photo-page {
	grid-template-columns: 1fr;
	justify-items: center;
}

blockquote {
	text-align: center;
}

.photo-overlay {
	position: relative;
}

.photo-overlay a {
	color: var(--clr-1-tnt);
}

.overlay {
	opacity: 0;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	transition: opacity 0.5s ease-in-out;
}

.photo-overlay:hover .overlay {
	opacity: 1;
}

/* ************************************ */
/* FOOTER LAYOUT						*/
/* ************************************ */
footer {
	grid-template-columns: 1fr;
}

@media screen and (min-width: 560px) {
	footer {
		grid-template-columns: auto 1fr 1fr;
		column-gap: 1rem;
	}

	footer div {
		text-align: right;
	}

	footer.txt-ctr {
		text-align: unset;
	}

	address.pad-blk {
		padding-block: unset;
	}
}
	






.colours.grid {
	justify-items: center;
}

@media screen and (min-width: 560px) {
	.colours.grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media screen and (min-width: 720px) {
	.colours.grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

.card {
	margin-bottom: 2.5rem;
	flex: 1;
 }

.clr-box {
	border: 2px solid var(--clr-1-tnt);
	width: 14rem;
	aspect-ratio: 2/1;
	text-align: center;
	place-content: center;
}
