html {
    scroll-behavior: smooth;
}

body {
    background-color: #FCFBFA;
    color: #272323;
    margin: 0;
}

h1 {
    font-size: 55px;
}

h2 {
    font-size: 26px;
}

p {
    font-family: "Outfit", serif;
    font-size: 18px;
    font-weight: 100;
}

a {
    text-decoration: none;
    color: inherit;
}

@font-face {
    font-family: 'AlbraSans';
    src: url('./font/AlbraSans-Light.otf') format('opentype');
    font-weight: 500;
    font-style: normal;
}

/* Import Quicksand */
@import url('https://fonts.googleapis.com/css2?family=Quicksand:wght@300;400;500&display=swap');


/* Container and columns */

.container {
    width: 100vw;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}

.row {
    display: flex;
    flex-wrap: wrap;
}

.col {
    flex: 1;
    box-sizing: border-box;
}

.col-1 {
    width: 8.33%;
}

.col-2 {
    width: 16.66%;
}

.col-3 {
    width: 25%;
}

.col-4 {
    width: 33.33%;
}

.col-5 {
    width: 41.66%;
}

.col-6 {
    width: 50%;
}

.col-7 {
    width: 58.33%;
}

.col-8 {
    width: 66.66%;
}

.col-9 {
    width: 75%;
}

.col-10 {
    width: 83.33%;
}

.col-11 {
    width: 91.66%;
}

.col-12 {
    width: 100%;
}

/* Navigation */

nav {
    width: 100%;
    padding: 1.6rem;
    box-sizing: border-box;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 10;
}

#nav-logo img {
    height: 60px;
}

/* Header section */

.hero {
    height: 64vh;
    background: url("./Assets/bg-underwater.jpg") center/cover no-repeat;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    padding: 32px;
}

.hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.45));
}

.hero-wrapper {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 60px;
    z-index: 2;
}

.avatar {
    width: 220px;
    height: 220px;
}

.avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Zone texte */
.hero-text {
    max-width: 600px;
}

/* Titre = AlbraSans */
.hero-text h1 {
    font-family: 'AlbraSans';
    font-weight: 500;
    font-size: 85px;
    margin: 0;
    color: white;
}

/* Paragraphe = Quicksand */
.hero-text p {
    font-family: 'Quicksand', sans-serif;
    font-size: 22px;
    font-weight: 300;
    margin-top: 10px;
    margin-bottom: 30px;
    color: #e7e7e7;
}

/* Icônes */
.social-links {
    display: flex;
    gap: 22px;
}

.social-link {
    font-size: 26px;
    opacity: 0.7;
    transition: .3s;
}

.social-link:hover {
    opacity: 1;
    transform: scale(1.15);
}


/* Avatar circulaire */
.avatar {
    width: 180px;
    height: 180px;
    overflow: hidden;
    margin-bottom: 24px;
}

.avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}



/* Icônes sociales */
.social-links {
    display: flex;
    gap: 24px;
}

.social-link img {
    width: 28px;
    opacity: 0.6;
    transition: .3s ease;
}

.social-link:hover img {
    opacity: 1;
    transform: scale(1.1);
}


.about {
    background-color: #ffffff08;
    background-image: url(./Assets/bg-underwater.jpg);
    background-size: cover;
    padding: 48px;
    border-radius: 32px;
}

.about img {
    margin-top: -100px;
}

.social-links {
    display: flex;
    gap: 32px;
    opacity: .5;
}

.social-link:hover {
    opacity: 1;
}

/* ----- SECTION CATÉGORIES ----- */

.categories {
    background: #FCFBFA;
    margin: auto;
    padding: 120px 0;
}

.categories-wrapper {
    max-width: 1200px;
    margin: auto;
    padding: 0 32px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 50px;
    flex-wrap: wrap;
}

.category-card {
    min-width: 300px;
    height: 380px;
    border-radius: 24px;
    background-size: cover;
    background-position: center;
    position: relative;
    cursor: pointer;
    overflow: hidden;
    transition: transform .4s ease;
}

/* Overlay noir 30% */
.category-card::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.30);
}

/* Texte */
.category-card span {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'AlbraSans';
    font-weight: 500;
    font-size: 32px;
    color: white;
    z-index: 2;
}

/* Effet hover */
.category-card:hover {
    transform: scale(1.05);
}

/* ----- SECTION VIDÉO ----- */

/* Fond plein */
.video-section {
    background: #FCFBFA;
    padding: 120px 0;
}

/* Conteneur aligné avec les catégories */
.video-wrapper {
    max-width: 1200px;
    margin: auto;
    padding: 0 120px;
}

.section-title {
    font-family: 'AlbraSans';
    font-size: 52px;
    color: #6D8881;
    margin-bottom: 8px;
}

.section-subtitle {
    font-family: 'Quicksand', sans-serif;
    font-weight: 300;
    font-size: 20px;
    color: #6D8881;
    margin-bottom: 60px;
}

/* Grille */
.video-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 45px 50px;
}

.video-item img {
    width: 100%;
    height: 50vh;
    object-fit: cover;
    border-radius: 16px;
    display: block;
}

.video-item.video-large img {
    height: 340px;
    grid-column: span 2;
}

.video-caption {
    margin-top: 12px;
    font-family: 'AlbraSans';
    font-size: 20px;
    color: #6D8881;
}

.video-img-container {
    width: 100%;
    height: 360px;
    border-radius: 16px;
    overflow: hidden;
    position: relative;
}

/* Image */
.video-img-container img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s ease;
}

/* Zoom au hover */
.video-img-container:hover img {
    transform: scale(1.05);
}

/* Image large */
.video-item.video-large {
    grid-column: span 2;
    /* occupe toutes les colonnes */
}

.video-item.video-large .video-img-container {
    height: 340px;
}

/* Caption */
.video-caption {
    margin-top: 12px;
    font-family: 'AlbraSans';
    font-size: 1.6rem;
    color: #6D8881;
}

/* responsive video grid — simple + minimal */
@media (max-width: 720px) {
    .video-grid {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    /* large item becomes full-width on mobile */
    .video-item.video-large {
        grid-column: span 1;
    }

    /* let images size naturally (preserve aspect) */
    .video-img-container,
    .video-item img {
        height: auto;
    }
}

/* ----- SECTION PHOTO ----- */

.photo-section {
    background: #FCFBFA;
    padding: 32px 0;
}

.photo-wrapper {
    max-width: 1200px;
    margin: auto;
    padding: 0 120px;
}

/* Masonry gallery */
.photo-gallery {
    column-count: 3;
    column-gap: 28px;
}

.photo-item {
    margin-bottom: 28px;
    position: relative;
    break-inside: avoid;
}

.photo-item {
    position: relative;
    margin-bottom: 28px;
    break-inside: avoid;
    border-radius: 18px;
    overflow: hidden;
    /* Empêche le débordement */
}

.photo-item img {
    width: 100%;
    display: block;
    object-fit: cover;
    transition: transform .45s ease;
    /* Zoom */
}


/* léger zoom au hover */
.photo-item:hover img {
    transform: scale(1.04);
}

/* Items avec légende au centre */
.photo-item.has-caption {
    position: relative;
}

.photo-item.has-caption::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.25);
    border-radius: 18px;
    transition: .4s ease;
}

.photo-item.has-caption:hover::after {
    background: rgba(0, 0, 0, 0.35);
}

.photo-caption {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'AlbraSans';
    font-size: 22px;
    color: white;
    text-align: center;
    padding: 0 12px;
    z-index: 2;
}

/* Responsive for photo gallery */

@media (max-width: 900px) {
    .photo-gallery {
        column-count: 2;
        column-gap: 20px;
    }
}

@media (max-width: 480px) {
    .photo-gallery {
        column-count: 1;
        column-gap: 16px;
    }

    .photo-item img {
        width: 100%;
        height: auto;
        border-radius: 12px;
    }
}

/* ----- SECTION GRAPHISME ----- */

.graphisme-section {
    background: #FCFBFA;
    padding: 120px 0;
}

.graphisme-wrapper {
    max-width: 1200px;
    margin: auto;
    padding: 0 120px;
}

.graphisme-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
    margin-top: 60px;
}

.graphisme-card {
    border-radius: 18px;
    overflow: hidden;
    position: relative;
}

.graphisme-card img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform .45s ease;
}

/* Hover */
.graphisme-card:hover img {
    transform: scale(1.04);
}

/* Repsonsive pour graphisme */

@media (max-width: 700px) {
    .graphisme-grid {
        grid-template-columns: 1fr;
    }

    .graphisme-card img {
        height: auto;
    }
}

/* ----- FOOTER ----- */

.footer {
    background: #FCFBFA;
    border-top: 1px solid #E7E4E0;
    padding: 40px 32px;
}

.footer-content {
    max-width: 1200px;
    margin: auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
}

.footer p {
    font-family: 'Quicksand', sans-serif;
    font-size: 14px;
    color: #6B8B81;
}

.footer-links {
    display: flex;
    gap: 28px;
    align-items: center;
}

.footer-links a {
    font-family: 'Quicksand', sans-serif;
    font-size: 14px;
    color: #6B8B81;
    text-decoration: none;
    transition: .25s;
}

.footer-links a:hover {
    opacity: .6;
}

/* PAGE INTERVIEW */

:root {
    --inter-small-w: 500px;
    --inter-large-w: 1040px;
    --inter-h: 530px;
    --inter-gap: 20px;
}

.interviews-header {
    position: relative;
    width: 100%;
    height: 380px;
    background: url('./Assets/header-interviews.jpg') center/cover no-repeat;
}

.interviews-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.30);
}

.interviews-title {
    position: absolute;
    bottom: 40px;
    left: 70px;
    font-family: 'AlbraSans';
    font-size: 72px;
    color: white;
}

/* STRUCTURE : contenair aligné à la largeur de la grande carte pour garder les mêmes bords */
.interviews-wrapper {
    max-width: var(--inter-large-w);
    /* crée les mêmes bords que la carte "Vigneron" */
    margin: 0 auto;
    padding: 80px 20px;
    background: #FCFBFA;
    box-sizing: border-box;
}

.interviews-subtitle {
    font-family: 'AlbraSans';
    font-size: 40px;
    color: #A37E6F;
    margin-bottom: 40px;
}

/* CONTEXTE + APNÉE : grille avec colonne de contexte + colonne de petite carte */
.interviews-grid {
    display: grid;
    grid-template-columns: 1fr var(--inter-small-w);
    gap: var(--inter-gap);
    margin-bottom: 70px;
    align-items: start;
    /* top-aligned */
    width: 100%;
    box-sizing: border-box;
}

/* forcer hauteur identique au contexte */
.interviews-context {
    background: rgba(163, 126, 111, 0.08);
    padding: 32px;
    border-radius: 18px;
    font-family: 'Quicksand', sans-serif;
    font-size: 16px;
    line-height: 1.6;
    color: #6F615A;
    height: var(--inter-h);
    overflow-y: auto;
}

.interviews-context h3 {
    font-family: 'AlbraSans';
    color: #A37E6F;
    margin-bottom: 16px;
}

.playlist-button {
    margin-top: 20px;
    display: inline-block;
    background: #A37E6F;
    color: white;
    padding: 10px 20px;
    border-radius: 12px;
    text-decoration: none;
}

/* CARTES — tailles fixes, images recadrées */
.interviews-card {
    position: relative;
    display: block;
    border-radius: 18px;
    overflow: hidden;
    width: var(--inter-small-w);
    height: var(--inter-h);
    box-sizing: border-box;
}

.interviews-card::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.30);
    /* masque 30% */
    z-index: 1;
    transition: background .25s ease, opacity .25s ease;
}

/* la carte large prend toute la largeur du wrapper (mêmes bords) */
.interviews-card.wide {
    width: 100%;
    height: var(--inter-h);
    margin: 40px 0;
    display: block;
    border-radius: 18px;
    overflow: hidden;
}

/* images recadrées (object-fit) */
.interviews-card img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    z-index: 0;
    transition: transform .5s ease;
}

.interviews-card:hover img {
    transform: scale(1.05);
}

.interviews-label {
    position: absolute;
    z-index: 2;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    pointer-events: none;
    transition: transform .25s ease, opacity .2s ease;
    font-family: 'AlbraSans';
    font-size: 32px;
    opacity: 1;
}


.interviews-row {
    display: flex;
    gap: var(--inter-gap);
    justify-content: center;
    align-items: stretch;
    flex-wrap: nowrap;
    /* côte à côte sur larges écrans */
    width: calc(var(--inter-small-w) * 2 + var(--inter-gap));
    /* 500*2 + 20 = 1020px */
    max-width: 100%;
    margin: 20px auto 0;
    box-sizing: border-box;
}

/* responsive : passe tout en pleine largeur sur petits écrans */
@media (max-width: 1140px) {
    .interviews-wrapper {
        padding: 40px 20px;
    }

    .interviews-grid {
        grid-template-columns: 1fr;
    }

    .interviews-row {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: var(--inter-gap);
        justify-items: center;
    }

    .interviews-card,
    .interviews-card.wide,
    .interviews-context {
        width: 100%;
        height: auto;
    }

    .interviews-card img {
        height: auto;
        aspect-ratio: 500 / 530;
    }

    .interviews-title {
        position: absolute;
        bottom: 40px;
        left: 70px;
        font-family: 'AlbraSans';
        font-size: 72px;
        color: white;
    }
}

/* ----- PAGE REPORTAGES ----- */

/* Conteneur principal aligné comme le reste du site */
.report-wrapper {
    max-width: 1200px;
    margin: auto;
    padding: 80px 120px;
}

/* Section contexte + première miniature */
.report-section-top {
    display: grid;
    grid-template-columns: 1.2fr 1.8fr;
    gap: 48px;
    margin-bottom: 80px;
}

/* Bloc contexte */
.report-context {
    background: rgba(163, 126, 111, 0.08);
    padding: 32px 40px;
    border-radius: 18px;
}

.report-context h2 {
    font-family: 'AlbraSans';
    font-size: 28px;
    color: #A37E6F;
    margin-bottom: 18px;
}

.report-context p {
    font-family: 'Quicksand', sans-serif;
    font-size: 17px;
    line-height: 1.55;
}

/* Miniatures : grille */
.report-thumbs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
}

/* Grande miniature Suisse */
.report-thumb-wide {
    grid-column: span 2;
}

/* Carte miniature cliquable */
.report-thumb {
    position: relative;
    display: block;
    border-radius: 22px;
    overflow: hidden;
    cursor: pointer;
}

/* Image */
.report-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .45s ease;
}

/* Masque noir 30% */
.report-thumb::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.25);
    transition: .35s ease;
}

/* Titre sur l'image */
.report-thumb span {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'AlbraSans';
    font-size: 32px;
    color: white;
    z-index: 2;
    pointer-events: none;
}

/* Effet hover */
.report-thumb:hover img {
    transform: scale(1.05);
}

.report-thumb:hover::before {
    background: rgba(0, 0, 0, 0.35);
}


/* Responsive */
@media (max-width: 900px) {
    .report-section-top {
        grid-template-columns: 1fr;
    }

    .reportages-wrapper {
        padding: 60px 32px;
    }

    .report-thumbs {
        grid-template-columns: 1fr;
    }

    .report-thumb-wide {
        grid-column: span 1;
    }
}