@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Playfair+Display:ital,wght@0,400..900;1,400..900&display=swap');

/*#region 1. Design tokens */

:root {
    /* --- Colors --- */
    --color-bg: #FFFFFF;
    --color-text-main: #000000;
    --color-primary: #325960;
    --color-primary-inverse: #FFFFFF;
    
    /* --- Typography --- */
    --font-sans: 'Inter', sans-serif;
    --font-serif: 'Playfair Display', serif;
    
    --font-weight-regular: 400;
    --font-weight-bold: 800;

    /* Font sizes */
    --font-size-title: clamp(2rem, 5vw + 1rem, 5rem);     /* Titre responsive */
    --font-size-baseline: clamp(1rem, 2vw + 0.5rem, 1.75rem); /* Sous-titre */
    --font-size-button: clamp(1rem, 1.5vw + 0.5rem, 1.25rem); /* Boutons */

    /* --- Spacing --- */
    --spacing-xs: 8px;
    --spacing-sm: 16px;
    --spacing-md: 32px;
    --spacing-lg: 48px;
    
    /* --- Layout & Dimensions --- */
    --container-max-width: 1200px;
    --border-width-thick: 5px;
    
    /* --- Profile picture adaptative size */
    --profile-size: clamp(150px, 40vw, 300px); 
}

/*#endregion 1. Design tokens */



/*#region 2. Reset and global settings */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    background-color: var(--color-bg);
    color: var(--color-text-main);
    font-family: var(--font-sans);
    font-weight: var(--font-weight-regular);
    min-height: 100dvh; 
    display: flex;
    flex-direction: column;
}

img {
    max-inline-size: 100%;
    block-size: auto;
    display: block;
}

/*#endregion 2. Reset and global settings */



/*#region 3. Layout */

.container {
    min-height: 100dvh; 
    width: 100%;
    max-width: var(--container-max-width);
    margin: 0 auto;
    
    display: flex;
    flex-direction: column;
    padding: var(--spacing-sm);
    gap: var(--spacing-md);
}

.container__content {
    flex: 1; 
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: var(--spacing-md);
}

/*#endregion 3. Layout */



/*#region 4. Components */

/* --- Header & Profile --- */
.header {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--spacing-md);
    text-align: center;
}

.header__profile-picture {
    width: var(--profile-size);
    height: var(--profile-size);
    object-fit: cover;
    outline: var(--border-width-thick) solid var(--color-primary);
    outline-offset: 3px;
}

.header__title {
    font-family: var(--font-serif);
    font-weight: var(--font-weight-bold);
    text-transform: uppercase;
    color: var(--color-primary);
    font-size: var(--font-size-title);
    line-height: 1.1;
}

/* --- Baseline / Description --- */
.baseline {
    list-style: none;
    padding: 0;
    text-align: center;
    font-size: var(--font-size-baseline);
    line-height: 1.5;
    display: flex;
    flex-direction: column;
}

.baseline span {
    font-weight: 600;
    color: var(--color-primary);
}

/* --- Footer / Media Links --- */
.media {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: var(--spacing-sm);
    flex-wrap: wrap;
    margin-top: auto;
    padding-bottom: var(--spacing-sm);
}

.media__item {
    font-family: var(--font-serif);
    font-weight: var(--font-weight-bold);
    font-size: var(--font-size-button);
    text-transform: uppercase;
    text-align: center;
    text-decoration: none;
    letter-spacing: 0.25em;
    
    color: var(--color-primary);
    border: var(--border-width-thick) solid var(--color-primary);
    padding: var(--spacing-xs) var(--spacing-md);
    
    transition: all 0.3s ease;

    width: 100%; 
}

.media__item:hover {
    color: var(--color-primary-inverse);
    background-color: var(--color-primary);
}

.media__item:focus-visible {
    /* Un contour qui ne déplace pas les éléments */
    outline: 3px solid var(--color-primary);
    outline-offset: 4px; /* Laisse un petit espace entre le bouton et le contour */
}

/*#endregion 4. Components */



/*#region 5. Media queries */

/* > 600px */
@media (min-width: 600px) {

    .media__item {
        flex: 1;
        max-width: 220px; 
        text-align: center;
    }

    .media {
        width: 100%;
    }
}

/*#endregion 5. Media queries */

/*#region 6. Dark theme */

@media (prefers-color-scheme: dark) {
    :root {
        --color-bg: #1a1a1a;
        --color-text-main: #f0f0f0;
        --color-primary: #8AB0B8;
        --color-primary-inverse: #1a1a1a;
    }

    img {
        filter: brightness(0.85);
    }
}

/*#endregion 6. Dark theme */
