*,
::after,
::before {
	box-sizing: border-box;
	scroll-padding-top: 4em;
} 

:root {
	--body-pad: 0;
	--body-bg: hsl(0, 0%, 90%);
	--sections-bg: hsl(100, 100%, 100%);
	--section-rad: 10px;
	
	--primary-clr-300: #a2be55;
	--primary-clr-700: #ab1e17;
	--txt-clr: hsl(0, 0%, 7%);
	--txt-size:1rem;
	
	
	
	--fields-bg: hsl(0, 0%, 93%); /* rgba(241, 255, 203, 1) */
	--fields-bdr: hsl(0, 0%, 87%) /* rgba(241, 255, 203, 1) */;
	--fields-bg-focus: hsl(0, 0%, 80%);
	--fields-clr:#000;
	
	--link-clr: #ab1e17;
	--link-clr-hover:#f64848;
	
	--h2-clr: #677a33;


	--btn-txt: #FFF;
	--btn-bg:  #f64848;

	--btn-bdr: #a2be55;
	--btn-txt-hover:#FFF;
	--btn-bg-hover: #111;
	--btn-bdr-hover: #a2be55;
	 
	

/* 	--header-txt-color:hsl(0, 0%, 7%); */
	
	
	--header-rad: 40px var(--section-rad) var(--section-rad) 40px ;
	--logo-w:60px;
	
	--nav-bg-hvr: var(--body-bg);
	--nav-txt-clr:#000;
	--nav-txt-clr-hover:#000;
	--tech-txt-clr:hsl(0, 0%, 7%);
	--tech-txt-size:1.6em;
	--img-shadow-hover:hsla(0, 0%, 63%, 0.5);
	--gradient: radial-gradient(rgba(168, 204, 70, 1), rgba(103, 137, 8, 1));
	--breakpoint:40em;
	
	--main-w:100%;
	--section-margin: 0 0 1px 0;
	--section-padding: 1.4em 2em;
	--hamburger-clr:var(--primary-clr-700);
	--hamburger-display:block;
	--hamburger-speed: 100ms;
	
	
	--hero-bg: #afd054;
	--hero-bg-gradient: #677a33;
	--hero-txt-clr:#000;
	--hero-img-w:70%;
	--hyper-clr: #f64848;
	
	--footer-bg-img : url("/assets/images/bg-footer.jpg");
	--footer-bg: hsl(76, 57%, 54%);
--footer-txt: #000;

	--toggle-scale:scaleX(1);
	--margin-top:1px;
	--cal-bg: #FFF;
	
	--cards-bg: hsl(100, 100%, 100%);
	 --cards-bdr: #666;
	 --cards-txt: hsl(0, 0%, 20%);
	--cards-btn-bg: #777;

	--cards-btn-clr:#FFF;
	--cards-btn-bg-hover:#FFF;
	--cards-btn-clr-hover: var(--primary-clr-700);
	--cards-btn-bdr-hover: var(--primary-clr-700);
	
	
	 
}
.darkmode{
	--body-bg: hsl(0 0% 10%);
	--sections-bg: hsl(0 0% 20%);
	
	--cards-bg: hsl(0 0% 20%);

	--h2-clr: #FFF;
	--txt-clr: hsl(0, 0%, 93%);
	--link-clr: hsl(0, 0%, 93%);
	--fields-bg: #666; 
	--fields-clr:#FFF;
	--nav-bg-hvr:hsl(0, 0%, 30%);
	--nav-txt-clr:hsl(0, 0%, 93%);
	--nav-txt-clr-hover:hsl(0, 0%, 100%);
	--tech-txt-clr:hsl(0, 0%, 100%);
	--primary-clr-300: hsl(76, 57%, 54%);

	
	--toggle-scale:scaleX(-1);
	--cal-bg: #111;
	--hamburger-clr:var(--primary-clr-300);
	 --cards-txt: var(--txt-clr);
	--cards-bdr: #666;
}

html {
	scroll-behavior: smooth;
}
body {
	margin: 0;
	padding: var(--body-pad);
	color: var(--txt-clr);
	background: var(--body-bg);
	font-size: var(--txt-size);
	line-height: 1.5em;
/* 	animation: swap-thene 3s ease-in infinite;  */
}
.swap-theme{
	animation: swap-thene 500ms cubic-bezier(0, 0.55, 0.45, 1);
}
@keyframes swap-thene {
	0% {
		filter: blur(0);
	}
	50% {
		filter: blur(1.5rem);
	}
	100% {
		filter: blur(0);
	}
	
	
		
}
ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
:focus {
  	outline: 0;
}
p {
	padding: 0;
	margin: 0 0 1em;
}
a:not(.btn) {
  	text-decoration: none;
  	color: var(--link-clr);
  	position: relative;

}
a:not(.btn)::before {
	content: "";
	position: absolute;
	display: block;
	width: 100%;
	height: 2px;
	bottom: 1px;
	left: 0;
	background-color:  var(--link-clr-hover);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 300ms ease;
}
a:not(.btn):hover::before {
  	transform: scaleX(1);
}
a:hover{
/* 	color: var(--link-clr-hover); */
	
}


h2 {
	margin: 0 0 2rem;
	font-weight: 500;
	font-size: clamp(1.2rem,2.5vw,1.6em);
	color: var(--h2-clr);
	line-height: 1em;
}
h3 {
	font-weight: 500;
	font-size: 1.3rem;
	margin:0 0 1rem;
	
}
h3:last-of-type{
	
}
strong {
  	font-weight: 600;
}
img {
  	content-visibility: auto;
  	display: block;
}
/* for fields */

textarea:-moz-placeholder,
input:-moz-placeholder {
  	color: #b7b7b7;
}
::-webkit-input-placeholder {
  	color: #b7b7b7;
}
input,
textarea,
button:not(:is(.hamburger)) {
	-webkit-appearance: none;
	text-align: left;
	padding: 1em 1.5em;
	box-sizing: border-box;
	clear: both;
	margin-top: 0;
	transition: scale 300ms ease-in-out;
	color: var(--fields-clr,#000);
	width: 100%;
	background: var(--fields-bg);
	border: 1px solid var(--fields-bdr);
	border-radius: 0.4em;
}
textarea {
  	height: auto;
}
input:focus,
textarea:focus,
button:not(:is(.hamburger)):focus {
/*   	border-color: var(--link-clr); */
  	box-shadow: 0 0 0 2px var(--primary-clr-700);
  	scale: 1.02;
}
input:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 50px var(--fields-bg) inset;
  -webkit-text-fill-color: #333;
}
input:-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0 50px var(--primary-clr-300) inset;
  -webkit-text-fill-color: #333;
}

input[type="submit"] {
	width: auto;
	text-align: center;
	padding:1rem 2rem;
	cursor: pointer;
}
input[type="submit"]:hover {


}

.warning{
	padding: 20px;
	text-align: center;
	font-weight: bold;
	background: hsl(0, 0%, 100%)fe7;
}

/* buttons */
.btn{
  	padding: 0.5em 1em;
  	text-align: center;
  	border-radius: 5px;
  	transition: box-shadow 300ms ease;
  	background-color: var(--btn-bg);
  	color: var(--btn-txt);
  	border:none;
  	text-decoration: none;
  	transition: background 300ms ease-in;
}

.btn:hover{
  	background-color: var(--btn-bg-hover);
  	color: var(--btn-txt-hover);
  	text-decoration: none;
}
.btn:focus{
	outline: 1px solid #FFF;
  	outline-offset: 3px;
}
.btn--hero {
  	--btn-bdr-hover: #000;
  	background-color: var(--btn-bg);
  	color:#FFF;
  	margin-top: 20px;
  	display: inline-block;
  	animation: pulse-button 2s infinite;
}

/* layout */
.header,
main,
footer {
  	content-visibility: auto;
  	position: relative;
}
footer,
.inner {
  	border-radius: var(--section-rad);
  width: min(100% , 1100px);
  	margin-inline: auto;
}

/* header */
.header{
	position: sticky;
	z-index: 2;
	top: 0;
	padding: 0;
	}
.header__inner{
	background: var(--sections-bg);
	border-radius: 0;
	box-shadow: 0 0 0 8px var(--body-bg); 
/* 	border:1px solid var(--body-bg); */
	margin: 0 auto;
	padding: 0 1rem 0 .5rem;
}
.header__top{
	display: flex;	
	flex-wrap: wrap;
	align-items: flex-start;
	flex-direction: row;
	justify-content: space-between;
	position: relative;	
	}
.header__logo img{
	width: var(--logo-w);
	height:auto;
	transition: scale 300ms cubic-bezier(0, 0.55, 0.45, 1);
	border-radius: 50%;
	scale: 0.8;
/* 	scale:1.2; */
/* 	margin-left: 1rem; */
}
.header__logo img:hover{
/* 	scale:1.24; */
/* 	box-shadow: 0 0 5px 3px #CCC; */
}
/* nav */
nav{
	margin: 0 0 0 auto;
}
.hamburger {
	margin: .5em .5em 0 auto;
	display: var(--hamburger-display);
	fill: var(--hamburger-clr);
	cursor: pointer;
	background: transparent;
	border: none;
}
.hamburger:focus{
	fill:var(--primary-clr-300);
}
.hamburger .line {
  	transition: 
		y var(--hamburger-speed) ease-in var(--hamburger-speed), 
		rotate var(--hamburger-speed) ease-in, 
		opacity 0ms var(--hamburger-speed), 
		fill var(--hamburger-speed) ease-in;
  	transform-origin: center;
}
.hamburger[aria-expanded=true] .line {
	transition: 
		y var(--hamburger-speed) ease-in, 
		rotate var(--hamburger-speed) ease-in var(--hamburger-speed), 
		opacity 0ms var(--hamburger-speed);
}
.hamburger[aria-expanded=true] .line__bottom,
.hamburger[aria-expanded=true] .line__top {
  	y: 45px; 
}
.hamburger[aria-expanded=true] .line__top {
  	rotate: 45deg;
}
.hamburger[aria-expanded=true] .line__bottom {
  	rotate: -45deg;
}
.hamburger[aria-expanded=true] .line__middle {
  	opacity: 0;
}
.hamburger main {
  	padding: 4rem;
}

.menu {
	flex:1 1 100%;
	flex-basis: 100%;
	width: auto;
	list-style: none;
	text-decoration: none;
	height: 0;
	overflow: hidden;
	transition: height 300ms ease-in-out;
	display: flex;
	flex-direction: column;
	align-items: right;
	padding:0;
	margin:0 .8em 0 0;
	gap:.5em;
}
.menu li {
	text-align: right;
}
.menu a {
	color: var(--nav-txt-clr);
	line-height:1em;
	padding: 0.2rem .8rem;
	text-align: right;
	text-decoration: none;
	transition: background-color 300ms ease-in-out,color 300ms ease-in-out;
}
.menu a.btn{
	color:#FFF;
}
.menu li{
	padding: 0;
}
nu a::before{
	background-color:  transparent; /* quick fix to prevent default link hover underline effect*/
}
/*
.menu a:focus,
.menu a:hover {
	background-color: var(--nav-bg-hvr, hsl(0, 0%, 87%));
	color: var(--nav-txt-clr-hover);
 }
*/

.hamburger[aria-expanded=true] + .menu {
  	height: 10em; /* not convinced by this as it is a predefined height - this should be a calculation of all the menu items*/
}

/* footer */
footer {
	text-align: center;
	padding: 1em 2em;
	background-color: var(--footer-bg);
	background-image: var(--footer-bg-img); 
	background-repeat: no-repeat;
	background-size: cover;
	color: var(--footer-txt);
}
footer ul {
	display: flex;
	justify-content: center;
	gap: 1em;
}
footer a {
  	color: hsl(0, 0%, 100%);
}
footer a:hover {
  	text-decoration: underline;
	}

/* sections */
section{
	position: relative;
	isolation: isolate;
	margin-block: 3rem; 
	}
section .inner {
  	background: var(--sections-bg);
  	padding: var(--section-padding);
/*   	overflow: hidden; */
	
}
section img.scale{
	max-width:100%;x
	border-radius: 15px;
	margin:0 auto;
	height:auto;
	background-color: var(--cal-bg,#FFF);
}
section a.link-img{
	overflow: hidden;
	display: block;
}
section ul{
  	margin: 1rem 1.5em;
  	list-style: none;
}
section li{
	font-weight: 300;
}
section li::before {
  	content: "\2010";
  	color: #666;
  	font-weight: bold;
  	display: inline-block;
  	width: 1em;
  	margin-left: -1em;
}
/* section - hero */
section.hero{
	background: 
	linear-gradient(-45deg,  var(--hero-bg-gradient) 0%, var(--hero-bg) 50%);
/*  		linear-gradient(to top , var(--hero-bg-gradient), var(--hero-bg) 85%, var(--body-bg) 75%) ; */
		
	color: var(--hero-txt-clr);
	isolation: isolate;
	background-size: 150% 150%;
	animation: gradient 15s ease infinite;
	margin-top: 6rem;
	
}


@keyframes gradient {
	0% {
		background-position: 0% 50%;
	}
	50% {
		background-position: 100% 50%;
	}
	100% {
		background-position: 0% 50%;
	}
}
section .hero__inner{
	position: relative;
	background: transparent;
/* 	border-right: 1px solid #f64848; */
	border-radius:0;	
}
.hero__inner::after {
	content: "";
	position: absolute;
	inset:auto 0 0 auto;
	width: var(--hero-img-w);
	border-radius: var(--section-rad);
	height: 125%;
	background-color: transparent;
	background-position: center 0;
	background-repeat: no-repeat;
	background-image: url("/assets/images/me-2022.png");
	background-size: cover;	
	z-index: -1;
	
	animation: fade-in 1000ms ease-in 500ms forwards;
opacity: 0;
	filter: blur(8px);
	
}
@keyframes fade-in {
	to{
		opacity: 1;
		filter: blur(0);
	}
}
.hero__inner:hover::after {
/* 	transform: scale(1.05); */
}
.hero h1{
	font-weight: 400;
	font-size: clamp(1.1rem,2.5vw,2.0rem);
	line-height:  clamp(1.6rem,5vw,1.6em);
	color:var(--hero-txt-clr);
	margin: 0;
}
.hero .hyper {
  	font-family: 'Inconsolata', monospace;
  	font-size: clamp(2.4rem,5vw,16rem);
  	color: var(--hyper-clr);
  	font-weight: 700;
}
.hero__tagline{
	margin: 0 20vw 2rem 0;
	font-size: clamp(1.2rem,2.5vw,1.4em);
	color:var(--hero-txt-clr);
	line-height: 1em;
}
.about-me{
	margin: 0 25vw 2rem 0;
	font-size: clamp(1.0rem,3vw,1.2em);

}

@keyframes pulse{
	to{
		background-size: auto 120%;	
	}
}

section.sandbox .inner{
	background: linear-gradient(90deg, var(--cards-bg) 50%, #a2be55 50%);
	
}

/* cards */
.cards-container{
	display: grid;
	gap:2em;
/* 	grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); */
grid-template-columns: 1fr;
}
.card {
/* 	border:1px solid var(--cards-bdr); */
	background: var(--cards-bg);
	overflow: hidden;
	position: relative;
	border-radius: 10px;
	display: flex;
	flex-direction: column;
	gap: 2rem;
	box-shadow: 0 0 30px 0 rgba(0,0,0,0.4);
	transform: rotate3d(0, 1, 0, 90deg);
	transition: transform 750ms ease-out;
}
.card.appear{
    transform: rotate3d(0, 1, 0, 0deg);
}
.card__details{
	flex:1;
	display: flex;
	flex-direction: column;
	padding: 0 1.5rem 1rem;
}
.card h2{
	font-size: 1.2em;
}
.card h2 a{
	margin-left:auto;
	font-weight: normal;
}
.card .btn{
	font-size: 0.9rem;
	padding: .25rem 1rem;
}
/*
.card .btn{
	padding:.2rem 1rem;
	background-color: var(--cards-btn-bg);
	color: var(--cards-btn-clr);
}
.card .btn:hover{
	background-color: var(--cards-btn-bg-hover);
	color: var(--cards-btn-clr-hover);
}
*/

.card__img{
	width: 100%;
	aspect-ratio: 6/4;
}
.card:hover img{
/* 	scale:1.04; */
}
.card__img img{
	width:100%;
	height:100%;
	object-fit: cover;
	transition: scale 300ms ease-in;
}

.card__links{
	display: flex;
	margin-top: auto;
	gap: 1rem;
}

.grid {
	display: grid;
	height: 100%;
	grid-template-columns: 1fr;
	position: relative;
	gap: 4em;
}
section img.scale{
	transform-origin: top;
	transform: scale(0.2);
	transition: transform 1500ms cubic-bezier(0.075, 0.82, 0.165, 1);
}
section img.scale.appear{
	transform: scale(1);
}
section img.scale:hover{
/* 	transform: scale(1.02); */
}


/* tech skils */
ul.tech-stack{
	list-style: none;
	margin:0;
	padding:0;
	display: flex;
	flex-wrap: wrap;
	gap:.25rem;
}
ul.tech-stack li{
	margin:0;
	padding:0;
	border:1px solid #DDD;
	border-radius: 4px;
	padding: 0 .75rem 0 1.5rem;
	font-size: .8rem;
	background: var(--tech-bg-clr);

/*
	color: var(--tech-clr, pink);
	mix-blend-mode: difference;
*/
	
	
	display: flex;
	align-items: center;
	gap:.5rem;
}
ul.tech-stack li::before{
	content: '';
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background-color: var(--tech-clr);
/* 	position: absolute; */
}

ul.tech-stack img {
display: block;
}
/*
ul.tech-stack li:before{
	content:'';
	display: none;
}
*/
ul.tech-stack li:hover{
/* 	box-shadow: 0 0 0 1px #666; */
	}
	
	
li.slide-in{
	transform: translateY(50px);
	transition:
		transform 300ms ease-in, 
		opacity 250ms ease-in,
		background-color 500ms ease-in 400ms
		;
	opacity: 0;
}
li.slide-in.appear{
	transform: translateY(0);
	opacity: 1;
}



/* contact me */
.contact {
  	content-visibility: auto;
}
.form-fields {
  	margin-bottom: 1em;
  	position: relative;
}
.form-fields label {
  	margin: 0 0 5px 5px;
  	display: block;
}
.social{
	display: flex;
	align-items: center;
	gap:.5em;
	margin:0 0 2rem;
	padding:0;
}
.social li::before{
	content:'';
	display: none;
}
.social img {
	width: 40px;
	aspect-ratio:1;
	border-radius: 50%;
	border:1px solid #FFF;
	box-shadow: none;
	background-color: #FFF;
}
.social img:focus,
.social img:hover{
	box-shadow: 0 0 0 4px var(--primary-clr-300);
}

button.dark-mode-toggle {
	margin-top: 1.3em;
	padding: .2rem;
	background: transparent;
	cursor: pointer;
	width: 24px;
	aspect-ratio:0;
	border:none;
	transition: transform 300ms ease-in-out;
	transform: var(--toggle-scale)
}

@keyframes pulse-button {
  0% {
    box-shadow: 0 0 0 0px rgba(0, 0, 0, 0.2);
  }
  100% {
    box-shadow: 0 0 0 20px rgba(0, 0, 0, 0);
  }
}
@media screen and (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}


/* media - large screen */
@media (min-width: 748px) {
	:root{
		
		--var-rad: 50px;
		--main-w: 1100px;
		--section-padding: 3em 4rem;
		--logo-w: 60px;
		--tech-txt-size: 2em;
		--hamburger-display: none;
		--margin-top:1rem;
		--hero-img-w:50%;
	}
	.header__inner{
		border-radius: var(--header-rad);
		margin-top:1rem;
		padding-left:0;
	}
	.header__top{
		align-items: center;
		gap:1rem;
	}
	.header__logo img{
		scale: 1.01;
	}
  	button.dark-mode-toggle {
	  	margin-top: .1rem;
	}
  	.menu {
		margin: 0 0 0 auto;
		padding:0;
		height: auto;
		align-items: center;
		flex-direction: row;
		gap: 2em;
		border-radius:0;
		overflow: visible;
	}
	.menu a {
		padding: .5em 0;
		border-radius: 999px;
		
	}
	.grid {
		grid-template-columns: repeat(6, 1fr);
	}
	
	.grid-cols-1  { grid-column-end: span 1; }
	.grid-cols-2  { grid-column-end: span 2; }
	.grid-cols-3  { grid-column-end: span 3; }
	.grid-cols-4  { grid-column-end: span 4; }
	.grid-cols-5  { grid-column-end: span 5; }
	.grid-cols-6  { grid-column-end: span 6; }
	.grid-start-1 { grid-column-start: 1; }
	.grid-start-2 { grid-column-start: 2; }
	.grid-start-3 { grid-column-start: 3; }
	.grid-start-4 { grid-column-start: 4; }
	.grid-start-5 { grid-column-start: 5; }
	
	.cards-container{
		gap:3em;
	}
	.card {
		flex-direction: row;
	}
	.card__img{
		flex: 0 0 50%;
		width: 50%;
		padding: 1rem 0 1rem 1rem;
		border-radius: 
	}
	.card__img img{
		border-radius: 8px 0 0 10px;
	}
	.card__details{
		padding:1rem 1rem 1rem 0;
	}
	section img.scale.appear{
/* 		transform:rotate(-10deg); */
	}
}

@media (prefers-color-scheme: dark){
	--body-bg: hsl(0 0% 10%);
	--sections-bg: hsl(0 0% 20%);
	
	
	--txt-clr: hsl(0, 0%, 93%);
	--fields-bg: #666; 
	--fields-clr:#FFF;
	--nav-bg-hvr:hsl(0, 0%, 30%);
	--nav-txt-clr:hsl(0, 0%, 93%);
	--nav-txt-clr-hover:hsl(0, 0%, 100%);
	--tech-txt-clr:hsl(0, 0%, 100%);
	--primary-clr-300: hsl(76, 57%, 54%);
	--img-shadow-hover:hsla(0, 0%, 0%, 0.5);
	--hero-txt-clr:var(--txt-clr);
	--footer-bg-img: none; 
	--footer-bg:var(--sections-bg);

	--toggle-scale:scaleX(-1);
	--cal-bg: #111;
	--hamburger-clr:var(--primary-clr-300);
	 --cards-txt: var(--txt-clr);
}
@media (prefers-reduced-motion) {
  .appear {

  }
}


/* cookies*/

.cc-banner {
  	border-top: 4px solid hsl(0, 0%, 100%);
}

.cc-link,
.cc-revoke:hover {
  text-decoration: underline;
}
.cc-window {
  opacity: 1;
  transition: opacity 1s;
}
.cc-window.cc-invisible {
  opacity: 0;
}
.cc-animate.cc-revoke {
  -webkit-transition: -webkit-transform 1s;
  transition: transform 1s;
  transition: transform 1s, -webkit-transform 1s;
}
.cc-animate.cc-revoke.cc-top {
  -webkit-transform: translateY(-2em);
  transform: translateY(-2em);
}
.cc-animate.cc-revoke.cc-bottom {
  -webkit-transform: translateY(2em);
  transform: translateY(2em);
}
.cc-animate.cc-revoke.cc-active.cc-bottom,
.cc-animate.cc-revoke.cc-active.cc-top,
.cc-revoke:hover {
  -webkit-transform: translateY(0);
  transform: translateY(0);
}
.cc-grower {
  max-height: 0;
  overflow: hidden;
  -webkit-transition: max-height 1s;
  transition: max-height 1s;
}
.cc-revoke,
.cc-window {
  position: fixed;
  overflow: hidden;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  font-family: Helvetica, Calibri, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.5em;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: nowrap;
  flex-wrap: nowrap;
  z-index: 9999;
}
.cc-window.cc-static {
  position: static;
}
.cc-window.cc-floating {
  padding: 2em;
  max-width: 24em;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
}
.cc-window.cc-banner {
  padding: 1em 1.8em;
  width: 100%;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -ms-flex-direction: row;
  flex-direction: row;
}
.cc-revoke {
  padding: 0.5em;
}
.cc-header {
  font-size: 18px;
  font-weight: 700;
}
.cc-btn,
.cc-close,
.cc-link,
.cc-revoke {
  cursor: pointer;
}
.cc-link {
  opacity: 0.8;
  display: inline-block;
  padding: 0.2em;
}
.cc-close:focus,
.cc-close:hover,
.cc-link:hover {
  opacity: 1;
}
.cc-link:active,
.cc-link:visited {
  color: initial;
}
.cc-btn {
  display: block;
  padding: 0.4em 0.8em;
  font-size: 0.9em;
  font-weight: 700;
  border-width: 2px;
  border-style: solid;
  text-align: center;
  white-space: nowrap;
}
.cc-highlight .cc-btn:first-child {
  	background-color: transparent;
  	border-color: transparent;
}
.cc-highlight .cc-btn:first-child:focus,
.cc-highlight .cc-btn:first-child:hover {
  background-color: transparent;
  text-decoration: underline;
}
.cc-close {
  display: block;
  position: absolute;
  top: 0.5em;
  right: 0.5em;
  font-size: 1.6em;
  opacity: 0.9;
  line-height: 0.75;
}
.cc-revoke.cc-top {
  top: 0;
  left: 3em;
  border-bottom-left-radius: 0.5em;
  border-bottom-right-radius: 0.5em;
}
.cc-revoke.cc-bottom {
  bottom: 0;
  left: 3em;
  border-top-left-radius: 0.5em;
  border-top-right-radius: 0.5em;
}
.cc-revoke.cc-left {
  left: 3em;
  right: unset;
}
.cc-revoke.cc-right {
  right: 3em;
  left: unset;
}
.cc-top {
  top: 1em;
}
.cc-left {
  left: 1em;
}
.cc-right {
  right: 1em;
}
.cc-bottom {
  bottom: 1em;
}
.cc-floating > .cc-link {
  margin-bottom: 1em;
}
.cc-floating .cc-message {
  display: block;
  margin-bottom: 1em;
}
.cc-window.cc-floating .cc-compliance {
  -webkit-box-flex: 1;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
}
.cc-window.cc-banner {
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}
.cc-banner.cc-top {
  left: 0;
  right: 0;
  top: 0;
}
.cc-banner.cc-bottom {
  left: 0;
  right: 0;
  bottom: 0;
}
.cc-banner .cc-message {
  display: block;
  -webkit-box-flex: 1;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  max-width: 100%;
  margin-right: 1em;
}
.cc-compliance {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -ms-flex-line-pack: justify;
  align-content: space-between;
}
.cc-floating .cc-compliance > .cc-btn {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
}
.cc-btn + .cc-btn {
  margin-left: 0.5em;
}
@media print {
  .cc-revoke,
  .cc-window {
    display: none;
  }
}
@media screen and (max-width: 900px) {
  .cc-btn {
    white-space: normal;
  }
}
@media screen and (max-width: 414px) and(orientation:portrait),
  screen and(max-width:736px) and(orientation:landscape) {
  .cc-window.cc-top {
    top: 0;
  }
  .cc-window.cc-bottom {
    bottom: 0;
  }
  .cc-window.cc-banner,
  .cc-window.cc-floating,
  .cc-window.cc-left,
  .cc-window.cc-right {
    left: 0;
    right: 0;
  }
  .cc-window.cc-banner {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
  }
  .cc-window.cc-banner .cc-compliance {
    -webkit-box-flex: 1;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
  }
  .cc-window.cc-floating {
    max-width: none;
  }
  .cc-window .cc-message {
    margin-bottom: 1em;
  }
  .cc-window.cc-banner {
    -webkit-box-align: unset;
    -ms-flex-align: unset;
    align-items: unset;
  }
  .cc-window.cc-banner .cc-message {
    margin-right: 0;
  }
}
.cc-floating.cc-theme-classic {
  padding: 1.2em;
  border-radius: 5px;
}
.cc-floating.cc-type-info.cc-theme-classic .cc-compliance {
  text-align: center;
  display: inline;
  -webkit-box-flex: 0;
  -ms-flex: none;
  flex: none;
}
.cc-theme-classic .cc-btn {
  border-radius: 5px;
}
.cc-theme-classic .cc-btn:last-child {
  min-width: 140px;
}
.cc-floating.cc-type-info.cc-theme-classic .cc-btn {
  display: inline-block;
}
.cc-theme-edgeless.cc-window {
  padding: 0;
}
.cc-floating.cc-theme-edgeless .cc-message {
  margin: 2em 2em 1.5em;
}
.cc-banner.cc-theme-edgeless .cc-btn {
  margin: 0;
  padding: 0.8em 1.8em;
  height: 100%;
}
.cc-banner.cc-theme-edgeless .cc-message {
  margin-left: 1em;
}
.cc-floating.cc-theme-edgeless .cc-btn + .cc-btn {
  margin-left: 0;
}
