le-courage-du-reel/assets/css/src/_mobile.scss
2026-02-24 17:19:23 +01:00

362 lines
6 KiB
SCSS

// Body scroll lock when nav is open
body.no-scroll {
overflow: hidden;
}
@media (max-width: 930px) {
// ---- HEADER ----
body > header {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 3.5rem;
margin: 0;
border-radius: 0;
box-sizing: border-box;
padding: 1rem var(--padding-body);
z-index: 9999;
nav {
display: flex;
align-items: center;
position: relative;
z-index: 2;
.nav-logo {
display: block;
font-size: 1rem;
z-index: 2;
}
.burger {
margin-left: auto;
width: 7.125rem;
height: 1.25rem;
position: relative;
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: center;
z-index: 2;
span {
display: block;
width: 100%;
height: 1px;
background-color: #fff;
transition: transform 0.3s ease, opacity 0.3s ease;
transform-origin: center;
}
}
// Full-screen overlay
ul {
position: fixed;
display: block;
top: 0;
left: 0;
width: 100%;
height: 100dvh;
background-color: var(--color-blue);
flex-direction: column;
align-items: flex-start;
padding: 6rem var(--padding-body) 2rem;
box-sizing: border-box;
z-index: 1;
opacity: 0;
pointer-events: none;
transition: opacity 0.3s ease-in-out;
li {
width: 100%;
a {
display: block;
padding: 0.5rem 0;
font-size: 2.5rem;
font-weight: 400;
}
}
li:first-child {
width: 100%;
font-size: 2.5rem;
a {
font-family: var(--font-narrow);
text-transform: uppercase;
}
}
li:not(:first-child) {
font-family: var(--font-narrow);
font-size: 2rem;
text-transform: uppercase;
font-weight: 700;
}
}
}
// ---- OPEN STATE ----
&.nav-open nav {
ul {
opacity: 1;
pointer-events: all;
}
.burger span:nth-child(2) {
opacity: 0;
}
.burger span:first-child {
transform: translateY(0.55rem) rotate(10deg);
}
.burger span:last-child {
transform: translateY(-0.55rem) rotate(-10deg);
}
}
}
// Compensate fixed header
main {
padding-top: 3.5rem;
}
section {
scroll-margin-top: calc(4.8125rem + 1rem);
}
// ---- HERO ----
section#hero {
height: calc(100dvh - 3.5rem);
text-align: center;
align-items: center;
padding: 25vh var(--padding-body) 3rem;
background-position: 70% -51vh;
background-size: 100vh;
.title {
font-size: 4rem;
}
.subtitle {
margin-bottom: 2vh;
}
#preorder-button {
margin-top: 0;
}
.baseline {
bottom: 2rem;
width: 15rem;
}
}
// ---- QUOTES ----
section#quote-full,
section#quote {
padding: 4rem var(--padding-body);
blockquote {
font-size: 1.5rem;
}
}
// ---- THE BOOK ----
section#the-book {
padding: 4rem var(--padding-body);
.summary-wrapper {
grid-template-columns: 1fr;
gap: 2rem;
.title-wrapper .title {
font-size: 2.5rem;
}
}
.data-wrapper {
flex-wrap: wrap;
gap: 1.5rem;
justify-content: center;
.data {
width: 40%;
}
}
.claim-wrapper {
grid-template-columns: 1fr;
gap: 2rem;
img {
border-radius: var(--radius-section);
}
.text .big {
font-size: 1.75rem;
}
}
}
// ---- EXCERPTS ----
section#excerpts {
padding: 4rem var(--padding-body);
header .title {
font-size: 2.5rem;
}
.swiper-slide .item {
width: 100%;
max-width: 20rem;
text-align: center;
}
}
// ---- HANDLES ----
section#handles {
margin: 3rem var(--padding-body);
padding: 0;
header {
flex-direction: column;
align-items: flex-start;
gap: 1rem;
.title-wrapper .title {
font-size: 2.5rem;
}
.subtitle {
margin-right: 0;
}
}
.path {
width: 100%;
margin-top: 3rem;
.step {
width: 100%;
}
.step:nth-child(even) {
margin-left: 0;
}
}
}
// ---- SYSTEM ----
section#system {
flex-direction: column;
margin: 3rem var(--padding-body);
padding: 0;
gap: 3rem;
.text {
max-width: 100%;
height: auto;
.title {
font-size: 2.5rem;
}
.bottom {
margin-top: 2rem;
}
}
figure {
width: 100%;
margin: 0;
height: auto;
}
}
// ---- EXCERPT (single) ----
section#excerpt {
padding: 4rem var(--padding-body);
.wrapper {
width: 100%;
.chapter-title {
font-size: 2rem;
}
}
}
// ---- AUTHOR ----
section#author {
flex-direction: column;
padding: 4rem var(--padding-body);
align-items: center;
img {
width: 100%;
height: auto;
margin-right: 0;
margin-bottom: 3rem;
}
.text {
width: 100%;
.author-name {
font-size: 2.5rem;
margin-bottom: 2rem;
}
}
}
// ---- BUY ----
section#buy {
flex-direction: column;
padding: 4rem var(--padding-body);
align-items: center;
gap: 3rem;
.text {
width: 100%;
margin-left: 0;
.title {
font-size: 2.5rem;
}
.buy-links {
margin-top: 2.5rem;
}
}
img {
width: 100%;
height: auto;
}
}
// ---- FOOTER ----
body > footer {
padding: 3rem var(--padding-body);
header .title {
font-size: 2.5rem;
}
.contact {
width: 100%;
flex-direction: column;
gap: 2rem;
margin-top: 3rem;
}
.legal {
width: 100%;
margin-top: 3rem;
}
}
}