/* LOTUS */

/* Color Scheme - Light green: #83bf46, Emerald: #379565, Dark gray: #545454, Bright purple: #8e44ad */

@import url(https://fonts.googleapis.com/css2?family=Mulish:wght@400;700&display=swap);
@import url(https://fonts.googleapis.com/css?family=Leckerli+One&display=swap);

/* Normalize/CSS Reset */

/* Box sizing rules */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
	line-height: 1.15;
  	-moz-text-size-adjust: none;
  	-webkit-text-size-adjust: none;
  	text-size-adjust: none;	
}

/* Remove default margin in favour of better control in authored CSS */
body, h1, h2, h3, h4, p, figure, blockquote, dl, dd {
  	margin-block-end: 0;
}

/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
ul[role='list'],
ol[role='list'] {
  	list-style: none;
}

/* Set core body defaults */
body {
	line-height: 1.5;	
	margin:0;
  	min-height: 100vh;
}

/* Set shorter line heights on headings and interactive elements */
h1, h2, h3, h4,
button, input, label {
  	line-height: 1.1;
}

/* Balance text wrapping on headings */
h1, h2,
h3, h4 {
  	text-wrap: balance;
}

main {
	display: block;
	margin: 2% 0;
}

b, strong { 
	font-weight: bolder;
}

/* A elements that don't have a class get default styles */
a:not([class]) {
	color: currentColor;
  	text-decoration-skip-ink: auto;
}

a { background-color: transparent; }

/* Make images easier to work with */
img,
picture {
  	max-width: 100%;
  	display: block;
}

img {
	border: 0;
	border-style: none;
}

small {
	font-size: 80%;
}

/* Inherit fonts for inputs and buttons */
input, button,
textarea, select {
  	font-family: inherit;
  	font-size: inherit;
	line-height: 1.15;
	margin: 0;
}

button, input { overflow: visible;}

button, select { text-transform: none; }

button, [type="button"], [type="reset"], [type="submit"] {
    -webkit-appearance: button;
    cursor: pointer;
}

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
	border-style: none;
  	padding: 0;
}

input { line-height: normal}

[type="checkbox"],
[type="radio"] {
  	box-sizing: border-box; 
  	padding: 0; 
}

input[type="search"] {
    -webkit-appearance: textfield;
    box-sizing: content-box
}

input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
    -webkit-appearance: none
}

details, summary {display: block}

summary {
	display: list-item;
}

/* Make sure textareas without a rows attribute are not tiny */
textarea:not([rows]) {
  	min-height: 10em;
}

textarea {overflow: auto;}


/* Lotus framework/overall styles */

body {
    background-color: #f0f0f0;
    color: #545454;
	font-family: 'Mulish', sans-serif;
    font-size: 1rem;
}

h1 {
	font-size: 2em;
	margin: 0.67em;	
}

h1, h2, h3, h4, h5, h6 {
    line-height: 1.5em;
    margin: 0 0 0.5em
}

h1 {font-size: 2.5em;}

h2 {font-size: 2em;}

h3 {font-size: 1.5em}

h4 {font-size: 1.25em}

h5 {font-size: 1em}

h6 {
    font-size: 0.75em;
    text-transform: uppercase
}

.btn {
	background-color: #83bf46;
	background-image: none;
	border: 0;
	border-radius: 0.25em;
	display: inline-block;
	padding: 0.5em 1.5em;
	margin: 0.5em 1em 1em 0;
	outline: 0;
	text-align: center;
	color: #545454;
	font-size: 1.2em;
	font-weight: 700;
}

.btn:hover {
	background-color: #545454;
	color: #83bf46;
}

.btn-sm {padding: 0.25em 0.75em}

.btn-lg {padding: 1em 3em}

p {margin: 0 0 1em}

ol ol li {list-style-type: lower-alpha}

ol ol ol li {list-style-type: lower-roman}

b, strong {font-weight: 700}

small {
    font-size: .8em;
    line-height: 1.2em
}

sub, sup {
    font-size: .6em;
    line-height: 0;
    position: relative;
    vertical-align: baseline
}

sup {top: -.5em}

.row {margin-left: -1.25em}

.col, .col-sm, .col-lg {
    background-clip: content-box;
    box-sizing: border-box;
    display: inline-block;
    margin-right: -.25em;
    min-height: 1px;
    padding-left: 1.25em;
    position: relative;
    vertical-align: top
}

.no-gutter {padding-left: .25em}

.c12 {width: 100%}

.c11 {width: 91.66%}

.c10 {width: 83.33%}

.c9 {width: 75%}

.c8 {width: 66.66%}

.c7 {width: 58.33%}

.c6 {width: 50%}

.c5 {width: 41.66%}

.c4 {width: 33.33%}

.c3 {width: 25%}

.c2 {width: 16.66%}

.c1 {width: 8.33%}
	
	@media (max-width:54em) { /* 864px */
		.c4 {
			width: 50%;
			margin-bottom: 1.25em
		}
	}
	
	@media (max-width:45em) { /* 720px */
		.c4 {
			width: 100%;
			margin-bottom: 1.25em
		}
	}

.sp-sm {
    padding: 1em
}

.sp-vert-sm {
    padding-bottom: 1em;
    padding-top: 1em
}

.sp-horiz-sm {
    padding-left: 1em;
    padding-right: 1em
}

.sp-md {
    padding: 2em
}

.sp-vert-md {
    padding-bottom: 2em;
    padding-top: 2em
}

.sp-horiz-md {
    padding-left: 2em;
    padding-right: 2em
}

.sp-lg {
    padding: 3em
}

.sp-vert-lg {
    padding-bottom: 3em;
    padding-top: 3em
}

.sp-horiz-lg {
    padding-left: 3em;
    padding-right: 3em
}

	@media (max-width:30em) { /* 480px */
		.col {
			width: 100%;
			margin-bottom: 1.25em
		}
	
		.sp-sm {
			padding: .5em
		}
		.sp-vert-sm {
			padding-bottom: .5em;
			padding-top: .5em
		}
		.sp-horiz-sm {
			padding-left: .5em;
			padding-right: .5em
		}
		.sp-md {
			padding: 1em
		}
		.sp-vert-md {
			padding-bottom: 1em;
			padding-top: 1em
		}
		.sp-horiz-md {
			padding-left: 1em;
			padding-right: 1em
		}
		.sp-lg {
			padding: 1.5em
		}
		.sp-vert-lg {
			padding-bottom: 1.5em;
			padding-top: 1.5em
		}
		.sp-horiz-lg {
			padding-left: 1.5em;
			padding-right: 1.5em
		}
	}

.fl-right {float: right;}

.clearfix:before {
    content: " ";
    display: table
}

.clearfix:after {clear: both;}

.nowrap {white-space: nowrap;}

.hide {display: none!important;}

/* Custom styles */

.visually-hidden {
	position:absolute;
	left:-10000px;
	top:auto;
	width:1px;
	height:1px;
	overflow:hidden;
}

/* Header and Navigation */

header {
	background-color:#83bf46;
}

.header-name {
	font-family: 'Leckerli One', cursive;
	font-size: 3.4em;
	margin: 2% 0;
	text-shadow: 2px 2px 2px #000;
}

.header-name a {
	text-decoration: none;	
	color: #fff;
}

.header-name a:focus {
	outline: 3px solid #fff;
}

	@media (max-width:54em) { /* 864px */
		
		.header-name {font-size:3.2em;}
		
	}
	
	@media (max-width:30em) { /* 480px */
		
		.header-name {
			margin: 0;
			text-align: center;
		}
	
	}
	
	@media (max-width:20em) { /* 320px */
		
		.header-name {font-size:2.8em;	}
			
	}

nav {
	display: flex;
	flex-direction: row;
	justify-content: flex-end;
	margin: 2% 0;
}

nav ul {
	list-style-type: none;
	font-size: 1.6em;
}

nav ul li { display:inline;}

nav ul li a {
	padding: 3px 6px; 
	color: #545454;
	text-decoration: none;
	font-weight: bold;
}

nav ul li a:hover {
	text-decoration: underline;
	text-decoration-thickness: 3px;
}

	@media (max-width:52em) { /* 832px */
		nav {
			margin: 0;
			width: 100%;
		}
		
		nav ul li {
			display:block;
			line-height:1.5;
		}
		
		nav ul li a {
			padding: 0;
		}
	
	}
	
	@media (max-width:30em) { /* 480px */
	
		nav {
			justify-content: center;
		}
		
		nav ul {margin:0;}
		
		nav ul li {
			padding: 0 0 5% 0;
		}
	
	}
	
	
	

/* Main section */

main {
	font-size: 1.2rem;	
}

main h1 {
	font-family: 'Mulish', sans-serif;
	color: #8e44ad;
}

main a {
	color: #379565;
	font-weight: bold;
	text-decoration: underline;
}

main a:hover { text-decoration: none;}

main a:visited {
	color: #545454;
	font-weight: bold;
	text-decoration:underline;
}

main a:focus {
	outline: 3px solid #379565;
	outline-offset: 2px;
}

/* Home: About Me Section */

.intro { font-size: 1.75em; }

.intro p a {
  	text-decoration-thickness: 5px;
  	text-underline-offset: 3px;
}

	
	@media (max-width:40em) { /* 640px */
		
		.intro {font-size: 1.6em;}
	
	}
	
	@media (max-width:20em) { /* 320px */
			
		div#about p { line-height: 1.3em;}
		
	}

/* Home: Portfolio Samples */

.portfolioHome {
	margin-left: -1.25%;
}

.preview {
	max-width: 100%;
	padding: 0; 
	border: 0; 
	box-shadow: 3px 3px 3px #545454;
}

.previewInfo {
	font-weight: bold;
	font-size: 1.25em;
	padding: 2% 0;
	text-wrap: balance;
}

	@supports (grid-row-gap:0) {
	
		.portfolioHome {
			display: grid;
			grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
			grid-gap: 2em;
			margin-left: 0;
		}
		
		.c4 {
			width: auto;
			padding-left: 0;
			margin: 0;
		}		
	
		.preview {
			object-fit: cover;
			width: 100%;
		}
		
		.previewInfo a {
			text-decoration-thickness: 2px;
			text-underline-offset: 3px;	
		}
		
		@media (max-width:30em) { /* 480 */
		
			.portfolioHome {
				 grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
			}
			
		}
	 
	}

/* About and Contact Pages */

.aboutMe img { 
	border: 1px solid #000;
	float: right;
	height: auto;
	margin: 0 0 2% 2%;
	max-width: 100%;
}

	@media (max-width:75em) { /* 1200px */
		
		.aboutMe img {
			float: none;
			margin: 2% 0; 
		}

	}	

	@supports (clip-path: circle()) {
		
		.shape {
			clip-path: circle(45%);
			shape-outside: circle(50%);
			transform: translate(-10%);	
		}
		
		/* 1200px */
		@media (max-width:75em) { 
		
			.shape {
				margin-left: 3% !important;
			}
		
		}	
		
	}
	


.aboutMe h2, .aboutMe h3, .contactMe h2, .contactMe h3 {
	color: #8e44ad;
}

.aboutMe a {
	text-decoration-thickness: 2px;
	text-underline-offset: 2.5px;	
}

.knowledge {
  	padding-left: 1.25em;
}

aside.knowledge ul {
	list-style-type: none;
	padding-left: 0;	
}


	@media (max-width:54em) { /* 864px */
		
		.contactMe, .aboutMe {
			width: 100%; 
		}
			
		.knowledge {
			width: 100%; 
			margin: 0;
		}
	
		.social p {padding-bottom:5px;}
		
	}
	
	@media (max-width:34.38em) { /* 550px */
	
		.floatPic { 
			float: none;
			margin: 0 0 2% 0;
		}
	 
	}


/* Portfolio individual pages */

.portfolio {
	margin-bottom: 2%;
	display: flex;
	justify-content: center;
}

.descrip {
	margin: 0 auto;
	width: 80ch;	
}

	/*
	@media (max-width:68em) {
		.descrip {
  			width: 70ch;
	}
	*/


.descrip h2 {color: #8e44ad;}

.links {
	margin: 0 auto;
	/* width: 90ch; */
	display: flex;
	justify-content: center;	
	font-size: 1.2em;
}

.links p a {
  	text-decoration-thickness: 2px;
}

.portfolio img {	
	border: 1px solid #000;
	height: auto;
	max-width: 100%;
}

.print { border: 1px solid #000;}

	@media (max-width:54em) { /* 864px */
		
		.portfolio {
			width: 100%;
			margin-bottom: 2%;
		}
		
		.descrip {
			width: auto; 
			margin-left: 0;
		}
		
		.button {
			margin:0 3% 1% 0;
			padding: 2%;
		}
	}
		
	@media (max-width:41em) { /* 656px */
			
		.descrip {
			width: 100%;	
		}
		
	}
			

/* Footer styling */

footer {
	background-color: #83bf46;
	color: #545454;
	font-size: 1.3em;
}

.footer-info {
	display: flex;
	justify-content: center;
	margin: 1.5% auto;
}

.footer-info a {
	color: #545454;
	text-decoration-thickness: 1.5px;
}

.footer-info a:hover {
	text-decoration: none;	
}

.footer-info a:focus {
	outline: 3px solid #545454;
	outline-offset: 1px;
}

	@media (max-width:30em) { /* 480px */
		
		.footer-info {
			margin: 5% 0 0 0;
		}
	}


@media print {
	
	header, footer {display: none;}
	
	.previewHome { 
		max-width:100%; 
		padding: 0; 
		border: 0;
	} 
	
	.previewHomeInfo {padding: 0 0 5px 5px; }
	
	#about p a[href^="http://"]:after {
		content: " (" attr(href) ")";
		font-size: 90%;
	}
	
	#about p a[href^="#"]:after { display: none;}
	#contact p a[href^="#"]:after { display: none;}
	 
	.aboutMe, .contactMe {
		width: 100%; 
		margin: 0;
		border: 0;
	}
	
	.knowledge, .social {
		width: 100%; 
		margin:0;
		border: 0;
	}
	
	.social a[href^="http://"]:after {
		content: " (" attr(href) ")";
		font-size: 90%;
	}
	
	.preview {
		max-width: 100%;
		padding: 0; 
		border: 0; 
	}
	
	article.portfolio {
		width: 100%; 
		margin: 0;
		border: 0;
	}
	
	article.portfolio img {	max-width: 100%;}
	
	.descrip {
		width: 100%; 
		margin:0;
		border: 0;
	}
	
	.descrip h3 {padding: 0;}
	
	.descrip p {padding: 0 5px 5px 0;}
	
	.descrip a {
		text-decoration: underline;
		color: #000;
		word-wrap:break-word;
	}
	
	.tools {color: #000;font-weight:bold;}
	
	.button {display:none;}	

}