/*
Theme Name: Twenty Twenty-Five
Theme URI: https://wordpress.org/themes/twentytwentyfive/
Author: the WordPress team
Author URI: https://wordpress.org
Description: Twenty Twenty-Five emphasizes simplicity and adaptability. It offers flexible design options, supported by a variety of patterns for different page types, such as services and landing pages, making it ideal for building personal blogs, professional portfolios, online magazines, or business websites. Its templates cater to various blog styles, from text-focused to image-heavy layouts. Additionally, it supports international typography and diverse color palettes, ensuring accessibility and customization for users worldwide.
Requires at least: 6.7
Tested up to: 6.7
Requires PHP: 7.2
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: twentytwentyfive
Tags: one-column, custom-colors, custom-menu, custom-logo, editor-style, featured-images, full-site-editing, block-patterns, rtl-language-support, sticky-post, threaded-comments, translation-ready, wide-blocks, block-styles, style-variations, accessibility-ready, blog, portfolio, news
*/

/*
 * Link styles
 * https://github.com/WordPress/gutenberg/issues/42319
 */
a {
	text-decoration-thickness: 1px !important;
	text-underline-offset: .1em;
}

/* Focus styles */
:where(.wp-site-blocks *:focus) {
	outline-width: 2px;
	outline-style: solid;
}

/* Increase the bottom margin on submenus, so that the outline is visible. */
.wp-block-navigation .wp-block-navigation-submenu .wp-block-navigation-item:not(:last-child) {
	margin-bottom: 3px;
}

/* Increase the outline offset on the parent menu items, so that the outline does not touch the text. */
.wp-block-navigation .wp-block-navigation-item .wp-block-navigation-item__content {
	outline-offset: 4px;
}

/* Remove outline offset from the submenus, otherwise the outline is visible outside the submenu container. */
.wp-block-navigation .wp-block-navigation-item ul.wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	outline-offset: 0;
}

/*
 * Progressive enhancement to reduce widows and orphans
 * https://github.com/WordPress/gutenberg/issues/55190
 */
h1, h2, h3, h4, h5, h6, blockquote, caption, figcaption, p {
	text-wrap: pretty;
}

/*
 * Change the position of the more block on the front, by making it a block level element.
 * https://github.com/WordPress/gutenberg/issues/65934
*/
.more-link {
	display: block;
}


/* font */
@font-face {
    font-family: 'Suisse';
    src: url('fonts/SuisseIntl-Regular.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}


/* global */

html {
	margin-top: 0 !important;
}
/* galerie */

.galerie {
    column-count: 5;
    column-gap: 5px;
    margin: 0;
    padding: 0;;
}

@media (max-width: 768px) {
    .galerie {
        column-count: 2;
    }
}

@media (max-width: 1024px) and (min-width: 769px) {
    .galerie {
        column-count: 3;
    }
}


.galerie-item {
    display: inline-block;
    width: 100%;
    margin-bottom: 5px;
    padding: 0;
    vertical-align: top;
    break-inside: avoid;
    -webkit-column-break-inside: avoid;
    -moz-column-break-inside: avoid;
}

.galerie-item img,
.galerie-item video {
    display: block;              
    width: 100%;
    height: auto;
    margin: 0;
    padding: 0;
    object-fit: cover;
}

/* Font */
body {
    font-family: "Suisse", sans-serif;
    font-weight: 400;
    padding-top: 40px;
    padding-left: 5px;
}

/* Header */
.site-header {
    background-color: #fff;
    height: auto;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 9999;
    width: 100%;   
    padding-left : 3px;
    padding-right : 5px;
}
   


.header-inner {
    /* Enlever le centrage */
    max-width: 1200px;
    margin: 0;
    padding: 10px;
}

.header-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    margin: 0 auto;
    padding: 10px;
    align-items: center;
    width: 100%;
}

.header-item {
    font-size: 14px;
    font-weight: 500;
}

.header-item a {
    text-decoration: none;
    color: #888;
}

.header-item a:hover {
    color: #64ff96;
}

.header-item a.active {
    color: #000;
}

.main-nav ul {
    list-style: none;
    gap: 1.5rem;
    margin: 0;
    padding: 0;
}

.main-nav a {
    text-decoration: none;
    color: #888;
    font-weight: 500;
	margin-right: 100px;
	font-size: 14px;
}
.main-nav a:hover {
    color: #000;
}


@media (max-width: 768px) {
    body{
        padding-top: 94px;
        padding-left: 0;
    }
    .main-nav ul {
        flex-direction: column;  /* empile en colonne */
        align-items: flex-start; /* les liens restent alignés à gauche */
        gap: 0;                  /* retire l'espace horizontal, à vous d’ajuster */
    }

    .li_title {
        margin-right: 0;         /* retire l'espace auto pour ne pas « pousser » */
    }

    .header-grid {
        display: flex;
        flex-direction: column;
        gap: 0.5rem;
        align-items: flex-start;
    }
}

.galerie-item {
    position: relative; /* nécessaire pour positionner .overlay en absolu */
    overflow: hidden; /* empêche les vidéos ou images de dépasser du cadre */
}

.galerie-item img,
.galerie-item video {
    display: block;
    width: 100%;
    height: auto;
}

/* L'overlay (titre + date) */
.overlay {
    position: absolute;
    inset: 0; /* équivalent à top: 0; right: 0; bottom: 0; left: 0 */
    display: flex;
    flex-direction: column;
    justify-content: center; /* Centre verticalement */
    align-items: center; /* Centre horizontalement */
    padding: 20px;
    background-color: rgba(255, 255, 255, 1);
    opacity: 0;
    box-sizing: border-box;
}

.overlay h2,
.overlay p {
    color: #000;
    margin: 0;
    padding: 5px;
    text-align: center; /* Centre le texte horizontalement */
    font-size: 14px;
    width: 100%; /* Assure que le texte est bien centré sur toute la largeur */
}

.galerie-item:hover .overlay {
    opacity: 1; /* apparait au survol */
}


/* Conteneur principal */
.single-projet-container {
    display: grid;
    grid-template-columns: 1fr 2fr; /* 1 colonne étroite pour le texte, 1 colonne plus large pour les images */
}

/* Colonne de gauche */
.single-projet-left {
    display: flex;
    flex-direction: column;
    margin-left : 8px;
    margin-right: 20px;
}

/* Colonne de droite */
.single-projet-right {
    display: flex;
    flex-direction: column;
}

/* ===== GALERIE PROJET ===== */
.projet-gallery {
    margin-top: 50px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

/* Ligne avec 2 médias côte à côte - même hauteur, largeurs proportionnelles au ratio */
.projet-gallery .media-row {
    display: flex;
    gap: 2px;
}

/* Média côte à côte : flex-grow défini inline selon le ratio (width/height) */
.projet-gallery .media-row .media-item {
    flex-basis: 0;
    flex-shrink: 1;
    min-width: 0;
    /* flex-grow est défini inline via PHP selon le ratio du média */
}

.projet-gallery .media-row .media-item img,
.projet-gallery .media-row .media-item video {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Média pleine largeur */
.projet-gallery .media-item.media-full img,
.projet-gallery .media-item.media-full video {
    display: block;
    width: 100%;
    height: auto;
}

.projet-gallery img {
    display: block;
    width: 100%;
    break-inside: avoid;
    -webkit-column-break-inside: avoid;
    -moz-column-break-inside: avoid;
    margin: 0;
    padding: 0;
    margin-bottom: 2px;;
}

.projet-gallery video.projet-video {
    display: block;
    width: 100%;
    height: auto;
    margin: 0;
    padding: 0;
    margin-bottom: 2px;
}

.projet-video-wrapper {
    width: 100%;
    margin-bottom: 2px;
    break-inside: avoid;
    -webkit-column-break-inside: avoid;
    -moz-column-break-inside: avoid;
}

/* S'assurer que les images et vidéos dans la galerie de projet ont le même style */
.projet-gallery img, 
.projet-gallery .projet-video {
    display: block;
    width: 100%;
    break-inside: avoid;
    -webkit-column-break-inside: avoid;
    -moz-column-break-inside: avoid;
    margin: 0;
    padding: 0;
    margin-bottom: 2px;
}

.projet-infos, .credits {
    font-size : 14px;
    border-spacing:0px;
}

.credits tr td {
    vertical-align: top;
}

.credits tr td:first-child {
    white-space: nowrap;
    width: 1px; 
    text-align: left;
}

.credits tr td:last-child {
    padding-left: 8px;
}

.project-description {
    text-align: left;
    font-size:18px;
}

.project-links{
    font-size : 14px;
}
.project-links a {
    text-decoration: none;
    color: #888;
    font-weight: 500;
    margin-right: 20px;
}


/* Responsive : une seule colonne en mobile */
@media (max-width: 768px) {
    .single-projet-container {
        grid-template-columns: 1fr;
    }

    .single-projet-right {
        margin-top: 20px;
    }
    
    /* En mobile, les médias côte à côte passent en colonne */
    .projet-gallery .media-row {
        flex-direction: column;
    }
    
    .project-description {
        font-size: 22px;
    }
}


@media (min-width: 769px) {
    .single-projet-left {
        position: sticky;
        margin-top: 50px; /* Ajuste selon la hauteur de ton header */
        align-self: start;
        height: fit-content;
    }

    .single-projet-container {
        align-items: flex-start;
    }
}

/* about */

.about-grid {
    display: grid;
    grid-template-columns: repeat(20, 1fr);
    font-size: 14px;
    width:100%;
}

.about-col {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 10px;;
}

.about-col ul, .contact-col ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.about-img-placeholder {
    aspect-ratio: 1 / 1;
    width: 100%;
    max-width: 300px;
    height: auto;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.about-img-placeholder img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    display: block;
}


.about-title{
    height:25px;
    font-size: 14px;
}

.about-col5 li{
    margin-bottom: 20px;
}

.about-text{
    margin: 1px;;
}
.about-col1{
    grid-column: span 8;
}

.about-bio, .about-services, .about-clients{
    font-size:18px;
}

.about-col2{
    grid-column: span 2;

}

.about-col3 {
    grid-column: span 4;
}


.about-col4, .about-col5{
    grid-column: span 3;
}
@media (max-width: 768px) {
    .about-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }
    .about-col1{
        grid-column: span 2;
    }
    .about-col2, .about-col3, .about-col4, .about-col5{
        grid-column: span 1;
    }
}

.contact-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 3fr; /* colonne 3 deux fois plus large */
    font-size: 14px;
    width: 100%;
}


.contact-col {
    display: flex;
    flex-direction: column;
    gap: 0px;
    padding: 10px;
}

.contact-col3{
    padding-left: 8px;
}


@media (max-width: 768px) {
    .contact-col1 {
        grid-column: span 2;
    }

    .contact-col2 {
        grid-column: span 1;
    }

    .contact-col3 {
        grid-column: span 3;
    }
}

.contact-col1 ul li:hover {
    color: rgb(100, 255, 150);
}

/* Galerie vidéo - styles spécifiques */
.video-item {
    display: block;
    width: 100%;
    height: auto;
    margin: 0;
    padding: 0;
    object-fit: contain; /* Respecte les proportions d'origine */
}

.galerie-item video {
    width: 100%;
    height: auto;
}

.video-container {
    position: relative;
    width: 100%;
    height: 0;
    /* On enlève le padding-top fixe pour permettre aux vidéos de définir leur propre hauteur */
    overflow: hidden;
}

/* Style pour les textes de la page contact, aligné sur la page about */
.workflow-infos ul {
    list-style-type: none;
    padding-left: 0;
}

.workflow-infos ul li {
    font-size: 18px;
    display: grid;
    grid-template-columns: 25px 1fr;
    align-items: start;
}

.workflow-infos ul li .workflow-number {
    grid-column: 1;
    text-align: left;
}

.workflow-infos ul li .workflow-title {
    grid-column: 2;
}

.workflow-infos ul li small {
    font-size: 14px; /* Garder la description plus petite */
    grid-column: 2;
    display: block;
    margin-top: 2px;
}

.contact-info p, 
.contact-info a {
    font-size: 18px;
    line-height: 1.4;
}

/* Styles pour les liens dans les informations de contact */
.contact-info a {
    text-decoration: none;
    color: inherit;
}

.contact-info a:hover {
    color: #73ffa3;
}


.contact-name:hover,
.contact-phone:hover {
    color: #73ffa3;
}

/* Conserver la taille d'origine des titres */
.about-title {
    font-size: 14px;
    height: 25px;
}
