/* ========================================

   RESET

\======================================== */

* {

    margin: 0;

    padding: 0;

    box-sizing: border-box;

}

html {

    scroll-behavior: smooth;

}

body {

    font-family: Arial, Helvetica, sans-serif;

    color: #222;

    background: #fff;

    line-height: 1.6;

}

a {

    text-decoration: none;

    color: inherit;

}

.container {

    width: 90%;

    max-width: 1200px;

    margin: auto;

}

/* ========================================

   HEADER

\======================================== */

.header {

    background: #fff;

    border-bottom: 1px solid #eee;

    position: sticky;

    top: 0;

    z-index: 1000;

}

.navbar {

    min-height: 80px;

    display: flex;

    align-items: center;

    justify-content: space-between;

}

.logo {

    display: flex;

    align-items: center;

}

.logo img {

    height: 65px;

    width: auto;

    display: block;

}

.navigation {

    display: flex;

    gap: 30px;

    align-items: center;

}

.navigation a {

    font-size: 15px;

    color: #555;

    transition: 0.3s;

}

.navigation a:hover,

.navigation a.active {

    color: #111;

}

/* ========================================

   HERO

\======================================== */

.hero {

    min-height: 650px;

    display: flex;

    align-items: center;

    background: #f8f6f2;

    overflow: hidden;

}

.hero-content {

    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 70px;

    align-items: center;

}

.hero-subtitle,

.section-subtitle {

    text-transform: uppercase;

    letter-spacing: 3px;

    font-size: 12px;

    font-weight: 700;

    margin-bottom: 15px;

}

.hero h1 {

    font-size: 58px;

    line-height: 1.1;

    margin-bottom: 25px;

}

.hero h1 span {

    display: block;

}

.hero-description {

    max-width: 560px;

    color: #666;

    font-size: 17px;

    margin-bottom: 35px;

}

.hero-buttons {

    display: flex;

    gap: 15px;

    flex-wrap: wrap;

}

.btn {

    display: inline-block;

    padding: 14px 25px;

    border: 1px solid #222;

    transition: 0.3s;

    font-size: 14px;

}

.btn-primary {

    background: #222;

    color: white;

}

.btn-primary:hover {

    background: #444;

}

.btn-secondary {

    background: transparent;

}

.btn-secondary:hover {

    background: #222;

    color: white;

}

/* ========================================

   HERO VISUAL

\======================================== */

.hero-visual {

    display: flex;

    justify-content: center;

    align-items: center;

    position: relative;

}

.hero-image-wrapper {

    position: relative;

    width: 420px;

    height: 520px;

}

.hero-image-frame {

    position: relative;

    display: block;

    width: 100%;

    height: 100%;

    overflow: hidden;

    border-radius: 220px 220px 25px 25px;

    background: #e9dfd2;

    text-decoration: none;

    box-shadow:

        0 25px 60px rgba(0, 0, 0, 0.14);

    z-index: 2;

    transition:

        transform 0.35s ease,

        box-shadow 0.35s ease;

}

.hero-image-frame:hover {

    transform: translateY(-6px);

    box-shadow:

        0 30px 70px rgba(0, 0, 0, 0.20);

}

.hero-model-image {

    width: 100%;

    height: 100%;

    display: block;

    object-fit: cover;

    object-position: center;

    transition:

        transform 0.7s ease;

}

.hero-image-frame:hover .hero-model-image {

    transform: scale(1.04);

}

/* ========================================

   VOILE SUR LA PHOTO

\======================================== */

.hero-image-overlay {

    position: absolute;

    left: 0;

    right: 0;

    bottom: 0;

    height: 48%;

    background:

        linear-gradient(

            to top,

            rgba(0, 0, 0, 0.68),

            rgba(0, 0, 0, 0.35),

            rgba(0, 0, 0, 0)

        );

    pointer-events: none;

}

/* ========================================

   TEXTE SUR LA PHOTO

\======================================== */

.hero-image-info {

    position: absolute;

    left: 28px;

    right: 28px;

    bottom: 28px;

    z-index: 3;

    color: white;

}

.hero-image-tag {

    display: inline-block;

    margin-bottom: 9px;

    font-size: 10px;

    font-weight: 700;

    letter-spacing: 2px;

    color: white;

    opacity: 0.92;

}

.hero-image-info h3 {

    margin: 0 0 6px;

    font-family: Georgia, "Times New Roman", serif;

    font-size: 30px;

    line-height: 1.2;

    font-weight: 500;

    color: white;

}

.hero-image-info p {

    margin: 0;

    font-size: 14px;

    color: rgba(255, 255, 255, 0.90);

}

/* ========================================

   DÉCORATION

\======================================== */

.hero-decoration-one {

    position: absolute;

    width: 100%;

    height: 100%;

    top: 18px;

    left: 18px;

    border-radius:

        220px 220px 25px 25px;

    border:

        1px solid rgba(139, 111, 71, 0.35);

    z-index: 1;

    pointer-events: none;

}

.hero-decoration-two {

    position: absolute;

    width: 55px;

    height: 55px;

    right: -22px;

    top: 55px;

    border-radius: 50%;

    background: #d9c7ad;

    opacity: 0.65;

    z-index: 1;

    pointer-events: none;

}

/* ========================================

   SECTIONS

\======================================== */

.categories,

.about,

.contact {

    padding: 100px 0;

}

.section-heading {

    text-align: center;

    max-width: 650px;

    margin: 0 auto 55px;

}

.section-heading h2,

.about h2,

.personalisation h2 {

    font-size: 40px;

    line-height: 1.2;

    margin-bottom: 18px;

}

.section-heading p:last-child {

    color: #666;

}

/* ========================================

   CATEGORIES

\======================================== */

.category-grid {

    display: grid;

    grid-template-columns: repeat(4, 1fr);

    gap: 20px;

}

.category-card {

    border: 1px solid #e5e5e5;

    padding: 35px 25px;

    text-align: center;

    transition: 0.3s;

}

.category-card:hover {

    transform: translateY(-5px);

    box-shadow:

        0 10px 30px rgba(0, 0, 0, 0.08);

}

.category-icon {

    font-size: 42px;

    margin-bottom: 20px;

}

.category-card h3 {

    margin-bottom: 10px;

}

.category-card p {

    color: #777;

    font-size: 14px;

}

/* ========================================

   ABOUT

\======================================== */

.about {

    background: #f8f6f2;

}

.about-content {

    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 80px;

    align-items: center;

}

.about-visual {

    height: 430px;

    background: #ddd2c3;

    display: flex;

    align-items: center;

    justify-content: center;

}

.about-pattern {

    font-size: 150px;

    font-family: Georgia, serif;

}

.about-text p {

    color: #666;

    margin-bottom: 18px;

}

.text-link {

    display: inline-block;

    margin-top: 15px;

    font-weight: 700;

}

/* ========================================

   PERSONNALISATION

\======================================== */

.personalisation {

    padding: 110px 20px;

    text-align: center;

    background: #222;

    color: white;

}

.personalisation h2 {

    max-width: 700px;

    margin: 0 auto 20px;

}

.personalisation p {

    max-width: 650px;

    margin: 0 auto 30px;

    color: #ccc;

}

.personalisation .btn-primary {

    background: white;

    color: #222;

    border-color: white;

}

/* ========================================

   CONTACT

\======================================== */

.contact-grid {

    display: grid;

    grid-template-columns: repeat(3, 1fr);

    gap: 20px;

}

.contact-card {

    border: 1px solid #e5e5e5;

    padding: 30px;

    text-align: center;

}

.contact-card span {

    font-size: 30px;

}

.contact-card h3 {

    margin: 10px 0;

}

.contact-card p {

    color: #777;

    font-size: 14px;

}

/* ========================================

   FOOTER

\======================================== */

.footer {

    background: #111;

    color: white;

    padding: 35px 0;

}

.footer-content {

    display: flex;

    justify-content: space-between;

    align-items: center;

    gap: 30px;

}

.footer p {

    color: #aaa;

    font-size: 13px;

}

/* ========================================

   RESPONSIVE ACCUEIL

\======================================== */

@media (max-width: 992px) {

    .hero-image-wrapper {

        width: 370px;

        height: 480px;

    }

}

@media (max-width: 900px) {

    .navigation {

        gap: 15px;

    }

    .hero-content,

    .about-content {

        grid-template-columns: 1fr;

    }

    .hero {

        padding: 80px 0;

    }

    .hero h1 {

        font-size: 45px;

    }

    .hero-visual {

        margin-top: 30px;

    }

    .category-grid {

        grid-template-columns: repeat(2, 1fr);

    }

    .contact-grid {

        grid-template-columns: 1fr;

    }

}

@media (max-width: 650px) {

    .navbar {

        height: auto;

        padding: 20px 0;

        flex-direction: column;

        gap: 20px;

    }

    .navigation {

        flex-wrap: wrap;

        justify-content: center;

    }

    .hero h1 {

        font-size: 38px;

    }

    /*

       IMPORTANT :

       L'ancien CSS masquait complètement

       le visuel sur mobile.

       On le conserve désormais.

    */

    .hero-visual {

        display: flex;

    }

    .hero-image-wrapper {

        width: 310px;

        height: 410px;

    }

    .category-grid {

        grid-template-columns: 1fr;

    }

    .footer-content {

        flex-direction: column;

        text-align: center;

    }

}

@media (max-width: 480px) {

    .hero-image-wrapper {

        width: 285px;

        height: 385px;

    }

    .hero-image-info {

        left: 18px;

        right: 18px;

        bottom: 18px;

    }

    .hero-image-info h3 {

        font-size: 23px;

    }

    .hero-image-tag {

        font-size: 9px;

        letter-spacing: 1.5px;

    }

    .hero-image-info p {

        font-size: 12px;

    }

    .hero-decoration-one {

        top: 12px;

        left: 12px;

    }

    .hero-decoration-two {

        width: 40px;

        height: 40px;

        right: -15px;

        top: 40px;

    }

}

/* ========================================

   PAGE CATALOGUE

\======================================== */

.catalogue-header {

    background: #f8f6f2;

    padding: 80px 0;

    text-align: center;

}

.catalogue-header h1 {

    font-size: 48px;

    margin-bottom: 15px;

}

.catalogue-header p:last-child {

    max-width: 650px;

    margin: auto;

    color: #666;

}

/* ========================================

   OUTILS CATALOGUE

\======================================== */

.catalogue {

    padding: 70px 0 100px;

}

.catalogue-tools {

    display: flex;

    justify-content: space-between;

    gap: 20px;

    margin-bottom: 45px;

}

.search-box {

    flex: 1;

}

.search-box input,

.filter-box select {

    width: 100%;

    height: 50px;

    padding: 0 15px;

    border: 1px solid #ddd;

    background: white;

    font-size: 14px;

}

.filter-box {

    width: 280px;

}

/* ========================================

   GRILLE DES MODÈLES

\======================================== */

.modeles-grid {

    display: grid;

    grid-template-columns: repeat(3, 1fr);

    gap: 30px;

}

.modele-card {

    border: 1px solid #e5e5e5;

    background: white;

    overflow: hidden;

    transition: 0.3s;

}

.modele-card:hover {

    transform: translateY(-5px);

    box-shadow:

        0 10px 30px rgba(0, 0, 0, 0.08);

}

.modele-image {

    height: 300px;

    background: #eee7dc;

    display: flex;

    align-items: center;

    justify-content: center;

    overflow: hidden;

}

.modele-image img {

    width: 100%;

    height: 100%;

    object-fit: cover;

}

.modele-placeholder {

    font-size: 90px;

    font-family: Georgia, serif;

}

.modele-content {

    padding: 25px;

}

.modele-reference {

    font-size: 11px;

    letter-spacing: 2px;

    color: #888;

    text-transform: uppercase;

}

.modele-content h3 {

    font-size: 21px;

    margin: 8px 0 12px;

}

.modele-description {

    color: #666;

    font-size: 14px;

    margin-bottom: 18px;

}

.modele-details {

    display: flex;

    flex-wrap: wrap;

    gap: 8px;

    margin-bottom: 20px;

}

.modele-tag {

    background: #f3f1ed;

    padding: 5px 9px;

    font-size: 11px;

    color: #555;

}

.modele-link {

    display: inline-block;

    font-weight: 700;

    font-size: 14px;

}

.loading {

    text-align: center;

    padding: 50px;

    color: #777;

}

/* ========================================

   RESPONSIVE CATALOGUE

\======================================== */

@media (max-width: 900px) {

    .modeles-grid {

        grid-template-columns: repeat(2, 1fr);

    }

    .catalogue-tools {

        flex-direction: column;

    }

    .filter-box {

        width: 100%;

    }

}

@media (max-width: 600px) {

    .modeles-grid {

        grid-template-columns: 1fr;

    }

    .catalogue-header h1 {

        font-size: 36px;

    }

}

/* ========================================

   PAGE DETAIL MODELE

\======================================== */

.modele-detail-page {

    padding: 80px 0;

    min-height: 70vh;

}

.modele-detail {

    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 60px;

    align-items: start;

}

.modele-detail-image {

    min-height: 500px;

    border-radius: 20px;

    overflow: hidden;

    background: #f5f1ec;

}

.modele-detail-image img {

    width: 100%;

    height: 100%;

    min-height: 500px;

    object-fit: cover;

    display: block;

}

.modele-detail-image .modele-placeholder {

    height: 100%;

    min-height: 500px;

    display: flex;

    align-items: center;

    justify-content: center;

    font-size: 100px;

}

.modele-detail-content {

    padding: 20px 0;

}

.modele-detail-content h1 {

    font-size: 42px;

    margin: 15px 0 20px;

}

.modele-informations {

    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 15px;

    margin: 35px 0;

}

.modele-informations div {

    display: flex;

    flex-direction: column;

    gap: 5px;

    padding: 15px;

    background: #f8f6f3;

    border-radius: 10px;

}

.modele-informations strong {

    font-size: 14px;

}

.modele-informations span {

    font-size: 15px;

}

.modele-actions {

    display: flex;

    gap: 15px;

    flex-wrap: wrap;

}

.modele-actions .btn {

    text-decoration: none;

}

@media (max-width: 768px) {

    .modele-detail {

        grid-template-columns: 1fr;

        gap: 30px;

    }

    .modele-detail-content h1 {

        font-size: 32px;

    }

    .modele-informations {

        grid-template-columns: 1fr;

    }

}

/* ========================================

   PAGE CONTACT

\======================================== */

.contact-page {

    min-height: 70vh;

}

/* ========================================

   EN-TÊTE CONTACT

\======================================== */

.contact-header {

    padding: 90px 0 60px;

    text-align: center;

    background: #f8f6f3;

}

.contact-header .section-label {

    display: inline-block;

    margin-bottom: 15px;

    font-size: 13px;

    font-weight: 700;

    letter-spacing: 2px;

    color: #8b6f47;

}

.contact-header h1 {

    margin-bottom: 20px;

    font-size: 42px;

}

.contact-header p {

    max-width: 700px;

    margin: 0 auto;

    line-height: 1.8;

    color: #666;

}

/* ========================================

   FORMULAIRE CONTACT

\======================================== */

.contact-form-section {

    padding: 80px 0;

}

.contact-form-container {

    max-width: 850px;

    margin: 0 auto;

    padding: 45px;

    background: #ffffff;

    border-radius: 20px;

    box-shadow:

        0 10px 35px rgba(0, 0, 0, 0.08);

}

.form-group {

    margin-bottom: 25px;

}

.form-group label {

    display: block;

    margin-bottom: 8px;

    font-size: 15px;

    font-weight: 600;

    color: #333;

}

.form-group input,

.form-group select,

.form-group textarea {

    width: 100%;

    padding: 14px 16px;

    border: 1px solid #ddd;

    border-radius: 10px;

    background: #fff;

    font-family: inherit;

    font-size: 15px;

    color: #333;

    transition:

        border-color 0.3s ease,

        box-shadow 0.3s ease;

}

.form-group input:focus,

.form-group select:focus,

.form-group textarea:focus {

    outline: none;

    border-color: #8b6f47;

    box-shadow:

        0 0 0 3px rgba(139, 111, 71, 0.12);

}

.form-group textarea {

    min-height: 160px;

    resize: vertical;

}

.form-row {

    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 20px;

}

#form-demande .btn {

    border: none;

    cursor: pointer;

    font-size: 15px;

}

.form-message {

    margin-top: 20px;

    font-size: 15px;

    line-height: 1.5;

}

/* ========================================

   CONTACT - NOUVELLE PRESENTATION

\======================================== */

.contact-layout {

    display: grid;

    grid-template-columns: 0.9fr 1.1fr;

    gap: 70px;

    align-items: start;

}

/* ========================================

   INFORMATIONS CONTACT

\======================================== */

.contact-information {

    padding: 20px 0;

}

.contact-small-title {

    display: inline-block;

    margin-bottom: 18px;

    font-size: 12px;

    font-weight: 700;

    letter-spacing: 2px;

    color: #8b6f47;

}

.contact-information h2 {

    max-width: 500px;

    margin-bottom: 22px;

    font-size: 38px;

    line-height: 1.2;

    color: #222;

}

.contact-introduction {

    max-width: 520px;

    margin-bottom: 40px;

    color: #666;

    line-height: 1.8;

}

/* ========================================

   BLOCS CONTACT

\======================================== */

.contact-info-item {

    display: flex;

    gap: 18px;

    margin-bottom: 28px;

}

.contact-info-icon {

    width: 42px;

    height: 42px;

    min-width: 42px;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 50%;

    background: #f3eee8;

    color: #8b6f47;

    font-size: 18px;

}

.contact-info-item h3 {

    margin-bottom: 6px;

    font-size: 17px;

    color: #333;

}

.contact-info-item p {

    margin: 0;

    color: #777;

    line-height: 1.6;

    font-size: 14px;

}

/* ========================================

   FORMULAIRE MODERNE

\======================================== */

.form-header {

    margin-bottom: 32px;

}

.form-header > span {

    display: block;

    margin-bottom: 10px;

    font-size: 11px;

    font-weight: 700;

    letter-spacing: 1.8px;

    color: #8b6f47;

}

.form-header h2 {

    margin-bottom: 10px;

    font-size: 27px;

    color: #222;

}

.form-header p {

    margin: 0;

    color: #888;

    font-size: 14px;

}

/* ========================================

   CHAMPS FORMULAIRE

\======================================== */

.form-group {

    margin-bottom: 22px;

}

.form-group label {

    display: block;

    margin-bottom: 8px;

    font-size: 14px;

    font-weight: 600;

    color: #333;

}

.form-group input,

.form-group select,

.form-group textarea {

    width: 100%;

    padding: 14px 16px;

    border: 1px solid #ddd;

    border-radius: 10px;

    background: #fff;

    font-family: inherit;

    font-size: 14px;

    color: #333;

    transition:

        border-color 0.3s ease,

        box-shadow 0.3s ease;

}

.form-group input::placeholder,

.form-group textarea::placeholder {

    color: #aaa;

}

.form-group input:focus,

.form-group select:focus,

.form-group textarea:focus {

    outline: none;

    border-color: #8b6f47;

    box-shadow:

        0 0 0 3px rgba(139, 111, 71, 0.10);

}

.form-group textarea {

    min-height: 150px;

    resize: vertical;

}

.form-row {

    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 18px;

}

/* ========================================

   BOUTON CONTACT

\======================================== */

.contact-submit {

    width: 100%;

    border: none;

    cursor: pointer;

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 12px;

    padding: 15px 20px;

    font-size: 15px;

}

.contact-submit span {

    font-size: 20px;

    transition:

        transform 0.3s ease;

}

.contact-submit:hover span {

    transform: translateX(4px);

}

/* ========================================

   MESSAGE FORMULAIRE

\======================================== */

.form-message {

    margin-top: 18px;

    padding: 0;

    font-size: 14px;

    line-height: 1.6;

}

/* ========================================

   RESPONSIVE CONTACT

\======================================== */

@media (max-width: 900px) {

    .contact-layout {

        grid-template-columns: 1fr;

        gap: 40px;

    }

    .contact-information {

        padding: 0;

    }

}

@media (max-width: 768px) {

    .contact-header {

        padding: 60px 0 40px;

    }

    .contact-header h1 {

        font-size: 32px;

    }

    .contact-form-section {

        padding: 50px 0;

    }

    .contact-form-container {

        padding: 30px 20px;

    }

    .form-row {

        grid-template-columns: 1fr;

        gap: 0;

    }

    .contact-information h2 {

        font-size: 30px;

    }

}


/* ==========================================================
   REFONTE VISUELLE — IVOIRE, BORDEAUX & OR
   Couche de style ajoutée : les fonctions existantes restent intactes.
========================================================== */
:root {
  --bn-ivory: #fbf7f1;
  --bn-ivory-deep: #f3e9df;
  --bn-burgundy: #681d32;
  --bn-burgundy-dark: #45101f;
  --bn-gold: #bd9657;
  --bn-gold-light: #dfc79e;
  --bn-ink: #2d2022;
  --bn-muted: #76696a;
  --bn-border: #e8dcd1;
  --bn-white: #fffdfb;
}

html { scroll-padding-top: 100px; }
body {
  font-family: "Segoe UI", Arial, Helvetica, sans-serif;
  color: var(--bn-ink);
  background: var(--bn-white);
}
::selection { background: var(--bn-burgundy); color: #fff; }
.container { max-width: 1240px; }
.header {
  background: rgba(255,253,251,.96);
  border-bottom: 1px solid rgba(104,29,50,.10);
  box-shadow: 0 8px 30px rgba(58,24,32,.035);
  backdrop-filter: blur(12px);
}
.navbar { min-height: 88px; }
.logo img { height: 68px; }
.navigation { gap: clamp(14px, 2vw, 30px); }
.navigation a {
  color: #5e4a4d;
  font-size: 14px;
  font-weight: 600;
  position: relative;
  padding: 9px 0;
}
.navigation a::after {
  content: "";
  position: absolute;
  left: 0; bottom: 1px;
  width: 0; height: 2px;
  background: var(--bn-gold);
  transition: width .25s ease;
}
.navigation a:hover,
.navigation a.active { color: var(--bn-burgundy); }
.navigation a:hover::after,
.navigation a.active::after { width: 100%; }
.hero {
  min-height: 690px;
  position: relative;
  background:
    radial-gradient(ellipse at 82% 18%, rgba(189,150,87,.12), transparent 32%),
    linear-gradient(115deg, var(--bn-ivory) 0%, #fffaf6 55%, #f2e4d8 100%);
}
.hero::before {
  content: "";
  position: absolute;
  left: -120px; bottom: -190px;
  width: 360px; height: 360px;
  border: 1px solid rgba(189,150,87,.25);
  border-radius: 50%;
  pointer-events: none;
}
.hero-content { position: relative; z-index: 1; gap: clamp(35px, 6vw, 85px); }
.hero-subtitle, .section-subtitle {
  color: var(--bn-gold);
  letter-spacing: 3.2px;
  font-size: 11px;
}
.hero h1 {
  color: var(--bn-burgundy-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(44px, 4.5vw, 66px);
  font-weight: 500;
  letter-spacing: -1.5px;
  line-height: 1.08;
}
.hero h1 span { color: var(--bn-burgundy); font-style: italic; }
.hero-description { color: var(--bn-muted); line-height: 1.9; font-size: 16px; }
.btn {
  border-radius: 2px;
  padding: 15px 25px;
  font-weight: 700;
  letter-spacing: .2px;
  transition: transform .25s ease, background .25s ease, box-shadow .25s ease;
}
.btn:hover { transform: translateY(-2px); }
.btn-primary {
  color: white;
  background: var(--bn-burgundy);
  border-color: var(--bn-burgundy);
  box-shadow: 0 10px 22px rgba(104,29,50,.15);
}
.btn-primary:hover { background: var(--bn-burgundy-dark); box-shadow: 0 14px 26px rgba(104,29,50,.2); }
.btn-secondary { color: var(--bn-burgundy); border-color: var(--bn-gold); background: rgba(255,255,255,.35); }
.btn-secondary:hover { color: white; background: var(--bn-burgundy); border-color: var(--bn-burgundy); }
.hero-image-wrapper { width: min(100%, 430px); height: 540px; }
.hero-image-frame {
  border-radius: 220px 220px 5px 5px;
  background: var(--bn-ivory-deep);
  box-shadow: 0 28px 70px rgba(69,16,31,.20);
}
.hero-model-image { object-position: center 25%; }
.hero-image-overlay {
  height: 58%;
  background: linear-gradient(to top, rgba(49,12,24,.88), rgba(69,16,31,.35) 55%, transparent);
}
.hero-image-tag { color: var(--bn-gold-light); }
.hero-image-info h3 { font-size: 32px; }
.hero-decoration-one {
  border-color: rgba(189,150,87,.7);
  border-radius: 220px 220px 5px 5px;
}
.hero-decoration-two { background: var(--bn-gold); opacity: .8; }
.categories, .about, .contact { padding: clamp(70px, 8vw, 110px) 0; }
.section-heading { margin-bottom: 48px; }
.section-heading h2, .about h2, .personalisation h2 {
  color: var(--bn-burgundy-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(31px, 3.4vw, 43px);
  font-weight: 500;
}
.section-heading p:last-child { color: var(--bn-muted); line-height: 1.85; }
.category-grid { gap: 18px; }
.category-card {
  position: relative;
  background: var(--bn-white);
  border: 1px solid var(--bn-border);
  padding: 38px 24px 34px;
  box-shadow: 0 8px 25px rgba(69,16,31,.025);
}
.category-card::before {
  content: "";
  position: absolute;
  top: 0; left: 24px; right: 24px;
  height: 2px; background: var(--bn-gold);
  transform: scaleX(0); transform-origin: center;
  transition: transform .25s ease;
}
.category-card:hover {
  border-color: #d7c0a1;
  background: #fffaf6;
  box-shadow: 0 18px 38px rgba(69,16,31,.09);
}
.category-card:hover::before { transform: scaleX(1); }
.category-icon {
  display: inline-flex;
  align-items: center; justify-content: center;
  width: 72px; height: 72px;
  border-radius: 50%;
  background: var(--bn-ivory);
  border: 1px solid var(--bn-border);
  color: var(--bn-burgundy);
  font-size: 34px;
}
.category-card h3 { color: var(--bn-burgundy); font-family: Georgia, serif; font-size: 23px; font-weight: 500; }
.category-card p { color: var(--bn-muted); line-height: 1.8; }
.about { background: var(--bn-ivory); }
.about-visual {
  position: relative;
  min-height: 430px;
  background: linear-gradient(145deg, #ead8ca, #f7eee5 55%, #d9c1a6);
  border-radius: 2px;
  overflow: hidden;
}
.about-visual::before, .about-visual::after {
  content: ""; position: absolute; border: 1px solid rgba(104,29,50,.25); border-radius: 50%;
}
.about-visual::before { inset: 28px; }
.about-visual::after { inset: 55px; border-color: rgba(189,150,87,.55); }
.about-pattern { position: relative; z-index: 1; color: var(--bn-burgundy); font-size: 150px; text-shadow: 0 8px 25px rgba(104,29,50,.12); }
.about-text p { color: var(--bn-muted); line-height: 1.9; }
.text-link { color: var(--bn-burgundy); border-bottom: 1px solid var(--bn-gold); padding-bottom: 5px; }
.personalisation {
  position: relative;
  overflow: hidden;
  padding: 110px 20px;
  background: linear-gradient(120deg, var(--bn-burgundy-dark), var(--bn-burgundy) 62%, #7d3145);
  color: white;
}
.personalisation::before, .personalisation::after {
  content: ""; position: absolute; width: 280px; height: 280px;
  border: 1px solid rgba(223,199,158,.25); border-radius: 50%; pointer-events: none;
}
.personalisation::before { top: -170px; left: -70px; }
.personalisation::after { right: -100px; bottom: -190px; }
.personalisation .container { position: relative; z-index: 1; }
.personalisation .section-subtitle { color: var(--bn-gold-light); }
.personalisation h2 { color: white; }
.personalisation p { color: rgba(255,255,255,.78); line-height: 1.9; }
.personalisation .btn-primary { color: var(--bn-burgundy); background: var(--bn-gold-light); border-color: var(--bn-gold-light); box-shadow: none; }
.personalisation .btn-primary:hover { background: white; border-color: white; }
.contact-card {
  background: white;
  border: 1px solid var(--bn-border);
  padding: 34px 24px;
  transition: transform .25s ease, box-shadow .25s ease;
}
.contact-card:hover { transform: translateY(-4px); box-shadow: 0 15px 35px rgba(69,16,31,.07); }
.contact-card span { display: inline-flex; width: 52px; height: 52px; align-items: center; justify-content: center; border-radius: 50%; background: var(--bn-ivory); color: var(--bn-burgundy); }
.contact-card h3 { color: var(--bn-burgundy); font-family: Georgia, serif; font-weight: 500; font-size: 21px; }
.contact-card p { color: var(--bn-muted); overflow-wrap: anywhere; }
.footer { background: #2d111a; color: #fff8f3; padding: 38px 0; border-top: 3px solid var(--bn-gold); }
.footer strong { font-family: Georgia, serif; font-size: 20px; font-weight: 500; }
.footer p { color: #d8c5c8; }

/* Même identité visuelle sur catalogue, détails et contact. */
.catalogue-header, .contact-header { background: linear-gradient(120deg, var(--bn-ivory), #f1e1d6); }
.catalogue-header h1, .contact-header h1 { color: var(--bn-burgundy-dark); font-family: Georgia, serif; font-weight: 500; }
.catalogue-header p:last-child, .contact-header p { color: var(--bn-muted); }
.modele-card { border-color: var(--bn-border); box-shadow: 0 8px 24px rgba(69,16,31,.025); }
.modele-card:hover { box-shadow: 0 18px 38px rgba(69,16,31,.10); }
.modele-reference { color: var(--bn-gold); }
.modele-content h3, .modele-detail-content h1 { color: var(--bn-burgundy-dark); font-family: Georgia, serif; font-weight: 500; }
.modele-tag { background: var(--bn-ivory); color: var(--bn-burgundy); border: 1px solid var(--bn-border); }
.modele-link { color: var(--bn-burgundy); }
.search-box input:focus, .filter-box select:focus { outline: none; border-color: var(--bn-gold); box-shadow: 0 0 0 3px rgba(189,150,87,.13); }
.modele-informations div { background: var(--bn-ivory); border: 1px solid var(--bn-border); border-radius: 2px; }
.contact-form-container { border: 1px solid var(--bn-border); border-radius: 3px; box-shadow: 0 18px 50px rgba(69,16,31,.07); }
.contact-header .section-label, .contact-small-title, .form-header > span { color: var(--bn-gold); }
.contact-information h2, .form-header h2 { color: var(--bn-burgundy-dark); font-family: Georgia, serif; font-weight: 500; }
.contact-info-icon { background: var(--bn-ivory); color: var(--bn-burgundy); }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color: var(--bn-gold); box-shadow: 0 0 0 3px rgba(189,150,87,.12); }

@media (max-width: 900px) {
  .hero { min-height: auto; }
  .hero-content { gap: 35px; }
  .about-content { gap: 45px; }
}
@media (max-width: 650px) {
  .navbar { padding: 14px 0; }
  .logo img { height: 58px; }
  .navigation { gap: 8px 16px; }
  .navigation a { font-size: 13px; }
  .hero { padding: 62px 0 76px; }
  .hero h1 { font-size: clamp(38px, 10vw, 48px); }
  .hero-description { font-size: 15px; }
  .hero-image-wrapper { width: min(78vw, 320px); height: min(105vw, 420px); }
  .hero-image-info h3 { font-size: 26px; }
  .about-visual { min-height: 300px; }
  .contact-form-container { padding: 28px 20px; }
}


/* ========================================
   AJOUT MINIMALISTE : Badge "Création unique"
======================================== */
.hero {
    position: relative;
}

.hero-creation-badge {
    position: absolute;
    top: 35px;
    right: 8%;
    z-index: 4;
    display: flex;
    flex-direction: column;
    align-items: center;
    pointer-events: none;
}

.badge-text {
    font-family: Georgia, serif;
    font-style: italic;
    font-size: 13px;
    color: #8b6f47;
    margin-bottom: 4px;
    letter-spacing: 1px;
}

.badge-circle-img {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    border: 2px solid #bd9657;
    overflow: hidden;
    box-shadow: 0 10px 25px rgba(0,0,0,0.15);
}

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

@media (max-width: 650px) {
    .hero-creation-badge {
        display: none;
    }
}

/* ==========================================================
   SURCOUCHE DESIGN MAQUETTE (SANS TOUCHER AU CSS EXISTANT)
========================================================== */

.header-actions {
    display: flex;
    gap: 15px;
    align-items: center;
}

.icon-btn {
    font-size: 16px;
    color: #222;
    transition: 0.3s;
}

.icon-btn:hover {
    color: #bd9657;
}

/* HERO MAQUETTE */
.hero-maquette {
    position: relative;
    min-height: 600px;
    background: #40101d;
    overflow: hidden;
    display: flex;
    align-items: center;
}

.hero-bg-image {
    position: absolute;
    top: 0;
    right: 0;
    width: 65%;
    height: 100%;
    background-size: cover;
    background-position: center top;
}

.hero-bg-gradient {
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, #40101d 0%, rgba(64, 16, 29, 0.85) 45%, rgba(64, 16, 29, 0.1) 100%);
}

.hero-container {
    position: relative;
    z-index: 3;
}

.hero-text-content {
    max-width: 540px;
    color: #ffffff;
}

.hero-tagline {
    color: #dfc79e;
    font-size: 11px;
    letter-spacing: 2.5px;
    font-weight: 700;
    margin-bottom: 15px;
}

.hero-text-content h1 {
    font-family: Georgia, serif;
    font-size: 52px;
    line-height: 1.1;
    margin-bottom: 20px;
}

.hero-text-content h1 span {
    font-style: italic;
    color: #dfc79e;
}

.hero-desc {
    color: rgba(255, 255, 255, 0.85);
    font-size: 15px;
    line-height: 1.8;
    margin-bottom: 30px;
}

.hero-btns {
    display: flex;
    gap: 15px;
}

.btn-gold {
    background: #cba363;
    color: #222;
    padding: 12px 24px;
    border-radius: 25px;
    font-weight: 600;
    transition: 0.3s;
}

.btn-gold:hover {
    background: #dfc79e;
}

.btn-outline-white {
    border: 1px solid rgba(255,255,255,0.6);
    color: white;
    padding: 12px 24px;
    border-radius: 25px;
    transition: 0.3s;
}

.btn-outline-white:hover {
    background: white;
    color: #222;
}

.hero-badge-unique {
    position: absolute;
    top: 35px;
    right: 5%;
    z-index: 4;
    text-align: center;
}

.badge-script {
    font-family: Georgia, serif;
    font-style: italic;
    color: #dfc79e;
    font-size: 15px;
    display: block;
    margin-bottom: 5px;
}

.badge-circle {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    border: 2px solid #dfc79e;
    overflow: hidden;
    box-shadow: 0 10px 25px rgba(0,0,0,0.3);
}

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

/* CARTES MAQUETTE */
.category-card-maquette {
    position: relative;
    height: 380px;
    border-radius: 12px;
    overflow: hidden;
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: flex-end;
    padding: 25px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
    transition: transform 0.3s ease;
}

.category-card-maquette:hover {
    transform: translateY(-6px);
}

.card-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(20, 10, 15, 0.9) 0%, rgba(20, 10, 15, 0.3) 60%, transparent 100%);
}

.card-body {
    position: relative;
    z-index: 2;
    color: white;
    width: 100%;
}

.card-icon {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: rgba(255,255,255,0.2);
    backdrop-filter: blur(5px);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 12px;
}

.card-body h3 {
    font-family: Georgia, serif;
    font-size: 22px;
    margin-bottom: 5px;
}

.card-body p {
    font-size: 13px;
    color: rgba(255,255,255,0.8);
}

.arrow-icon {
    position: absolute;
    right: 0;
    bottom: 0;
    font-size: 18px;
    color: #dfc79e;
}

/* À PROPOS ET PERSO */
.about-photo-wrapper {
    position: relative;
    border-radius: 15px;
    overflow: hidden;
}

.about-photo-wrapper img {
    width: 100%;
    height: 350px;
    object-fit: cover;
    display: block;
}

.about-border-line {
    position: absolute;
    inset: 12px;
    border: 1px solid rgba(223, 199, 158, 0.6);
    border-radius: 10px;
    pointer-events: none;
}

.personalisation {
    position: relative;
    background-size: cover;
    background-position: center;
    padding: 100px 20px;
}

.perso-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(120deg, rgba(64, 16, 29, 0.92), rgba(30, 8, 14, 0.88));
}

.footer-socials {
    display: flex;
    gap: 12px;
}

.footer-socials a {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: rgba(255,255,255,0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 13px;
    transition: 0.3s;
}

.footer-socials a:hover {
    background: #dfc79e;
    color: #222;
}

@media (max-width: 900px) {
    .hero-bg-image { width: 100%; opacity: 0.3; }
    .hero-bg-gradient { background: #40101d; }
    .hero-badge-unique { display: none; }
}