/* CSS styles for the website */

/*variables*/
:root {
  --primary-color: #0C2950;
  --secondary-color: #C8B46E;
  --white-color: #FFFFFF;
  --nav-h: 72px;

}  

html { scroll-behavior: smooth; }
html,
body {
    min-height: 100%;
}

body {
    min-height: 100vh;
    min-height: 100dvh;

    display: flex;
    flex-direction: column;
}

main {
    flex: 1;
}

body {
  font-family: 'Poppins', sans-serif;
  color: #070707;
  background: var(--white);
  line-height: 1.6;
  overflow-x: hidden;
  margin: 0;
  padding: 0;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ---- TYPOGRAPHIE ---- */
h1 {
  font-size: clamp(1.8rem, 3vw, 2.3rem);
  font-weight: 700;
  line-height: 1.22;
  letter-spacing: -.01em;
}

h2 {
  font-size: clamp(1.3rem, 2.2vw, 1.875rem);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -.01em;
}

h3 {
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.4;
}

p {
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.75;
  color: #ffffff;
}

/* ---- LAYOUT ---- */
.c {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 1rem;
}


/* ---- BOUTONS ---- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  padding: .75rem 1.75rem;
  border-radius: 10px;
  font-family: 'Inter', sans-serif;
  font-size: .9rem;
  font-weight: 600;
  cursor: pointer;
  border: 1.8px solid transparent;
  transition: all .2s ease;
  
}


#navbar{
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;

    transition: transform .35s ease;
}

#navbar.nav-hidden{
    transform: translateY(-100%);
}


.btn-nav{
  background: #C8B46E;
  color: white;
  font-weight: 900;
}
.btn-nav:hover { 
  transform: translateY(-2px);
}

.btn-outline {
  background: var(--primary-color);
  color: white;
}
.btn-outline:hover { 
  transform: translateY(-2px);
}

.btn-outline2 {
  background: none;
  border: 1.8px solid var(--secondary-color);
  color: rgb(0, 0, 0);
}
.btn-outline2:hover { 
  transform: translateY(-2px);
}

/* ---- LOGO ---- */

.logo-text {

  color: #c8b46e;
  font-weight: 700;
  font-size: 20px;
  line-height: 1;
  letter-spacing: 0.15em;
  font-style: italic;

}
.logo-text{
    cursor: pointer;
}

/* ---- NAVIGATION ---- */
.nav-links {
  display: flex;
  gap: 2rem;
  list-style: none;
  margin: 0;
  padding: 0;

  } 

  .nav-links a{
    text-decoration:none;
    color: var(--white-color);
    font-weight:500;
}

  .navbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: var(--nav-h);
    padding: 0 2rem;
    background-color:#071732;
  } 



/* ==================================
   SECTION CONTACT
================================== */

.contact-section{
    display:grid;
    grid-template-columns:1.2fr 1fr;
    width:100%;
}

.contact-person{
    margin-bottom: 10px;
    font-size: 1.05rem;
    line-height: 1.5;
    color: #222;
}

.contact-person strong{
    display: block;
    font-size: 1.25rem;
    font-weight: 700;
    color: #000;
}

/* =====================
   PARTIE GAUCHE
===================== */

.contact-left{
    position: relative;
    overflow: hidden;

    background:
        linear-gradient(rgba(255,255,255,.88), rgba(255,255,255,.88)),
        url("https://res.cloudinary.com/dhmehfgjo/image/upload/v1783519638/Alpes.jpg");

    background-size: cover;
    background-position: center bottom;

    padding: 30px 45px;
}
.contact-overlay{
    max-width:520px;
}

.contact-left h2{

    margin-bottom: 20px;

    color:#111;

    font-family:"Poppins",sans-serif;
    font-size:2rem;
    font-weight:800;
    line-height:1.2;
}

.contact-left h2 span{
    color:#C8B46E;
}

.contact-left p{

    margin:0px 0 20px 0px;

    color:#333;

    font-family:"Poppins",sans-serif;
    line-height:1.6;
}

.contact-info{
    display:flex;
    flex-direction:column;
    gap:15px;
    margin-top:45px;
}
.contact-info a{
    display:flex;
    align-items:center;
    gap:18px;

    text-decoration:none;
    color:#111;
    font-weight:500;
}

.contact-info img{
    width:24px;
    height:24px;
    flex-shrink:0;
}
.contact-info a:hover{

    color:#C8B46E;
}

/* =====================
   PARTIE DROITE
===================== */

.contact-right{

    background:#071b3a;

    padding:30px 45px;
}

.contact-right h2{

    margin:35px 0 30px;

    color:#fff;

    font-family:"Poppins",sans-serif;
    font-size:1.4rem;
    font-weight:800;
}

.contact-form{
    width:100%;
}

.contact-row{

    display:grid;
    grid-template-columns:1fr 1fr;

    gap:15px;

    margin-bottom:15px;
}

.contact-form input,
.contact-form textarea{

    width:100%;

    border:none;
    outline:none;

    background:#29466f;

    color:#fff;

    padding:14px;

    font-family:"Poppins",sans-serif;
    font-size:.85rem;

    border-radius:5px;
}

.contact-form input[name="telephone"]{
    height: 55px;
    align-self: start;
} 
.contact-form textarea{

    min-height:130px;

    resize:none;
}

.contact-form input::placeholder,
.contact-form textarea::placeholder{

    color:#d6dce7;
}

/* Consentement */

.contact-consent{

    margin:20px 0;
}

.contact-consent label{

    display:flex;
    align-items:flex-start;
    gap:10px;
    flex-wrap: wrap;

    color:#fff;

    font-family:"Poppins",sans-serif;
    font-size:.72rem;
    line-height:1.5;
}

.contact-consent input{

    width:auto;

    margin-top:3px;

    accent-color:#C8B46E;
}

.contact-consent a{

    color:#C8B46E;

    text-decoration:none;
    display: contents;
}

.contact-consent a:hover{

    text-decoration:underline;
}

/* Bouton */

.contact-form button{

    padding:12px 20px;

    border:2px solid #C8B46E;

    background:#C8B46E;

    color:#fff;

    font-family:"Poppins",sans-serif;
    font-size:.85rem;
    font-weight:700;

    border-radius:5px;

    cursor:pointer;

    transition:.3s;
}

.contact-form button:hover{

    background:transparent;

    color:#C8B46E;
}

/* ==================================
   SECTION MÉDIAS
================================== */

.media-section {
  width: 100%;
  padding: 55px 30px;
  background: #071b3a;
}

.media-container {
  width: min(1200px, 100%);
  margin: 0 auto;
}

/* Titre */

.media-heading {
  margin-bottom: 35px;
}

.media-heading h2 {
  margin: 0;
  color: #ffffff;
  font-family: "Poppins", sans-serif;
  font-size: 2rem;
  font-weight: 800;
  line-height: 1.2;
}

.media-heading h2 span {
  color: #c8b46e;
}

/* Contenu général */

.media-content {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 45px;
  align-items: center;
}

/* Logos à gauche */

.media-logos {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 18px;
}

.media-logo {
  min-width: 0;
  height: 75px;
  padding: 12px;

  display: flex;
  align-items: center;
  justify-content: center;

  background: #ffffff;
  border-radius: 3px;
  text-decoration: none;

  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease;
}

.media-logo:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.3);
}

.media-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* ==================================
   SECTION TÉLÉCHARGEMENT
================================== */

.download-section{
    width:100%;
    background:#071b3a;
    padding:10px 0 80px 0;
}

.download-container{
    max-width:900px;
    margin:0 auto;
    text-align:center;
}

.download-container h2{
    margin:0 0 22px;
    margin-bottom: 35px;
    color:#fff;
    font-family:"Poppins",sans-serif;
    font-size:1.75rem;
    font-weight:800;
    line-height:1.3;
}

.download-container h2 span{
    color:#fff;
}

.form-message{

    margin-top:18px;

    text-align:center;

    font-family:"Poppins",sans-serif;

    font-size:.85rem;

    font-weight:600;

}

.form-message.success{

    color:#2E8B57;

}

.form-message.error{

    color:#d63c3c;

}

/* ==========================
   FOOTER
========================== */

.footer{
    background:#071732;
    border-top:1px solid rgba(200,180,110,.25);
    padding:28px 6% 18px;
}

.footer-container{
    max-width:1400px;
    margin:0 auto;

    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:30px;

    padding-bottom:22px;
}

.footer-brand h3{
    margin:0;

    color:#fff;
    font-family:"Poppins", sans-serif;
    font-size:1.1rem;
    font-weight:800;
    letter-spacing:1px;
}

.footer-brand p{
    margin:6px 0 0;

    color:rgba(255,255,255,.7);
    font-family:"Poppins", sans-serif;
    font-size:.8rem;
}

.footer-links{
    display:flex;
    gap:28px;
    flex-wrap:wrap;
}

.footer-links a{
    color:rgba(255,255,255,.8);
    text-decoration:none;

    font-family:"Poppins", sans-serif;
    font-size:.8rem;

    transition:.25s;
}

.footer-links a:hover{
    color:#c8b46e;
}

.footer-bottom{
    max-width:1400px;
    margin:0 auto;

    padding-top:18px;

    border-top:1px solid rgba(255,255,255,.08);

    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    flex-wrap:wrap;
}

.footer-bottom p{
    margin:0;

    color:rgba(255,255,255,.55);

    font-family:"Poppins", sans-serif;
    font-size:.72rem;
}

.footer-bottom a{
    color:#c8b46e;
    text-decoration:none;
}

.footer-bottom a:hover{
    text-decoration:underline;
}


/* =========================
   NAVBAR DESKTOP
========================= */

.navbar {
    display: flex;
    justify-content: space-between;
    align-items: center;

    height: var(--nav-h);
    padding: 0 2rem;

    background-color: #071732;
}

.logo-text {
    flex-shrink: 0;

    color: #c8b46e;
    font-weight: 700;
    font-size: 20px;
    line-height: 1;
    letter-spacing: 0.15em;
    font-style: italic;
}

.nav-menu {
    display: contents;
}

.nav-links {
    display: flex;
    gap: 2rem;

    margin: 0;
    padding: 0;

    list-style: none;
}

.nav-links a {
    color: var(--white-color);
    font-weight: 500;
    text-decoration: none;
}

.btn-nav {
    flex-shrink: 0;

    background: #c8b46e;
    color: white;
    font-weight: 700;
}

.menu-toggle {
    display: none;
}

/* =========================================================
   RESPONSIVE GLOBAL
   Ordinateur / Tablette / Téléphone
========================================================= */

/* Empêche les padding et bordures d'agrandir les éléments */
*,
*::before,
*::after {
    box-sizing: border-box;
}



/* =========================================================
   TABLETTE
   De 769px à 1024px
========================================================= */

@media screen and (max-width: 1024px) {

    .navbar {
        padding: 0 2rem;
    }

    .logo-text {
        font-size: 16px;
        margin-right: 24px;
    }

    .nav-menu {
        flex: 1;
        justify-content: center;
        gap: 14px;
    }

    .nav-links {
        gap: 14px;
    }

    .nav-links a {
        font-size: 0.72rem;
        white-space: nowrap;
    }

    .btn-nav {
        padding: 0.6rem 0.85rem;
        font-size: 0.65rem;
        white-space: nowrap;
    }

}

/* =========================================================
   TÉLÉPHONE ET PETITE TABLETTE
   Jusqu'à 768px
========================================================= */

@media screen and (max-width: 768px) {

    /* =========================
       NAVBAR MOBILE
    ========================= */

    .navbar {
        position: fixed;

        display: flex;
        align-items: center;
        justify-content: space-between;

        height: 68px;
        padding: 0 20px;
    }

    .logo-text {
        position: relative;
        z-index: 1002;

        font-size: 17px;
    }

    /* Bouton burger */

    .menu-toggle {
        position: relative;
        z-index: 1002;

        display: block;

        width: 42px;
        height: 42px;
        padding: 7px;

        color: #ffffff;
        background: transparent;
        border: none;

        cursor: pointer;
    }

    .menu-toggle span {
        display: block;

        width: 100%;
        height: 2px;
        margin: 6px 0;

        background: currentColor;
        border-radius: 5px;

        transition:
            transform 0.3s ease,
            opacity 0.3s ease;
    }

    /* Menu déroulant */

    .nav-menu {
        position: absolute;
        top: 100%;
        left: 0;

        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 20px;

        width: 100%;
        max-height: 0;
        padding: 0 20px;

        overflow: hidden;

        background: #071732;
        border-top: 1px solid rgba(255, 255, 255, 0.1);

        opacity: 0;
        visibility: hidden;

        transition:
            max-height 0.35s ease,
            padding 0.35s ease,
            opacity 0.25s ease,
            visibility 0.25s ease;
    }

    /* Menu ouvert */

    .navbar.menu-open .nav-menu {
        max-height: 600px;
        padding: 20px 20px 28px;

        opacity: 1;
        visibility: visible;
    }

    .nav-links {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 0;

        width: 100%;
    }

    .nav-links li {
        width: 100%;
    }

    .nav-links a {
        width: 100%;
        padding: 14px 0;

        color: #ffffff;
        font-size: 0.88rem;

        border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    }

    .nav-links a:hover {
        color: var(--secondary-color);
    }

    .btn-nav {
        width: 100%;
        min-height: 46px;
        padding: 12px 18px;

        font-size: 0.8rem;
    }

    /* Animation burger vers croix */

    .navbar.menu-open .menu-toggle span:nth-child(1) {
        transform: translateY(8px) rotate(45deg);
    }

    .navbar.menu-open .menu-toggle span:nth-child(2) {
        opacity: 0;
    }

    .navbar.menu-open .menu-toggle span:nth-child(3) {
        transform: translateY(-8px) rotate(-45deg);
    }


    /* =========================
       SECTION CONTACT GLOBALE
    ========================= */

    .contact-section {
        grid-template-columns: 1fr;
    }

    .contact-left,
    .contact-right {
        padding: 45px 25px;
    }

    .contact-overlay {
        max-width: 100%;
    }

    .contact-left h2 {
        font-size: 1.65rem;
    }

    .contact-right h2 {
        font-size: 1.3rem;
    }

    .contact-row {
        grid-template-columns: 1fr;
    }

    .contact-form input[name="telephone"] {
        height: auto;
    }


    /* =========================
       SECTION MÉDIAS
    ========================= */

    .media-section {
        padding: 45px 25px;
    }

    .media-content {
        grid-template-columns: 1fr;
        gap: 35px;
    }

    .media-logos {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .media-heading h2 {
        font-size: 1.65rem;
    }


    /* =========================
       TÉLÉCHARGEMENT
    ========================= */

    .download-section {
        padding: 10px 25px 60px;
    }

    .download-container {
        width: 100%;
    }

    .download-container h2 {
        font-size: 1.45rem;
    }


    /* =========================
       FOOTER MOBILE
    ========================= */

    .footer {
        padding: 30px 22px 20px;
    }

    .footer-container {
        flex-direction: column;
        align-items: flex-start;
        gap: 25px;

        padding-bottom: 25px;
    }

    .footer-links {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    .footer-bottom {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }

}


/* =========================================================
   PETIT TÉLÉPHONE
   Jusqu'à 480px
========================================================= */

@media screen and (max-width: 480px) {

    /* Navbar */

    .navbar {
        height: 64px;
        padding: 0 16px;
    }

    .logo-text {
        font-size: 15px;
        letter-spacing: 0.12em;
    }

    .menu-toggle {
        width: 40px;
        height: 40px;
    }

    .navbar.menu-open .nav-menu {
        padding: 15px 16px 24px;
    }

    .nav-links a {
        padding: 13px 0;
        font-size: 0.82rem;
    }


    /* Titres et textes */

    h1 {
        font-size: 1.75rem;
    }

    h2 {
        font-size: 1.4rem;
    }

    p {
        font-size: 0.92rem;
        line-height: 1.65;
        color: #FFFF
    }


    /* Contact */

    .contact-left,
    .contact-right {
        padding: 38px 18px;
    }

    .contact-left h2 {
        font-size: 0.95rem;
    }

    .contact-info {
        gap: 20px;
        margin-top: 30px;
    }

    .contact-info a {
        gap: 12px;
        font-size: 0.85rem;
        overflow-wrap: anywhere;
    }

    .contact-form input,
    .contact-form textarea {
        padding: 13px;
        font-size: 0.8rem;
    }

    .contact-form button {
        width: 100%;
    }


    /* Médias */

    .media-section {
        padding: 38px 18px;
    }

    .media-logos {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }

    .media-logo {
        height: 68px;
        padding: 10px;
    }


    /* Téléchargement */

    .download-section {
        padding: 10px 18px 50px;
    }

    .download-container h2 {
        font-size: 1.3rem;
    }


    /* Footer */

    .footer {
        padding: 28px 18px 18px;
    }

    .footer-brand h3 {
        font-size: 1rem;
    }

    .footer-brand p,
    .footer-links a {
        font-size: 0.76rem;
    }

    .footer-bottom p {
        font-size: 0.68rem;
    }

}

/* Réseaux sociaux */

.contact-social{
    margin-top:10px;
}

.contact-social__title{
    font-size:16px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:2px;
    color:#0b1d3a;
    margin-bottom:16px;
}

.contact-social__links{
    display:flex;
    align-items:center;
    gap:16px;
}

.contact-social__links a{
    width:46px;
    height:46px;
    border:1.5px solid #D7BA63;
    border-radius:50%;
    display:flex;
    justify-content:center;
    align-items:center;
    transition:.25s ease;
}

.contact-social__links a:hover{
    background:#D7BA63;
    transform:translateY(-2px);
}

.contact-social__links img{
    width:22px;
    height:22px;
    transition:.25s ease;
}

.contact-social__links a:hover img{
    filter:brightness(0) saturate(100%) invert(12%) sepia(33%) saturate(1264%) hue-rotate(190deg) brightness(93%) contrast(96%);
}
.offer-mobile-card__head a,
.offer-mobile-card__head a:visited,
.offer-mobile-card__head a:active {
    color: inherit !important;
    text-decoration: none !important;
}
.offer-mobile-card__head p,
.offer-mobile-card__head p * {
    color: inherit !important;
    text-decoration: none !important;
    -webkit-text-fill-color: currentColor;
}