@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&display=swap');

@font-face {
    font-family: 'Kollektif';
    src: url('fonts/Kollektif.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: 'Kollektif';
    src: url('fonts/Kollektif-Italic.ttf') format('truetype');
    font-weight: normal;
    font-style: italic;
}

@font-face {
    font-family: 'Kollektif';
    src: url('fonts/Kollektif-BoldItalic.ttf') format('truetype');
    font-weight: bold;
    font-style: italic;
}

:root {
--primary-color: #1b242c;
--t: 1px;    /* thickness of grid lines */
--s: 20px;   /* size of grid squares */
}

body {
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Kollektif';
    color: #1a332b;
    overflow-wrap: break-word;
}

.logo-conteneur {
    display: flex;
    justify-content: center;
}

.logo-conteneur img{
    width: 15%;
}

h2{
    display: flex;
    justify-content: center;
}

h1{
    display: inline-block;
    padding: 12px;
    width: 120px;
    z-index: 1;
}

.arrière-plan-quadrillage {
    position: relative;
    transform-style: preserve-3d;
    display: inline-block;
    background: white;
    padding: 5px 5px;
    border: 3px solid black;
}

.arrière-plan-quadrillage h1 {
    margin: 0;
    text-align: center;
    font-size: 24px;
    font-weight: bold;
}


/* Quadrillage sur le côté droit */
.arrière-plan-quadrillage::before {
    --s: 80px;  /* control the size of the grid */
    --t: 2px;   /* the thickness */
    background:  
      conic-gradient(from 90deg at var(--t) var(--t),#0000 25%,black 0)
       0 0/var(--s) var(--s);
    /* you probably don't need to set any size in your case */
    width: calc(round(down,104%,var(--s)) + var(--t));
    height: calc(1*var(--s) + var(--t));
    background-size: 20px 20px;
    content: "";
    position: absolute;
    inset: 0px;
    transform: translate3d(16px,25px,-1px);   
}
.ligne-pointillee {
    position: relative;
    border: none;
    border-top: 2px dashed black;
    margin: 20px 0;
    bottom: 50px;
    z-index: -1;    
}

.section-titre {
    margin-bottom: 0;
}

.vin-liste, .vin-rouge-liste, .blouges, .menu-section-bière, .soft-liste, .menu-section-digeo, .infos-section {
    list-style: none;
    box-sizing: border-box;
    padding: clamp(10px, 3vw, 20px);
    margin-top: 0;
    border: 2px solid black;
    justify-content: center;
    width: 100%;
    max-width: 800px;
}


.vin-liste li, .bière-liste-special li, .cidre-liste li, .vin-rouge-liste li, .soft-liste li, .blouges li, .dalle-liste li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 0;
    flex-wrap: nowrap; /* Empêche le retour à la ligne pour l'ensemble */
    gap: 10px;
}

.vin-nom, .bière-nom, .cidre-nom, .soft-nom, .dalle-nom{
    flex-grow: 1; /* Permet au nom de prendre tout l'espace disponible */
    min-width: 0; /* Empêche le débordement */
    overflow-wrap: break-word; /* Permet au texte de passer à la ligne si nécessaire */
    overflow: hidden; /* Cache le texte qui dépasse */
    text-overflow: ellipsis; /* Ajoute des points de suspension si le texte est trop long */
}

.vin-producteur, .bière-producteur, .cidre-producteur, .soft-options, .soft-producteur, .dalle-options {
    color: #1a332b;
    font-style: italic;
    font-size: clamp(12px, 2vw, 14px);
}

.vin-prix, .bière-prix, .cidre-prix, .soft-prix, .dalle-prix {
    flex-shrink: 0; /* Empêche le prix de rétrécir */
    white-space: nowrap; /* Empêche le retour à la ligne pour les prix */
    display: flex;
    font-size: clamp(14px, 2.5vw, 16px);
}

.description, .bière-description, .cidre-description, .dalle-description {
    font-family: 'IBM Plex Mono', monospace;
    font-style: italic;
    font-size: x-small;
    margin: 0;
}

.section-titre-unique {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center; /* Assure que le texte reste centré */
    width: 100%;/* Prend toute la largeur du conteneur */
    height: 200px;
    box-sizing: border-box; /* Évite que le padding n'affecte la largeur */
}

.hr-vertical{
    width: 2px; /* Épaisseur de la ligne */
    height: 300px; /* Hauteur de la ligne */
    background-color: black; /* Couleur de la ligne */
    border: none;
    margin: 2%;
}

.vin-rouge-liste{
    border: none;
}

.blouges-bulles{
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 30px;
    justify-content: center;
}

.blouges{
    border: none;
}

/* Organisation des vins rouges */
.vin-rouge-conteneur {
    display: flex;
    gap: 0; /* Réduit l'espace pour permettre la ligne verticale */
    justify-content: space-between;
    margin: 20px 0;
}

.colonne-vin {
    flex: 1;
    padding: 10px;
}

/* Ajustement de la ligne verticale */
.colonne-vin:first-child {
    border-right: none;
}

.colonne-vin:last-child {
    border-left: none;
}

.vin-rouge-conteneur .hr-vertical {
    margin: 0;
    height: auto; /* S'adapte à la hauteur du conteneur */
    align-self: stretch;
}

/* Amélioration de la structure générale */
.menu-section-vin {
    margin-bottom: 30px;
}

.section-conteneur {
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px;
}

.section-conteneur#dalle, .section-conteneur#digeo {
    margin: 0px;
    padding: 0;
}
.section-conteneur#digeo{
    display: flex;
    flex-direction: column;
}

.intro-section {
    margin-bottom: 40px;
    text-align: center;
}

/* Structure en grille */
.menu-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
    margin: 2rem 0;
}

.à-côté{
    display: flex;
    justify-content: center;
    gap: 20px;
    padding: 20px;
}

.vertical-cidre{
    margin: 0;
    height: auto;
    align-self: stretch;
}

.colonne-gauche,
.colonne-droite {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.section-complete {
    grid-column: 1 / -1;
    margin-top: 2rem;
}

.duo-sections {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
    margin-top: 2rem;
}

.collés{
    display: flex;
    justify-content: center;
    gap: 20px;
    padding: 20px;
}

.fin{
    display: flex;
    justify-content: center;
    gap: 20px;
}

.vraie-fin{
    display: flex;
    gap: 20px;
    flex-direction: column;
}

.quadrillage {
    --s: 80px;  /* control the size of the grid */
    --t: 3px;   /* the thickness */
  
    background:  
      conic-gradient(from 90deg at var(--t) var(--t),#0000 25%,black 0)
       0 0/var(--s) var(--s);
    /* you probably don't need to set any size in your case */
    width: calc(round(down,110%,var(--s)) + var(--t));
    height: calc(4*var(--s) + var(--t));
}
.bière-grid{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
    margin-top: 2rem;
}

.quadrillage-bière{
    gap: 20px;
    --s: 80px;  /* control the size of the grid */
    --t: 3px;   /* the thickness */
  
    background:  
      conic-gradient(from 90deg at var(--t) var(--t),#0000 25%,black 0)
       0 0/var(--s) var(--s);
    /* you probably don't need to set any size in your case */
    width: calc(round(down,110%,var(--s)) + var(--t));
    height: calc(4*var(--s) + var(--t));
}

.avertissement {
    font-size: 0.8em;
    color: #1a332b;
    text-align: center;
    margin-top: 20px;
}


/* Amélioration de la réactivité */
@media (max-width: 768px) {
    .vin-rouge-conteneur {
        flex-direction: column;
    }
    
    .colonne-vin {
        margin-bottom: 20px;
    }

    .menu-grid {
        grid-template-columns: 1fr;
    }
    
    .duo-sections {
        grid-template-columns: 1fr;
    }
}

/* Responsive Design */
@media (max-width: 768px) {
    body {
        font-size: 14px;
        padding: 10px;
    }

    .logo-conteneur img {
        width: 30%;
    }

    .menu-grid {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .vin-liste, .bière-liste-special, .cidre-liste {
        padding: 10px;
    }

    .vin-producteur, .bière-producteur, .cidre-producteur {
        display: none; /* Cache les informations producteur en mobile */
    }

    .description {
        display: none; /* Cache les descriptions en mobile */
    }

    .arrière-plan-quadrillage::before,
    .arrière-plan-quadrillage::after {
        display: none; /* Supprime le quadrillage décoratif en mobile */
    }

    .côte-à-côte {
        flex-direction: column;
    }

    .hr-vertical {
        display: none;
    }

    .soft-options ul {
        padding-left: 15px;
    }

    .dalle-description {
        font-size: 12px;
    }

    .service-note {
        display: none; /* Cache les notes de service en mobile */
    }

    h1 {
        width: auto;
        padding: 8px;
    }

    .section-titre-unique {
        height: auto;
        padding: 15px;
    }

    .vin-rouge-conteneur {
        flex-direction: column;
    }

    .duo-sections {
        display: flex;
        flex-direction: column;
    }
}

/* Mode très petit écran */
@media (max-width: 480px) {
    .menu-conteneur {
        padding: 5px;
        margin: 0 auto;
        width: 95%;
    }

    .vin-liste li, .bière-liste-special li, .cidre-liste li, .vin-rouge-liste li {
        flex-direction: column;
        align-items: flex-start;
        gap: 5px;
    }

    .vin-prix, .bière-prix, .cidre-prix {
        align-self: flex-end;
    }

    .description, .bière-description, .cidre-description {
        width: 100%;
        font-size: 11px;
    }

    .vin-prix, .bière-prix, .cidre-prix {
        font-size: 1.1em;
    }

    .soft-options {
        font-size: 12px;
    }

    .dalle-options {
        padding-left: 10px;
    }
}

/* Style du sélecteur de langue */
.lang-selector {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 1000;
}

.lang-selector button {
    background-color: #1a332b;
    color: white;
    border: none;
    padding: 5px 10px;
    margin: 0 5px;
    cursor: pointer;
    border-radius: 3px;
    transition: all 0.3s ease;
}

.lang-selector button:hover {
    background-color: #2a433b;
}

.lang-selector button.active {
    background-color: #2a433b;
    border: 2px solid white;
}

@media (max-width: 768px) {
    .lang-selector {
        top: 10px;
        right: 10px;
    }
    
    .lang-selector button {
        padding: 3px 8px;
        font-size: 12px;
    }
}













