/* --- Variables --- */

:root {

  /* Font-families */
  --font-body: "Body Web",
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    Helvetica,
    Arial,
    sans-serif,
    "Apple Color Emoji",
    "Segoe UI Emoji",
    "Segoe UI Symbol";
  --font-title: "Script Web", "Body Web", "Times New Roman", serif;

  /* Colours */
  --color-white: #fff1ea;
  --color-shadow: #bcbfb9;
  --color-medium: #862b0c;
  --color-black: #130f0c;
  --color-accent: #FA9600;
  --color-contrast: #261100;
  --color-black-shadow: rgba(19, 15, 12, 0.8);
  --color-black-shadow-light: rgba(19, 15, 12, 0.6);

	/* Sizes */
	--max-width-huge: 62rem;
	--max-width-large: 46rem;
	--max-width: 40rem;
	--max-width-small: 32rem;

	/* White spaces */
	--space-tiny: 0.25rem;
	--space-small: 0.5rem;
	--space-medium: 1rem;
	--space-large: 2rem;
	--space-huge: 3rem;

	/* Misc values */
	--border-radius: 0.5rem;
	--border-round: 3rem;

	--box-shadow: 0 0 0.5rem var(--color-black-shadow);
}

/* Font families generated with Font Squirrel webfont generator
 to make use of subsetting. font-display:swap to prevent FOIT */

@font-face {
  font-family: "Body Web";
  src:
    url("/site/templates/fonts/subset-CrimsonPro-Light.woff2") format("woff2"),
    url("/site/templates/fonts/subset-CrimsonPro-Light.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Body Web";
  src:
    url("/site/templates/fonts/subset-CrimsonPro-LightItalic.woff2") format("woff2"),
    url("/site/templates/fonts/subset-CrimsonPro-LightItalic.woff") format("woff");
  font-weight: normal;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: "Body Web";
  src:
    url("/site/templates/fonts/subset-CrimsonPro-Bold.woff2") format("woff2"),
    url("/site/templates/fonts/subset-CrimsonPro-Bold.woff") format("woff");
  font-weight: bold;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Script Web";
  src:
    url("/site/templates/fonts/subset-AlexBrush-Regular.woff2") format("woff2"),
    url("/site/templates/fonts/subset-AlexBrush-Regular.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}


/* --- Reset and normalisation --- */

/* Better focus-visible for keyboard accessibility */
*:focus-visible {
	outline-color: currentColor;
	outline-style: solid;
	outline-offset: .125rem;
	outline-width: .125rem;
}

/* Box-sizing reset for easier layouts */
*,
::before,
::after {
	box-sizing: inherit;
}

html {
	box-sizing: border-box; /* Define base box-sizing */
	-moz-tab-size: 4; /* Default tab size and line-height */
	tab-size: 4;
	line-height: 1.5;
	-webkit-text-size-adjust: 100%; /* Prevent some devices from zooming in automatically, for ex. when rotating them */
}

/* Make sure the body fills up the screen, reset default page margins */
body {
  display: flex;
  flex-direction: column;
	min-height: 100vh;
	margin: 0;
  padding: 0;
  scroll-behavior: smooth;
}

/* Basic defaults for titles */
h1,
h2,
h3,
h4 {
	font-weight: normal;
	overflow-wrap: break-word;
}

/* Ensure that embedded content doesn't overflow its container  */
audio,
iframe,
img,
picture,
svg,
video {
	max-width: 100%;
}

/* Make images easier to deal with */
img,
picture {
	height: auto;
	max-width: 100%;
	vertical-align: top;
}

/* Reset hr styling */
hr {
	height: 0;
	border: 0.075rem solid currentColor;
	color: inherit;
}

/* Remove list style from menus */
menu {
	list-style: none;
	padding-inline-start: 0;
}

/* Keep list markers inside the list block */
ul,
ol {
	list-style: inside;
}

/* Monospace items defaults */
code,
kbd,
samp,
pre {
	font-family: monospace;
	font-size: 1em;
}

/* Normalise small font size */
small {
	font-size: 80%;
}

/* Prevent 'sub' and 'sup' from affecting line height */
sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sub {
	bottom: -0.25em;
}

sup {
	top: -0.5em;
}

/* better table styling */
table {
	border-collapse: collapse; /* Remove space between cells in tables */
	text-indent: 0; /* Remove unwanted spacing */
	border-color: inherit;
}

/* Add default styling to interactive elements */
button,
input,
optgroup,
select,
textarea {
	font-family: inherit;
	font-size: inherit;
	line-height: 1.5rem;
	margin: 0;
}

button,
select {
	text-transform: none;
}

/* Allows styling in some iOS / Safari */
button,
[type="button"],
[type="reset"],
[type="submit"] {
	-webkit-appearance: button;
}

/* Make textareas easier to use */
textarea {
	resize: vertical;
}

textarea:not([rows]) {
	min-height: 6rem;
}

/* Remove red halo on some Firefox */
:-moz-ui-invalid {
	box-shadow: none;
}

legend {
	padding: 0;
}

progress {
	vertical-align: baseline;
}

/* Correct the cursor style of increment and decrement buttons in Safari */
::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
	height: auto;
}

[type="search"] {
	-webkit-appearance: textfield;
}

/* Removes some default padding and buttons */
::-webkit-search-decoration,
::-webkit-search-cancel-button {
	-webkit-appearance: none;
}

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

/* Add the correct display in Chrome and Safari */
summary {
	display: list-item;
}

/* Reset some margins */
figure {
	margin-inline: 0;
}

/* Make forms easier to work with */
form {
  display: block;
}

/* Prevent children from stretching fieldsets */
fieldset {
	min-width: 0;
	margin: 0;
}

/* Form defaults */
input,
label,
select,
textarea {
  display: block;
}

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

input:last-child,
select:last-child,
textarea:last-child {
  margin-block-end: 0;
}

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

/* Anchors should have extra scroll margin */
:target {
  scroll-margin-block: var(--space-small);
}

/* --- Base styles --- */

/* Global */

body {
	position: relative;
  font-family: var(--font-body);
  color: var(--color-white);
	background: var(--color-black) url('/site/templates/images/grain.png') repeat;
}

.menu {
	display: flex;
	flex-direction: row;
	gap: var(--space-medium);
	padding-inline-start: 0;
	list-style: none;
}

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

hr {
  position: relative;
  max-width: var(--max-width);
  height: 1.5rem;
  margin: var(--space-medium) auto;
  border: 1px solid;
}

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

/* Tables */

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

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

caption,
td,
th,
tr {
  padding: var(--space-small) var(--space-medium);
}

thead {
  margin: 0;
  padding: 0;
}

/* Links, inputs, forms */

fieldset,
input,
select,
textarea {
  border: 1px solid var(--color-accent);
  border-radius: var(--border-radius);
}

input,
select,
textarea {
  background: transparent;
  color: var(--color-white);
}

input:not([type="color"]),
select,
textarea {
  padding: var(--space-small) var(--space-medium);
}

label {
  margin-block-end: var(--space-tiny);
}

input[type="submit"],
button,
.button,
a {
  cursor: pointer;
	color: currentColor;
  transition: color 0.15s, background-color 0.15s, border-color 0.15s;
}

input[type="submit"],
button,
.button {
  position: relative;
  padding: var(--space-tiny) var(--space-medium);
  font-family: var(--font-body);
  text-decoration: none;
	background: transparent;
  border: 1px solid;
  border-radius: var(--border-round);
}

.button {
  display: inline-block;
}

button:hover,
button:focus-visible,
input[type="submit"]:hover,
input[type="submit"]:focus-visible,
.button:hover,
.button:focus-visible {
  color: var(--color-black);
  background: var(--color-accent);
  border-color: var(--color-accent);
  outline-color: var(--color-accent);
}

form input + label,
form textarea + label,
form textarea + fieldset,
.submit {
  margin-top: var(--space-medium);
}

.submit {
  text-align: center;
}

fieldset {
  display: grid;
  grid-template-columns: min-content 1fr;
  padding: 0.5rem 1.5rem;
}

fieldset input + label {
  margin: 0.5rem 0;
}

fieldset input[type="checkbox"] {
  width: 1.25rem;
  height: 1.25rem;
  padding: 0;
  margin: 0.5rem 0.5rem 0.5rem 0;
  border: 1px solid var(--color-white);
  border-radius: 2px;
  appearance: none;
  background-color: transparent;
  transition: outline 0.1s;
}

fieldset input[type="checkbox"]:checked {
  background-size: cover;
  padding: 2px;
}

fieldset input[type="checkbox"]:checked {
  background-color: var(--color-white);
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20" viewBox="0 0 32 32" xml:space="preserve"><path style="fill: %23130f0c" d="M11.941,28.877l-11.941-11.942l5.695-5.696l6.246,6.246l14.364-14.364L32,8.818"/></svg>');
}


.hidden {
  display: none;
}

.visually-hidden {
  border: 0;
  clip-path: inset(50%);
  height: 1px;
  margin: 0;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

.center {
  text-align: center;
}

/* --- Typography --- */

/* Set fluid base font size */
html {
	--mult: clamp(0px, calc((100vw - 360px) / (1280 - 360)), 1px);
	font-size: clamp(1rem, calc(1rem + 8 * var(--mult)), 22px);
}

/* 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;}
*/

h1,
h2,
h3,
h4,
p,
ul,
ol,
dl,
menu,
figcaption,
address,
pre {
	--baselines: 1.5;
	--beneath: 1;
	--baseline-shift: calc(calc(calc(var(--baselines) * 1rem) - 1cap) / 2);
	--baseline-push: calc(calc(var(--beneath) * 1rem) - var(--baseline-shift));
  
	line-height: calc(var(--baselines) * 1rem);
	padding-block-start: var(--baseline-shift);
	padding-block-end: var(--baseline-push);
  margin-block: 0;
}

h1,
.base-header h2 {
	font-size: clamp(2.5rem, calc(1.5rem + 100 * var(--mult)), 122px);
	--baselines: 3.5;
	--beneath: 2;
  margin-block-start: 2rem;
  font-family: var(--font-title);
  font-variant-ligatures: discretionary-ligatures; 
  text-wrap: balance;
  hyphenate-limit-chars: auto 3 4;
  font-weight: normal;
}

h2,
main h1 {
	font-size: 2.5rem;
	--baselines: 2;
	--beneath: 2;
  margin-block-start: 1rem;
  font-family: var(--font-title);
  text-align: center;
  font-weight: normal;
  /*font-size: 2rem;
  font-style: italic;
  text-transform: uppercase;
  letter-spacing: 0.03em;*/
}

@media all and (max-width: 24rem) {
  h2,
  main h1 {
    --baselines: 2;
  	font-size: 2rem;
  /*font-size: 1.75rem;*/
  }
}

main h1 {
  text-align: left;
}

p + h2 {
  margin-block-start: 3rem;
}

h3 {
	--baselines: 2;
	font-size: 1.5rem;
}

h4 {
	--baselines: 2;
	font-size: 1.25rem;
}

a {
  color: currentColor;
	text-underline-offset: 0.1em;
}

a:hover,
a:focus-visible {
  color: currentColor;
}

a > code {
  text-decoration: underline;
  transition: color 0.1s, background-color 0.1s;
}

pre {
  white-space: pre-wrap;
}

pre > code {
  display: block;
  padding: 0.25rem 0.5rem;
}

b {
  font-weight: inherit;
}

mark,
code,
kbd,
samp {
  padding: 0.2rem 0.2rem 0;
  border-radius: var(--border-radius);
  color: inherit;
}

code {
  padding: 0.1rem 0.2rem;
}

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

kbd,
code,
samp {
  background-color: var(--color-black);
  color: var(--color-white);
}

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

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

dt {
  padding: 0.1rem 0.4rem 0;
  line-height: 1.1rem;
  text-align: center;
  border: 0.1rem solid;
  border-radius: var(--border-radius);
  color: var(--color-dark);
  border-color: var(--color-shadow);
}

dt + dd {
  margin-inline-start: 0.25rem;
}

dt::after {
  content: ":";
}

p {
  margin: 0;
  text-wrap: pretty;
}

ul,
ol {
  display: flex;
  flex-direction: column;
  gap: var(--space-small);
  padding-inline: 0;
  margin: 0;
}

li {
  list-style-position: inside;
}

li::marker {
	line-height: 0;
  color: var(--color-accent);
}

li > ul,
li > ol {
  padding-block-start: var(--space-small);
  padding-block-end: 0;
}

.flow > * + * {
  margin-block-start: var(--space-small);
}

:lang(en-GB) > * {
  quotes: '‘' '’' '“' '”'; /* ‘British “style”’ */
} 

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

q::before {
  content: open-quote
}

q::after  {
  content: close-quote
}

figure {
  margin: 0;
}

nav li::before {
  content: none;
}

td {
  font-variant-numeric: tabular-nums lining-nums slashed-zero;    
}

.uppercase {
	text-transform: uppercase;
	font-variant: small-caps;
}

cite {
  font-style: normal;
}

.icon {
  height: 1.2em;
  margin-right: var(--space-small);
}

/* --- Layout --- */

main > * {
	padding-inline: var(--space-medium);
	max-width: var(--max-width);
	margin-inline: auto;
}

@media all and (min-width: 34rem) {
	main > * {
		padding-inline: var(--space-large);
	}
}

main {
  padding-block-start: var(--space-large);
}

.skip-link {
  position: absolute;
  top: 0;
  left: var(--space-small);
	padding: var(--space-tiny) var(--space-small);
	background: var(--color-accent);
	color: var(--color-black);
  z-index: 2;
	transform: translateY(-100%);
	border-bottom-left-radius: var(--border-radius);
	border-bottom-right-radius: var(--border-radius);
	transition: transform 0.2s;
}
 
.skip-link:focus-visible {
	transform: translateY(0);
	color: var(--color-black);
	outline: none;
}

.body {
  flex-grow: 1;
}

.base-header {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.base-nav {
  display: grid;
  grid-template-columns: 1fr max-content;
  align-items: center;
  justify-items: start;
  justify-content: end;
  gap: var(--space-medium);
  padding: var(--space-small) var(--space-medium) var(--space-large);
  background: linear-gradient(var(--color-black), var(--color-black) 10%, transparent);
}

.menu-label,
.base-nav-items {
  grid-column: 2/3;
}

.base-nav-items {
  display: none;
}

#menu-toggle:checked ~ .base-nav-items {
  display: flex;
  flex-direction: column;
  align-items: end;
  position: fixed;
  padding-block-start: var(--space-huge);
  padding-inline: var(--space-large);
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--color-contrast);
  z-index: 10;
}

#menu-toggle:checked + .menu-label {
  position: fixed;
  top: 0.5rem;
  right: 1rem;
  z-index: 11;
}

.base-nav-items a {
  font-style: italic;
  padding: var(--space-tiny);
}

.base-nav-items a,
.base-nav-home {
  position: relative;
  text-decoration: none;
}

.base-nav-home,
.base-nav-items a {
  text-shadow: 0 2px 1px var(--color-black);
}

.base-nav-items a::after,
.base-nav-home::after {
  content: "";
  display: block;
  position: absolute;
  left: 50%;
  bottom: 3px;
  height: 1px;
  width: 0;
  background: var(--color-accent);
  transform: translateX(-50%);
  transition: width 0.2s;
}

.base-nav-home:hover::after,
.base-nav-home:focus-visible::after,
.base-nav-items a:hover::after,
.base-nav-items a:focus-visible::after {
  width: 100%;
}

.base-nav-items .current:nth-child(n + 2) a::after {
  width: 100%;
}

.base-nav-home {
  font-family: var(--font-title);
  font-size: 1.25em;
}

.menu-label .icon {
  padding-bottom: 0.1rem;
}

.menu-label > span {
  display: grid;
  grid-template-columns: max-content 1fr;
  align-items: center;
}

#menu-toggle + .menu-label .menu-close {
  display: none;
}

#menu-toggle:checked + .menu-label .menu-open {
  display: none;
}

#menu-toggle:checked + .menu-label .menu-close {
  display: grid;
}

@media all and (min-width: 52rem) {
  #menu-toggle,
  #menu-toggle + .menu-label {
    display: none;
  }

  .base-nav-items {
    display: flex;
    gap: var(--space-small);
  }
}

.menu-item {
  position: relative;
  text-align: right;
  font-size: 1.2rem;
}

.menu-item > button {
  display: none;
}

.submenu {
  list-style: none;
  margin-block-start: var(--space-tiny);
  padding-block-start: 0;
  padding-inline-end: var(--space-medium);
  border-right: 1px solid;
}

@media all and (min-width: 52rem) {

  .menu-item {
    text-align: left;
    font-size: 1rem;
  }

  .menu-item > button {
    display: inline-block;
    vertical-align: middle;
    padding: 0;
    margin-inline-start: var(--space-tiny);
    border: none;
  }

  .menu-item svg {
    display: block;
    height: 1.2rem;
  }

  .submenu {
    display: none;
    list-style: none;
    position: absolute;
    padding: var(--space-tiny);
    border: none;
    background: var(--color-black-shadow);
  }

  .expanded {
    display: flex;
    width: max-content;
  }

}

.base-header h1,
.base-header h2 {
  padding: 4rem var(--space-medium);
  text-align: center;
  color: var(--color-white);
  text-shadow: 0 0.1rem 0.5rem var(--color-black);
}

@media all and (min-width: 52rem) {
  .base-header h1,
  .base-header h2 {
    padding-inline: var(--space-large);
  }
}

.languages {
  display: flex;
  justify-content: end;
  padding-inline: var(--space-medium);
}

.languages-list {
  flex-direction: row;
  list-style: none;
  padding: 0;
  gap: 0;
}

.languages-list a {
  display: block;
  padding: 0.2rem 0.5rem;
  font-size: 0.875rem;
  text-decoration: none;
  background-color: var(--color-black);
}

.languages-list li:first-child > a {
  border-top-left-radius: var(--border-radius);
}

.languages-list li:last-child > a {
  border-top-right-radius: var(--border-radius);
}

.languages-list a:hover,
.languages-list a:focus-visible {
  background-color: var(--color-accent);
  color: var(--color-black);
}

.languages-list a:focus-visible {
  outline-color: var(--color-accent);
}

.languages-list .current {
  font-weight: bold;
  color: var(--color-accent);
}

main .collage {
  position: relative;
  display: grid;
  padding-block-start: var(--space-huge);
  max-width: none;
  overflow: hidden;
  grid-template-columns: repeat(10, 1fr);
  grid-template-rows: repeat(13, 1fr);
  align-items: center;
}

.collage > img {
  box-shadow: var(--box-shadow);
}

.collage > :first-child {
  position: relative;
  z-index: 1;
  grid-column: 2 / 9;
  grid-row: 1 / 8;
}

.collage > :nth-child(2) {
  position: relative;
  z-index: 1;
  grid-column: 1 / 4;
  grid-row: 5 / 11;
}

.collage > :nth-child(3) {
  position: relative;
  z-index: 1;
  grid-column: 8 / 11;
  grid-row: 6 / 12;
}

.collage > :nth-child(4) {
  position: relative;
  grid-column: 3 / 10;
  grid-row: 7 / 14;
}

.collage-2 > :first-child {
  grid-column: 2 / 7;
  grid-row: 1 / 8;
}

.collage-2 > :nth-child(2) {
  grid-column: 5 / 10;
  grid-row: 7 / 14;
}

.collage-5 > :nth-child(5) {
  position: relative;
  z-index: 2;
  grid-column: 2 / 5;
  grid-row: 9 / 12;
}

.home .collage {
  grid-template-rows: repeat(11, 1fr);
}

.home .collage > :nth-child(3) {
  grid-column: 7 / 11;
  grid-row: 5 / 9;
}

.home .collage > :nth-child(4) {
  grid-column: 3 / 10;
  grid-row: 7 / 12;
}

.collage + .experiences-list {
  margin-block-start: 0;
}

.gallery {
  display: flex;
  flex-direction: column;
  gap: var(--space-medium);
}

@media all and (min-width: 48rem) {
  main .gallery {
    max-width: none;
    flex-direction: row;
    justify-content: center;
  }

  .gallery img {
    max-height: 20rem;
  }
}

.experiences h2 {
  font-family: var(--font-title);
  font-style: normal;
  text-transform: none;
}

main .experiences-list {
  max-width: var(--max-width-large);
  padding-block: var(--space-huge);
}

.experiences-list > p {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  text-align: center;
  gap: var(--space-medium);
}

.experiences-list img {
  transform: scale(1, 1);
  transition: transform 0.2s;
  margin-block-end: var(--space-tiny);
  border-radius: var(--border-radius);
}

.experiences-list a:hover img,
.experiences-list a:focus-visible img {
  transform: scale(1.05, 1.05);
}

.home-affiliates {
  padding-block-start: var(--space-large);
}

.home-affiliates > * {
  margin: 10px auto;
  display: flex;
  gap: 10px;
  justify-content: center;
}

.a-propos .base-header {
  background-position: top;
}

.a-propos main {
  padding-block-start: 0;
}

.a-propos .collage {
  padding-block: var(--space-huge);
}

.about-section {
  display: grid;
  max-width: none;
  padding-inline: 0;
}

.about-section-text {
  padding: var(--space-huge) var(--space-large);
}

@media all and (min-width: 42rem) {
  .about-section {
    display: grid;
    max-width: none;
    grid-template-columns: repeat(12, 1fr);
    grid-template-rows: minmax(0, min-content);
    align-items: stretch;
    justify-items: stretch;
    gap: var(--space-medium);
    padding-inline: 0;
  }

  .about-section-text {
    position: relative;
    padding: var(--space-huge) var(--space-large);
    grid-column: 1 / 8;
    grid-row: 1 / 2;
    min-height: 0;
    min-width: 0;
    overflow: hidden;
    z-index: 1;
  }

  .about-section-picture {
    position: relative;
    grid-column: 6 / 13;
    grid-row: 1 / 2;
    -webkit-mask-image: linear-gradient(to right, transparent, black 65%);
    mask-image: linear-gradient(to right, transparent, black 65%);
  }

  .about-section:nth-child(2n) .about-section-text {
    grid-column: 6 / 13;
  }

  .about-section:nth-child(2n) .about-section-picture {
    grid-column: 1 / 8;
    -webkit-mask-image: linear-gradient(to left, transparent, black 65%);
    mask-image: linear-gradient(to left, transparent, black 65%);
  }

  .about-section-picture > img {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    object-fit: cover;
    opacity: 1;
  }
}

.background-wrapper,
.contact-form-wrapper {
  max-width: none;
  background-size: cover;
  background-attachment: fixed;
  background-position: 20%;
}

.background-wrapper {
  padding-inline: 0;
}

.background-wrapper > * {
	padding-inline: var(--space-medium);
	max-width: var(--max-width);
	margin-inline: auto;
}

@media all and (min-width: 34rem) {
	.background-wrapper > * {
		padding-inline: var(--space-large);
	}
}

.blog-post ul,
.about-section-text ul {
  padding-inline-start: var(--space-medium);
}

.blog-post li + li {
  margin-block-start: var(--space-medium);
}

#contact-form {
  max-width: 24rem;
  margin-inline: auto;
  position: relative;
  padding-block: var(--space-huge);
}

@media all and (prefers-reduced-motion: no-preference) {
  #contact-form-fields {
    transition: opacity 0.6s, height 0.6s;
  }
}

#contact-success {
  position: absolute;
  left: var(--space-medium);
  right: var(--space-medium);
  top: 50%;
  transform: translateY(-50%);
  text-align: center;
  border: 1px solid var(--color-accent);
}

.contact-error {
  text-align: center;
}

.hiding {
  opacity: 0;
  overflow: hidden;
  height: 4rem;
}

.picture {
	max-width: var(--max-width-large);
  margin-block: var(--space-large);
}

.experiences .base-header {
  background-position: center 80%;
}

.aller-plus-loin .base-header {
  background-position: center 14%;
}

.massages-sensuels main,
.experiences-kinky main,
.aller-plus-loin main,
.mon-espace main {
  padding-block-start: 0;
}

.experiences .background-wrapper,
.experience .background-wrapper {
  padding-block-start: var(--space-huge);
}

.experience .background-wrapper {
  padding-block-end: 0;
}

.experiences .background-wrapper {
  padding-block-end: var(--space-huge);
}

.experiences-kinky .base-header {
  background-position: top;
}

.experiences-kinky .collage-2 {
  padding-block-end: var(--space-huge);
}

.aller-plus-loin .background-wrapper {
  background-position: bottom;
}

.aller-plus-loin .collage {
  padding-block-start: 0;
}

.aller-plus-loin .collage > :nth-child(2) {
  grid-row: 4 / 10;
}

.aller-plus-loin .collage > :nth-child(3) {
  grid-row: 5 / 11;
}

/* --- Blog --- */

.blog h2,
.blog-post h2 {
  --beneath: 1;
  margin-block-start: 0;
  text-align: left;
}

.blog-date {
  margin-block-start: var(--space-huge);
  font-size: 0.875rem;
  color: var(--color-accent);
}

.blog-post .slider {
  max-width: var(--max-width-small);
  margin: var(--space-medium) auto;
}

/* --- Footer --- */

.base-footer {
  padding: var(--space-huge) var(--space-medium);
  text-align: center;
  background: var(--color-black);
}

.footer-socials > a {
  position: relative;
  display: inline-flex;
  text-decoration: none;
  margin: 0 0.25rem;
  vertical-align: middle;
  z-index: 1;
}

.footer-socials > a::after {
  content: "";
  display: block;
  position: absolute;
  left: 50%;
  top: 50%;
  width: 2.5rem;
  height: 2.5rem;
  background: var(--color-white);
  transform: translateX(-50%) translateY(-50%) scale(0, 0);
  transition: transform 0.2s, filter 0.2s, color 0.2s;
  border-radius: 50%;
  z-index: -1;
  filter: blur(20px);
}

.footer-socials > a:hover,
.footer-socials > a:focus-visible {
  color: var(--color-black);
}

.footer-socials > a:focus-visible {
  outline-color: var(--color-accent);
}

.footer-socials > a:hover::after,
.footer-socials > a:focus-visible::after {
  text-decoration: none;
  transform: translateX(-50%) translateY(-50%) scale(1, 1);
  filter: blur(0);
}

.footer-socials svg {
  width: 2rem;
}

.footer-links {
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: none;
  justify-content: center;
  flex-wrap: wrap;
  gap: 1rem;
  padding-block: var(--space-huge);
}

.footer-links > .button {
  padding: var(--space-medium) var(--space-large);
  border-color: var(--color-accent);
}

.edit-link {
  text-align: center;
}

.base-footer p {
  text-shadow: 0 1px 2px var(--color-black);
}

/* Caroussels de photos */

.slider {
  position: relative;
  overflow: hidden;
  padding: 0;
  margin-block: var(--space-huge);
  margin-inline: auto;
  max-width: var(--max-width-huge);
}

.slider-slides {
  display: grid;
  justify-content: center;
  justify-items: stretch;
  grid-template-rows: 1fr;
  grid-template-columns: 1fr 3fr 1fr;
  gap: 0;
  -webkit-mask-image: linear-gradient(to left, transparent, black 20%, black 80%, transparent);
  mask-image: linear-gradient(to left, transparent, black 20%, black 80%, transparent);
}

.slider-1 .slider-slides,
.slider-2 .slider-slides,
.clients {
  grid-template-columns: 1fr;
}

.slider-1 .slider-slides,
.slider-2 .slider-slides {
  gap: 1rem;
  -webkit-mask-image: none;
  mask-image: none;
  padding: var(--space-medium);
}

.slider-1 .slider-item,
.slider-2 .slider-item {
  grid-column: auto;
  grid-row: auto;
  padding: 0;
  opacity: 1;
}

@media all and (min-width: 38rem) {
  .slider-2 .slider-slides {
    grid-template-columns: 1fr 1fr;
  }
}

.slider-item {
  display: flex;
  grid-row: 1 / 2;
  justify-content: center;
  align-items: center;
  grid-column: 2 / 3;
  padding-inline: var(--space-small);
  opacity: 0;
}

.slider .slider-item-current {
  opacity: 1;
  transform: translateX(0);
}

.slider .slider-item-next {
  opacity: 1;
}

.slider .slider-item-previous {
  opacity: 1;
}

.slider-1 .slider-item {
  width: 100%;
}

.slider-item > figure {
  position: relative;
  max-width: 100%;
  max-height: 24rem;
}

@media all and (prefers-reduced-motion: no-preference) {
  .slider-transition {
    transition: transform 0.6s cubic-bezier(0.2, 0, 0.5, 1), opacity 0.6s;
  }
}

.slider figcaption {
  position: absolute;
  bottom: 0;
  right: 0;
  padding: 0 var(--space-tiny);
  font-size: 0.75rem;
  line-height: 1.25rem;
  background: var(--color-black-shadow-light);
}

.slider img {
  display: block;
  text-align: center;
  background-color: var(--color-contrast);
}

.slider-nav {
  position: absolute;
  top: 50%;
  width: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
  display: flex;
  justify-content: space-between;
  margin-block-start: var(--space-small);
  text-align: center;
  z-index: 2;
}

.slider-nav > button {
  padding: 0;
  font-size: 0.875rem;
  background: none;
  border: none;
  margin-inline: var(--space-small);
}

.slider-nav > button:hover,
.slider-nav > button:focus-visible {
  background: var(--color-accent);
  border-color: var(--color-accent);
}

.slider-nav svg {
  display: block;
  width: 1.75rem;
}

.about-section-text + .footer-links,
.about-section-text + .about-section-text,
.slider + .about-section-text,
.slider + .about-section .about-section-text,
.slider:not(.clients) + .footer-links {
  padding-block-start: 0;
}

.about-section-text + .slider {
  margin-block-start: 0;
}

@media all and (min-width: 42rem) {
  .slider + .about-section .about-section-text {
    padding-block-start: var(--space-huge);
  }
}

.clients {
  max-width: none;
  margin-block-start: var(--space-huge);
  padding: var(--space-huge) var(--space-medium);
  background-size: cover;
  background-attachment: fixed;
  background-position: center;
  overflow: hidden;
}

.slider-clients {
  margin-block-start: 0;
  max-width: none;
}

.clients .slider-slides {
  grid-template-columns: 1fr;
  padding: 0;
  -webkit-mask-image: none;
  mask-image: none;
}

.clients .clients-item {
  position: absolute;
  left: 0;
  right: 0;
  flex-direction: column;
  grid-column: 1 / 2;
}

.clients .slider-item-previous,
.clients .slider-item-next {
  opacity: 0;
}

.clients .slider-item-current {
  position: relative;
  top: 0;
}

.clients .slider-item-previous {
  transform: translateX(-50%);
}

.clients .slider-item-next {
  transform: translateX(50%);
}

.clients-item > * {
  max-width: var(--max-width);
  padding-inline: var(--space-large);
  margin-inline: auto;
}

.clients-nav {
  top: 2.75rem; /* Au niveau de la 2e ligne */
  max-width: calc(var(--max-width) + 2rem);
}

.client-name {
  text-align: right;
  font-style: italic;
}