/* Baseline grid, disable when not checking vertical rhythm */
/*
body::before {content: " ";position: absolute;top:0;bottom:0;left:0;right:0;background:linear-gradient(to bottom, rgba( 32,160,255,.35 ) 1px, transparent 1px);background-size:100% 0.5rem;z-index:1;pointer-events: none;}
*/


/* VARIABLES */

:root {

	/* Font-families */
	--font-body: "Lexend Web",
		-apple-system,
		BlinkMacSystemFont,
		"Segoe UI",
		Helvetica,
		Arial,
		sans-serif,
		"Apple Color Emoji",
		"Segoe UI Emoji",
		"Segoe UI Symbol";
	--font-title: "Darumadrop One Web",
		"Lexend Web",
		-apple-system,
		BlinkMacSystemFont,
		"Segoe UI",
		Helvetica,
		Arial,
		sans-serif,
		"Apple Color Emoji",
		"Segoe UI Emoji",
		"Segoe UI Symbol";
  
	/* Colours */
	--color-white: #FFFDF6;
	--color-light: #ffcfce;
	--color-accent: #ffe02e;
	--color-medium: #9dd9f1;
	/*--color-medium: #aae39a;*/
	--color-shadow: #ffcfce;
	--color-dark: #1f1cb6;
  
	/* Sizes */
	--max-width: 48rem;
  
	/* Decorative values */
	--border-radius: 0.25rem;
}


/* FONTS */

@font-face {
	font-family: "Lexend Web";
	src:
	  url("/site/templates/styles/fonts/lexenddeca-regular-webfont.woff2") format("woff2"),
	  url("/site/templates/styles/fonts/lexenddeca-regular-webfont.woff") format("woff");
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Lexend Web";
	src:
	  url("/site/templates/styles/fonts/lexenddeca-bold-webfont.woff2") format("woff2"),
	  url("/site/templates/styles/fonts/lexenddeca-bold-webfont.woff") format("woff");
	font-weight: bold;
	font-style: normal;
	font-display: swap;
}
  
  @font-face {
	font-family: "Darumadrop One Web";
	src:
	  url("/site/templates/styles/fonts/darumadropone-regular-webfont.woff2") format("woff2"),
	  url("/site/templates/styles/fonts/darumadropone-regular-webfont.woff") format("woff");
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}


/* RESET */

*,
::before,
::after {
	box-sizing: inherit;
}

*:focus-visible {
	outline-color: currentColor;
	outline-style: dotted;
	outline-offset: .25rem;
	outline-width: .125rem;
}

/* Anchors should have extra scroll margin */
:target {
  scroll-margin-block: 2em;
}

html {
	-moz-tab-size: 4;
	tab-size: 4;
	box-sizing: border-box;
	-moz-text-size-adjust: none;
	-webkit-text-size-adjust: 100%;
	text-size-adjust: none;
	font-size: 1rem;
	line-height: 1.5;
	position: relative;
}

body {
	margin: 0;
	padding: 0;
	text-decoration-skip-ink: auto;
	font-optical-sizing: auto;
	font-variant-ligatures: common-ligatures no-discretionary-ligatures no-historical-ligatures contextual;
	font-kerning: normal;
}

h1,
h2,
h3,
h4 {
	font-weight: normal;
	margin-top: 1rem;
	margin-bottom: 1rem;
	font-variant-numeric: lining-nums;
	font-variant-ligatures: discretionary-ligatures;
}

img {
	height: auto;
	max-width: 100%;
	vertical-align: top;
}

hr {
	height: 0;
	color: inherit;
}

abbr[title] {
	text-decoration: underline dotted;
}

code,
kbd,
samp,
pre {
	font-family: monospace;
	font-size: 1em;
}

pre {
	padding-block: 0.5rem;
	padding-inline: 1rem;
	background: var(--color-dark);
	color: var(--color-light);
	border-radius: var(--border-radius);
	overflow-x: auto;
}

small {
	font-size: 80%;
}

sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sub {
	bottom: -0.25em;
}

sup {
	top: -0.5em;
}

table {
	text-indent: 0;
	border-color: inherit;
}

button,
input,
optgroup,
select,
textarea {
	font-family: inherit;
	font-size: inherit;
	line-height: 1.15;
	margin: 0;
}

textarea {
	width: 100%;
	resize: vertical;
}

button,
select {
	text-transform: none;
}

button,
[type='button'],
[type='reset'],
[type='submit'] {
	-webkit-appearance: button;
}

:-moz-ui-invalid {
	box-shadow: none;
}

legend {
	padding: 0;
}

progress {
	vertical-align: baseline;
}

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
	height: auto;
}

[type='search'] {
	-webkit-appearance: textfield;
	outline-offset: -2px;
}

::-webkit-search-decoration {
	-webkit-appearance: none;
}

::-webkit-file-upload-button {
	-webkit-appearance: button;
	font: inherit;
}

summary {
	display: list-item;
}


/* BASE */

/* Basic styles */
body {
	background: var(--color-white);/* url('/site/templates/styles/images/bg.png') repeat;*/
	color: var(--color-dark);
	font-family: var(--font-body);
}

p > img,
figure > img {
	border-radius: var(--border-radius);
}

mark,
code,
kbd,
samp {
	padding: 0.125rem 0.25rem;
	color: inherit;
}

figure {
	margin: 2rem 0;
	padding: 0;
}

figcaption {
	padding-block: 0.5rem;
	font-size: 0.875rem;
}

form {
	display: block;
	border: 0.125rem solid var(--color-dark);
	border-radius: var(--border-radius);
	padding: 0.5rem;
}

fieldset {
	border: 0.125rem solid var(--color-dark);
	border-radius: var(--border-radius);
}

input,
label,
select,
textarea {
	display: block;
}

input[type="checkbox"],
input[type="radio"] {
	display: inline-block;
}

input[type="checkbox"] + label,
input[type="radio"] + label {
	display: inline-block;
}

input,
select,
textarea {
	border: 0.125rem solid var(--color-dark);
	border-radius: var(--border-radius);
	margin-bottom: 1rem;
}

input:not([type="color"]),
select,
textarea {
	padding: 0.5rem 1rem;
}

audio,
video,
input:not([type="radio"]):not([type="checkbox"]):not([type="color"]),
select,
meter,
progress,
textarea {
	width: 18rem;
	max-width: 100%;
}

video {
	background-color: var(--color-dark);
}

label {
	margin-bottom: 0.25rem;
}

table {
	display: inline-block;
	padding: 0;
	border: 0.125rem solid var(--color-dark);
	border-radius: var(--border-radius);
	border-spacing: 0;
	max-width: 100%;
	overflow-x: auto;
	white-space: nowrap;
}

caption {
	background: var(--color-light);
	text-align: left;
}

caption,
td,
th,
tr {
	padding: 0.5rem 1rem;
}

thead {
	border-collapse: collapse;
	border-radius: var(--border-radius);
	margin: 0;
	padding: 0;
}

blockquote {
	margin: auto;
}

blockquote > p {
	padding-left: 1rem;
	border-left: 0.25rem solid var(--color-dark);
}

hr {
	border: 0.05rem solid;
}

a {
	transition: color 0.1s, border-color 0.1s, background-color 0.1s;
}

/* TYPOGRAPHY */

@media all and (min-width: 360px) {
	html {
	  font-size: calc(1rem + 8 * (100vw - 360px) / (1280 - 360));
	}
  }
  
  @media all and (min-width: 1280px) {
	html {
	  font-size: 1.5rem;
	}
}

.center {
	text-align: center;
	text-wrap: balance;
}

.align_right {
	text-align: right;
} 

.uppercase {
	text-transform: uppercase;
	--opentype-case: on;
}

.smallcaps {
	font-variant-caps: all-small-caps;
	font-variant-numeric: oldstyle-nums;    
}

strong {
	font-weight: normal;
}

b, th { 
	font-weight: bold;
}

h1 {
	font-size: 2.5rem;
	line-height: 2.5rem;
	padding-top: calc((3rem - 1ex) / 2);
	padding-bottom: calc(1rem - ((0.5rem - 1ex) / 2));
	margin-top: 0;
	margin-bottom: 0;
	letter-spacing: -0.035em;
	word-spacing: 0.07em;
	font-family: var(--font-title);
	text-transform: lowercase;
	color: var(--color-dark);
	text-align: center;
	text-wrap: balance;
}
  
@media all and (max-width: 58rem) {
	h1 {
		font-size: 2.25rem;
		line-height: 2.25rem;
		padding-top: calc((2rem - 1ex) / 2);
	}
}
  
@media all and (max-width: 28rem) {
	h1 {
		font-size: 2rem;
		line-height: 2rem;
		padding-top: calc((2rem - 1ex) / 2);
	}
}

h2 {
	font-size: 1.5rem;
	line-height: 1.5rem;
	padding-top: calc((5rem - 1ex) / 2);
	font-weight: bold;
	margin-top: 0;
	margin-bottom: calc(1.5rem - ((2rem - 1ex) / 2));
}

h3 {
	font-size: 1.5rem;
	line-height: 1.5rem;
	padding-top: calc((1.5rem - 1ex) / 2);
	margin-top: 1.5rem;
	margin-bottom: calc(1.5rem - ((1.5rem - 1ex) / 2));
}
  
h4 {
	font-size: 1.25rem;
	line-height: 1.5rem;
	padding-top: calc((1.5rem - 1ex) / 2);
	margin-top: 0;
	margin-bottom: calc(1.5rem - ((1.5rem - 1ex) / 2));
}

a {
	color: var(--color-dark);
}
  
a:hover,
a:focus {
	color: var(--color-dark);
}

strong,
mark,
code,
kbd,
samp {
  padding: 0.125rem 0.2rem 0.125rem;
  border-radius: var(--border-radius);
}

strong,
mark {
  background-color: var(--color-accent);
}

kbd,
code,
samp {
  background-color: var(--color-dark);
  color: var(--color-light);
}

:lang(en) > * {    quotes: '‘' '’' '“' '”'; } /* ‘British “style”’ */
:lang(fr) > * { quotes: '«\00202F' '\00202F»' '“' '”'; } /* « French “style” » */

q::before { content: open-quote }
q::after  { content: close-quote }

.quoted, .quoted q {
	quotes: '“' '”' '‘' '’';
}

.quoted p:first-of-type::before {
	content: open-quote;
}
.quoted p:last-of-type::after  {
	content: close-quote;
}

.quoted p:first-of-type::before {
	margin-inline-start: -0.87ch; /* Adjust according to font */
}

.quoted p {
	hanging-punctuation: first last;
}

@supports(hanging-punctuation: first last) {
	.quoted p:first-of-type::before {
		margin-inline-start: 0;
	}
}

cite {
  font-style: italic;
}

dl {
	display: grid;
	align-items: start;
	grid-template-columns: min-content 1fr;
	column-gap: 0.25rem;
	row-gap: 0.5rem;
	margin: 0;
}

dt,
dd {
  font-size: 1rem;
  margin: 0;
}

dt {
	padding: 0.1rem 0.4rem 0;
	line-height: 1.25rem;
	text-transform: uppercase;
	--opentype-case: on;
	font-size: 0.875rem;
	font-weight: bold;
	text-align: center;
	color: var(--color-dark);
	background: var(--color-light);
}

dt + dd {
  margin-left: 0.25rem;
}

td, math, time[datetime*=":"] {
	font-variant-numeric: tabular-nums lining-nums slashed-zero;    
}

p {
  margin: 0;
}

ul {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
  gap: 0.5rem;
}

li {
  display: inline-block;
  list-style: circle;
}

li::before {
  content: "•";
  margin-right: 0.5rem;
}

.flow > * + * {
	margin-block-start: 1rem;
}

nav {
  margin: 1rem 0;
}

nav ul {
  flex-direction: row;
  padding: 0;
  gap: 1rem;
}

nav li::before {
  content: none;
}

.prose {
	text-wrap: pretty;
	font-variant-numeric: oldstyle-nums proportional-nums;
}

.wrapper {
	max-width: var(--max-width);
	margin: auto;
}

.side-padding {
	padding-left: 1rem;
	padding-right: 1rem;
}

@media all and (min-width: 38rem) {
	.side-padding {
		padding-left: 2rem;
		padding-right: 2rem;
	}
}

.reference-svg {
	transform: scale(0);
	position: absolute;
}

.border-button {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.5rem 1rem;
	border: 0.25rem solid currentColor;
	text-decoration: none;
}

.border-button:hover,
.border-button:focus-visible {
	background: var(--color-dark);
	border-color: var(--color-dark);
	color: var(--color-shadow);
}

.border-button:focus-visible {
	outline-color: var(--color-dark);
}

.icon {
	height: 1.75rem;
	width: 1.75rem;
}


/* BASE HEADER */

.base-header {
	padding-top: 1rem;
	padding-bottom: 1rem;
}

.base-header-nav {
	text-align: center;
	margin: 0;
	padding-bottom: 0.5rem;
	border: 0.25rem solid var(--color-light);
}

.base-header-nav ul {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0;
	text-align: center;
}

.base-header-nav li {
	display: grid;
}

.base-header-link {
	display: grid;
	place-content: center;
	padding: 0.25rem 0.5rem;
	line-height: 1.2;
	text-decoration: none;
	color: var(--color-dark);
	transition: color 0.1s, background-color 0.1s;
}

.base-header-link::after {
	content: " ";
	height: 0.125rem;
	width: 100%;
	display: block;
	margin-bottom: -0.1rem;
}

.base-header-link[aria-current="page"]::after {
	background: var(--color-shadow);
}

@media all and (min-width: 44rem) {
	.base-header-nav {
		display: grid;
		grid-template-columns: max-content 1fr;
		align-items: stretch;
		gap: 0.75rem;
		padding-bottom: 0;
	}

	.base-header-nav ul {
		grid-template-columns: repeat(3, minmax(max-content, 5rem));
		justify-content: end;
	}

	.base-header-link {
		padding: 1rem;
		border-left: 0.25rem solid var(--color-light);
	}

	.base-header-link:hover,
	.base-header-link:focus-visible {
		background: var(--color-light);
	}
}

.base-logo {
	height: 4.5rem;
	padding: 0.75rem;
	width: auto;
}

.base-nav {
	margin: 0;
}

/* BASE FOOTER */

.base-small {
	background: var(--color-dark);
	color: var(--color-white);
	padding: 1rem 2rem 2rem;
}

.base-small a {
	color: var(--color-shadow);
}

.contact {
	padding-top: 1.5rem;
	padding-bottom: 1.75rem;
	background: var(--color-light);
	color: var(--color-dark);
}

.contact a {
	font-size: 1.5rem;
	color: var(--color-dark);
}

.base-footer-logo {
	display: inline-block;
	margin-bottom: 0.5rem;
}

/* ADMIN SPECIFIC */

.edit-page {
	padding: 1.2rem 2rem;
	font-size: 0.75rem;
}


/* HOME */

.home-welcome {
	background: var(--color-medium) url("/site/templates/styles/images/gradient.png") repeat-x top;
	background-size: 3rem;
	padding: 2rem 0;
}

.home-welcome .wrapper {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.home-heading {
	padding: 3rem 1.5rem 2.5rem;
	background: #FFFDF6;
	width: 10em;
	flex-shrink: 0;
	clip-path: url(#mask1);
}

.home-intro {
	max-width: var(--max-width);
	padding: 1rem 0;
	margin: auto;
}

.home-intro > p {
	border-radius: var(--border-radius);
}

@media all and (min-width: 56rem) {
	.home-welcome .wrapper {
		flex-direction: row;
		justify-content: center;
		gap: 2rem;
	}

	.home-intro {
		margin: 0;
	}
}

.home-infos {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
	padding-top: 2rem;
	padding-bottom: 2rem;
	max-width: var(--max-width);
	margin: auto;
}

@media all and (min-width: 42rem) {
	.home-infos {
		grid-template-columns: 1fr 1fr;
		gap: 3rem;
	}
}

.home-infos-item > h2 {
	padding: 0;
}

.home-portfolio {
	padding-top: 2rem;
	padding-bottom: 2rem;
	text-align: center;
	background: var(--color-medium);
}

.home-portfolio > p {
	max-width: var(--max-width);
}

.home-portfolio .border-button {
	margin-top: 1rem;
}


/* VALUES & BLOG */

.values-content {
	padding-bottom: 2rem;
}

.blog-title {
	padding-bottom: 0.5rem;
}

.blog-list {
	margin-block: 2rem;
}

.blog-list > li::before {
	content: none;
}

.blog-link {
	font-size: 1.2rem;
}

.blog-date {
	margin-bottom: 2rem;
	text-align: center;
}

.blog-content {
	padding-bottom: 2rem;
}

.blog-content p + p {
	margin-top: 1rem;
}

.value-list {
	display: flex;
	gap: 2rem;
	margin-top: 2rem;
}

.value-list h2 {
	padding-top: 0;
}

.value-list li::before {
	display: none;
}

.value-list svg {
	height: 2rem;
	width: 2rem;
	margin-right: 0.5rem;
	vertical-align: middle;
	margin-top: -0.2rem;
}


/* PROJECT LIST */

.project-list-content {
	background: var(--color-medium) url("/site/templates/styles/images/gradient.png") repeat-x top;
	background-size: 3rem auto;
}

.project-list {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
	padding-bottom: 2rem;
	list-style: none;
}

.project-list li {
	display: flex;
	grid-row: span 3;
	margin-bottom: 1rem;
}

@media all and (min-width: 36rem) {
	.project-list {
		grid-template-columns: 1fr 1fr;
		grid-template-rows: repeat(autofit, 1fr);
		grid-auto-rows: 1fr;
	}

	.project-list li:nth-child(2) {
		grid-column: 2;
		grid-row: 2 / span 3;
	}
}

.project-list li::before {
	display: none;
}

.project-list a {
	display: flex;
	flex-direction: column;
	text-decoration: none;
	transition: background-color 0.1s, color 0.1s;
	align-items: center;
}

.project-list li:nth-child(3n) img {
	clip-path: url(#mask1);
}

.project-list li:nth-child(3n - 1) img {
	clip-path: url(#mask2);
}

.project-list li:nth-child(3n - 2) img {
	clip-path: url(#mask3);
}

.project-list span {
	position: relative;
	background: var(--color-white);
	padding: 0.5rem 1rem;
	line-height: 1.25rem;
	margin-top: -1.5rem;
	box-shadow: 0 0.15rem 0.35rem rgba(0, 0, 0, 0.15);
	transition: background-color 0.1s, color 0.1s;
}

.project-list a:hover span,
.project-list a:focus-visible span {
	background: var(--color-dark);
	color: var(--color-shadow);
}


/* PROJECT */

.project-content {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	max-width: var(--max-width);
	padding-bottom: 2rem;
	margin: auto;
}

.project-metadata {
	margin-bottom: 1rem;
}

.project-content img,
.blog-content img {
	box-shadow: 0 0.15rem 0.35rem rgba(0, 0, 0, 0.15);
}