/* MARINA CONCIERGERIE - FEUILLE DE STYLE PRINCIPALE */

/* --- IMPORTATION DE POLICE --- */
@font-face {
    font-family: 'Blacksword';
    src: url('../fonts/Blacksword.woff2') format('woff2'),
         url('../fonts/Blacksword.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

/* --- VARIABLES DE COULEURS ET POLICES --- */
:root {
    --bleu-fonce: #064E7C;
    --vert: #579178;
    --orange: #F67A3E;
    --rouge: #D40229;
    --blanc: #FFFFFF;
    --gris-clair: #f8f9fa;
    --texte-couleur: #333333;
    --font-titre-special: 'Blacksword', cursive;
    --font-texte: 'Proza Libre', sans-serif;
}

/* --- STYLE GÉNÉRAL --- */
html {
    scroll-behavior: smooth;
}

body {
    font-family: var(--font-texte);
    color: var(--texte-couleur);
    background-color: var(--blanc);
    margin: 0;
    padding: 0;
    padding-top: 0px; 
    font-size: 15.5px;
    line-height: 1.6;
}

body.noverflow {
  overflow: hidden;
}

/* --- LOADER --- */
#loader {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: white;
  z-index: 999999;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.5s ease;
}
.spinner {
  animation: rotate 2s linear infinite;
  width: 50px;
  height: 50px;
}
.path {
  stroke: var(--orange);
  stroke-linecap: round;
  animation: dash 1.5s ease-in-out infinite;
}
@keyframes rotate { 100% { transform: rotate(360deg); } }
@keyframes dash { 0% { stroke-dasharray: 1, 150; stroke-dashoffset: 0; } 50% { stroke-dasharray: 90, 150; stroke-dashoffset: -35; } 100% { stroke-dasharray: 90, 150; stroke-dashoffset: -124; } }

/* --- BARRE DE SCROLL --- */
.top-bar {
  position: fixed;
  top: 0;
  left: 0;
  width: 0;
  height: 5px;
  background-color: var(--orange);
  z-index: 1001;
}

/* --- BARRE DE NAVIGATION --- */
.navbar {
    background-color: rgba(6, 78, 124, 0.9);
    backdrop-filter: blur(10px);
    padding: 10px 30px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: sticky; 
    top: 0;
    z-index: 1000;
    width: 100%;
    box-sizing: border-box;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
    flex-wrap: nowrap; /* Assure que les éléments ne retournent pas à la ligne */
}

.navbar-brand {
    color: var(--blanc);
    font-family: var(--font-titre-special);
    font-size: 2.2em;
    text-decoration: none;
    padding-top: 10px;
}

.navbar-links a {
    color: var(--blanc);
    text-decoration: none;
    margin: 0 12px;
    font-weight: 500;
    transition: color 0.3s ease;
    font-size: 0.9em;
    text-transform: uppercase;
}

.navbar-links a:hover {
    color: var(--orange);
}

.navbar-phone-button {
    background-color: var(--orange);
    color: var(--blanc);
    padding: 8px 18px;
    border-radius: 5px;
    font-weight: bold;
    text-decoration: none;
    transition: all 0.3s ease;
    font-size: 0.9em;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0 20px;
}

.navbar-phone-button:hover {
    background-color: var(--vert);
    transform: translateY(-2px);
}

.btn-reserve {
    background-color: var(--orange);
    color: var(--blanc) !important;
    padding: 8px 18px;
    border-radius: 5px;
    font-weight: bold;
    transition: all 0.3s ease;
}

.btn-reserve:hover {
    background-color: #e06c2c;
    color: var(--blanc) !important;
    transform: translateY(-2px);
}

/* --- HEADER CACHÉ --- */
.header {
    display: none;
}

/* --- SECTION INTRO (CAROUSEL) --- */
.intro {
    position: relative;
    width: 100%;
    height: 100vh;
    overflow: hidden;
}

#intro {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 20px;
    box-sizing: border-box;
}

.carousel {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.carousel-item {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    transition: opacity 1s ease-in-out;
}

.carousel-item.active {
    opacity: 1;
}

.carousel-item .image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
}

.carousel-item .image:before {
    content:"";
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background-color: rgba(0,0,0,0.5);
}

.text-animate {
    position: absolute;
    top: 14%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    width: 90%;
}

.text-animate h2 {
    font-size: 3rem;
    color: white;
}

#intro p {
    position: absolute;
    top: 70%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 90%;
    max-width: 700px;
    color: var(--blanc);
    background-color: rgba(6, 78, 124, 0.7);
    padding: 20px 30px;
    border-radius: 5px;
    font-size: 1em;
    line-height: 1.5;
z-index: 2; /* <-- AJOUTEZ CECI */
}


/* --- SECTIONS GÉNÉRIQUES --- */
.pricing, .contact-info, .footer, #avis, #photo-nous, #services, #a-propos, .contact-section {
    padding: 70px 20px;
    text-align: center;
}

h2 {
    font-size: 2em;
    margin-bottom: 35px;
    color: var(--bleu-fonce);
    font-weight: 500;
}

h3 {
    font-size: 1.5em;
    font-weight: 500;
}

/* --- SECTION SERVICES --- */
#services {
    background-image: url('../img/menage.jpg');
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    position: relative;
    z-index: 0;
}
#services:after {
    content:"";
    display: block;
    background-color: rgba(6, 78, 124, 0.8);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
}
#services h2 {
    color: var(--blanc);
}
.service-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 30px;
    margin-top: 40px;
}
.service {
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(5px);
    width: 100%;
    max-width: 350px;
    padding: 40px 30px;
    border-radius: 10px;
    border-top: 5px solid var(--orange);
    text-align: center;
    transition: all 0.3s ease;
    border: 1px solid rgba(255, 255, 255, 0.2);
}
.service:hover {
    transform: translateY(-10px);
    background: rgba(255, 255, 255, 0.2);
}
.service .icon {
    font-size: 3em;
    color: var(--orange);
    margin-bottom: 20px;
}
.service h3 {
    color: var(--blanc);
    font-size: 1.4em;
    margin-bottom: 15px;
}
.service p {
    color: var(--blanc);
    line-height: 1.6;
}

/* --- SECTION TARIFS --- */
#pricing {
    background-color: var(--blanc);
}
#pricing fieldset {
    border: none;
    padding: 0;
}
#pricing fieldset legend {
    display: none;
}
.pricing-table {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 40px;
}
.plan {
    width: 100%;
    max-width: 400px;
    background-color: var(--gris-clair);
    border: 1px solid #ddd;
    border-radius: 10px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
    padding-bottom: 30px;
    display: flex;
    flex-direction: column;
    transition: all 0.3s ease;
}
.plan:hover {
    box-shadow: 0 10px 25px rgba(0,0,0,0.15);
    transform: translateY(-5px);
}
.plan h3 {
    margin: 0;
    padding: 30px;
    background: var(--bleu-fonce);
    color: var(--blanc);
    border-radius: 10px 10px 0 0;
}
.plan h3 span {
    display: block;
    color: var(--orange);
    font-size: 1.8em;
    font-weight: 500;
}
.plan h3 span sup, .plan h3 span sub {
    font-size: 0.5em;
}
.plan.gold-gradient {
    border-color: var(--orange);
}
.plan.gold-gradient h3 {
    background: var(--orange);
}
.plan.gold-gradient h3 span {
    color: var(--blanc);
}
.plan p {
    text-align: left;
    padding: 0 30px;
    margin: 10px 0;
    color: #333;
}
.plan p:before {
    content: '✓';
    color: var(--vert);
    margin-right: 10px;
    font-weight: bold;
}
.plan .btn_base, .plan .btn_premium {
    margin: auto 30px 0;
    background-color: var(--bleu-fonce);
    color: var(--blanc);
    border-radius: 5px;
    padding: 12px 25px;
    transition: background-color 0.3s ease;
    border: none;
    cursor: pointer;
    text-transform: uppercase;
    font-size: 0.9em;
}
.plan .btn_premium {
    background-color: var(--orange);
}
.plan .btn_base:hover, .plan .btn_premium:hover {
    background-color: var(--vert);
}

/* --- SECTION À PROPOS --- */
#a-propos {
    background-image: url('../img/Guadeloupe_1775.jpeg');
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    position: relative;
    z-index: 0;
    color: var(--blanc);
}
#a-propos:after {
    content:"";
    display: block;
    background-color: rgba(87, 145, 120, 0.85);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
}
#a-propos h2, #a-propos h3 {
    color: var(--blanc);
}
#a-propos p, #a-propos h3 {
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}
#a-propos h3 {
    font-style: italic;
    font-weight: 400;
}

/* --- SECTION AVIS --- */
#avis {
    background-color: var(--gris-clair);
}

/* --- SECTION FORMULAIRE DE CONTACT --- */
.contact-section {
    background-color: var(--gris-clair);
}
.contact-section h2 {
    color: var(--bleu-fonce);
}
.contact-section p {
    max-width: 600px;
    margin: 0 auto 40px auto;
    color: #555;
}
#contact-form {
    max-width: 700px;
    margin: 0 auto;
    text-align: left;
}
.form-group {
    margin-bottom: 20px;
}
.form-group label {
    display: block;
    margin-bottom: 8px;
    font-weight: 500;
    color: var(--texte-couleur);
}
.form-group input,
.form-group textarea {
    width: 100%;
    padding: 12px;
    border: 1px solid #ccc;
    border-radius: 5px;
    font-family: var(--font-texte);
    font-size: 1em;
    box-sizing: border-box; 
    transition: border-color 0.3s ease;
}
.form-group input:focus,
.form-group textarea:focus {
    outline: none;
    border-color: var(--orange);
}
.btn-form {
    display: block;
    width: 100%;
    padding: 15px;
    background-color: var(--orange);
    color: var(--blanc);
    border: none;
    border-radius: 5px;
    font-size: 1.1em;
    font-weight: bold;
    cursor: pointer;
    transition: background-color 0.3s ease;
}
.btn-form:hover {
    background-color: var(--vert);
}

/* --- SECTION CONTACT & FOOTER --- */
#contact-info {
    background-color: var(--bleu-fonce);
}
#contact-info h2 {
    color: var(--blanc);
}
.rooter-icons {
    display: flex;
    justify-content: center;
    gap: 20px;
}
.rooter-icons .icon-link {
    text-decoration: none;
}
.rooter-icons .circle {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background-color: var(--orange);
    display: flex;
    justify-content: center;
    align-items: center;
    transition: all 0.3s ease;
}
.rooter-icons .circle:hover {
    background-color: var(--blanc);
    transform: scale(1.1);
}
.rooter-icons .circle i {
    color: var(--bleu-fonce);
    font-size: 1.8em;
}
#photo-nous {
    background-color: #282828;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    padding: 40px 20px;
}
#photo-nous img {
    max-width: 180px;
    width: 100%;
    border-radius: 50%;
    border: 5px solid var(--orange);
}
#photo-nous p {
    font-size: 1.2em;
}
.footer {
    background-color: #222;
    color: #aaa;
    padding: 30px 20px;
}

/* --- POPUPS --- */
.popup {
  display: block;
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 90%;
  max-width: 800px;
  height: 80vh;
  background-color: white;
  z-index: 10000;
  overflow-y: auto;
  box-shadow: 0 5px 14px rgba(0, 0, 0, 0.2);
  padding: 2em;
  box-sizing: border-box;
  border-radius: 10px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease-in-out;
}
body.noverflow:before {
  content:"";
  display: block;
  position: fixed;
  height: 100vh;
  width:100vw;
  background-color: rgba(0,0,0,0.6);
  z-index: 9999;
}
.popup fieldset {
  border: 1px solid #eee;
  border-radius: 5px;
  padding: 1em 2em;
  margin-bottom: 1.5em;
}
.popup fieldset legend {
  text-transform: uppercase;
  font-weight: bold;
  color: var(--bleu-fonce);
  padding: 0 1em;
}
.popup .close_btn {
  position: absolute;
  top: 15px;
  right: 15px;
  background: transparent;
  border: none;
  font-size: 2em;
  cursor: pointer;
  color: #888;
}
.popup .close_btn:hover {
    color: var(--rouge);
}

/* --- PAGE MOTEUR DE RECHERCHE --- */
.moteur-page .main-container {
    padding: 60px 20px;
    text-align: center;
}
.moteur-page h2 {
    color: var(--bleu-fonce);
}
#iframe-container {
    width: 100%;
    max-width: 1200px;
    margin: 40px auto;
    border: 1px solid #ddd;
    border-radius: 5px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
}
#iframe-container iframe {
    width: 100%;
    height: 1500px; /* Ajustable */
    border: none;
    display: block;
}

/* --- ICÔNES FIXES MOBILES --- */
.mobile-phone-icon {
    display: none; /* Caché par défaut */
    position: fixed;
    top: 15px;
    left: 20px; /* Positionné à gauche */
    z-index: 1001;
    background-color: var(--orange);
    border: none;
    color: var(--blanc);
    font-size: 1.3em;
    cursor: pointer;
    border-radius: 50%;
    width: 45px;
    height: 45px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
    transition: all 0.2s ease;
    justify-content: center;
    align-items: center;
    text-decoration: none;
}
.mobile-phone-icon:hover {
    background-color: var(--vert);
    transform: scale(1.1);
}

.navbar-toggle {
    display: none;
    position: fixed;
    top: 15px;
    right: 20px;
    z-index: 1001; 
    background-color: rgba(255, 255, 255, 0.8);
    backdrop-filter: blur(5px);
    border: none;
    color: var(--bleu-fonce);
    font-size: 1.4em; /* <- LÉGÈRE RÉDUCTION */
    cursor: pointer;
    border-radius: 50%;
    width: 45px;
    height: 45px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
    transition: all 0.2s ease;
    /* --- AJOUTS POUR CENTRER L'ICÔNE --- */
    justify-content: center;
    align-items: center;
}
.navbar-toggle:hover {
    color: var(--orange);
    transform: scale(1.1);
}

.back-to-site-btn {
    display: none;
    position: fixed;
    top: 15px;
    right: 20px;
    z-index: 1001; 
    background-color: var(--orange);
    color: var(--blanc);
    font-size: 1.5em;
    text-decoration: none;
    cursor: pointer;
    border-radius: 50%;
    width: 45px;
    height: 45px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
    transition: all 0.2s ease;
    justify-content: center;
    align-items: center;
}
.back-to-site-btn:hover {
    background-color: var(--vert);
    transform: scale(1.1);
}

/* --- RESPONSIVE DESIGN --- */
@media screen and (max-width: 1200px) {
    /* On modifie la navbar pour centrer le logo */
    .navbar {
        transition: transform 0.3s ease-in-out;
        justify-content: center; /* Centre le contenu horizontalement */
    }
    .navbar.navbar-hidden {
        transform: translateY(-100%);
    }
h2 { font-size: 1.5em; }
    #intro-title { font-size: 1.3em;}
    .service, .plan {
        max-width: 100%;
}
    /* On réduit la taille du logo */
    .navbar-brand {
        font-size: 1.9em;
    }

    /* On cache les liens et le bouton téléphone de la version ordinateur */
    .navbar-links,
    .navbar-phone-button {
        display: none; 
    }

    /* Styles pour le menu déroulant mobile qui s'ouvre */
    .navbar-links.active {
        display: flex;
        position: absolute;
        top: 100%;
        left: 0;
        width: 100%;
        background-color: rgba(6, 78, 124, 0.95);
        backdrop-filter: blur(10px);
        flex-direction: column;
        align-items: center;
        padding: 15px 0;
        box-shadow: 0 4px 10px rgba(0,0,0,0.1);
    }
    .navbar-links.active a {
        padding: 10px 0;
        width: 100%;
        text-align: center;
    }

    /* On affiche les icônes fixes */
    .navbar-toggle,
    .mobile-phone-icon {
        display: flex; 
    }

    .back-to-site-btn {
        display: flex;
    }

    .text-animate h2 {
        font-size: 2.3rem;
    }
}

@media screen and (max-width: 768px) {
    h2 { font-size: 1.5em; }
    #intro-title { font-size: 1.3em;}
    .service, .plan {
        max-width: 100%;
}
    #intro p {
        width: 93%;
        padding: 15px;
        font-size: 0.95em;
    }
    #photo-nous {
        flex-direction: column;
    }
}

@media screen and (max-width: 800px) {
  #intro-title {
    display: none;
  }
}