/* ===========================================================================
   RNB — Charte graphique
   ---------------------------------------------------------------------------
   Trois couleurs de marque :
     MARRON GLACE  #AFA1A2  couleur principale
     TAUPE         #8B7A6E  couleur complementaire
     LIN CLAIR     #E2DCD1  couleur par touche

   Les trois teintes de la charte sont des tons moyens a clairs : utilisees
   telles quelles derriere du texte blanc, elles tombent sous le seuil de
   contraste AA (4.5:1). Chaque couleur est donc declinee en une gamme, la
   teinte exacte de la charte restant le palier de reference (400 / 500 / 300).
   Les aplats et surfaces utilisent la teinte de charte ; le texte et les
   boutons utilisent un palier plus fonce, accessible.

   Ce fichier est charge apres Bootstrap : il redefinit les variables CSS de
   Bootstrap 5.3, ce qui suffit a rehabiller tous les composants sans build.
   =========================================================================== */

:root {
    /* --- Marron glace (principale) ------------------------------------- */
    --rnb-marron-50:  #f7f4f4;
    --rnb-marron-100: #efeaea;
    --rnb-marron-200: #dcd3d4;
    --rnb-marron-300: #c6babb;
    --rnb-marron-400: #afa1a2;  /* CHARTE — Marron glace */
    --rnb-marron-500: #9c8e8f;
    --rnb-marron-600: #857778;
    --rnb-marron-700: #6e6162;  /* contraste 6.0:1 sur blanc */
    --rnb-marron-800: #524749;
    --rnb-marron-900: #362f30;

    /* --- Taupe (complementaire) ---------------------------------------- */
    --rnb-taupe-50:  #f6f3f1;
    --rnb-taupe-100: #ebe5e1;
    --rnb-taupe-200: #d8cfc8;
    --rnb-taupe-300: #bfb2a8;
    --rnb-taupe-400: #a5958a;
    --rnb-taupe-500: #8b7a6e;  /* CHARTE — Taupe */
    --rnb-taupe-600: #756658;
    --rnb-taupe-700: #5c4f44;
    --rnb-taupe-800: #423931;
    --rnb-taupe-900: #2b2520;

    /* --- Lin clair (par touche) ---------------------------------------- */
    --rnb-lin-50:  #fbfaf7;
    --rnb-lin-100: #f5f2ec;
    --rnb-lin-200: #ece7de;
    --rnb-lin-300: #e2dcd1;  /* CHARTE — Lin clair */
    --rnb-lin-400: #d0c7b7;
    --rnb-lin-500: #b9ae9a;

    /* --- Couleurs de statut, accordees a la palette --------------------- */
    --rnb-success: #55704f;
    --rnb-danger:  #9c4b44;
    --rnb-warning: #e0b160;
    --rnb-info:    #afc2cc;

    /* --- Typographie ---------------------------------------------------- */
    --rnb-font-body: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --rnb-font-heading: 'Lora', Georgia, 'Times New Roman', serif;
}

/* ===========================================================================
   Remappage des variables Bootstrap
   =========================================================================== */

:root,
[data-bs-theme='light'] {
    --bs-font-sans-serif: var(--rnb-font-body);
    --bs-body-font-family: var(--rnb-font-body);

    --bs-body-bg: #ffffff;
    --bs-body-bg-rgb: 255, 255, 255;
    --bs-body-color: var(--rnb-taupe-900);
    --bs-body-color-rgb: 43, 37, 32;

    --bs-secondary-color: rgba(43, 37, 32, .68);
    --bs-secondary-color-rgb: 117, 102, 88;
    --bs-tertiary-color: rgba(43, 37, 32, .48);

    --bs-secondary-bg: var(--rnb-lin-200);
    --bs-secondary-bg-rgb: 236, 231, 222;
    --bs-tertiary-bg: var(--rnb-lin-100);
    --bs-tertiary-bg-rgb: 245, 242, 236;

    --bs-emphasis-color: var(--rnb-taupe-900);
    --bs-heading-color: var(--rnb-taupe-900);

    --bs-border-color: var(--rnb-lin-300);
    --bs-border-color-translucent: rgba(43, 37, 32, .12);

    /* Roles de marque */
    --bs-primary: var(--rnb-marron-700);
    --bs-primary-rgb: 110, 97, 98;
    --bs-secondary: var(--rnb-taupe-600);
    --bs-secondary-rgb: 117, 102, 88;
    --bs-dark: var(--rnb-taupe-900);
    --bs-dark-rgb: 43, 37, 32;
    --bs-light: var(--rnb-lin-200);
    --bs-light-rgb: 236, 231, 222;

    --bs-success: var(--rnb-success);
    --bs-success-rgb: 85, 112, 79;
    --bs-danger: var(--rnb-danger);
    --bs-danger-rgb: 156, 75, 68;
    --bs-warning: var(--rnb-warning);
    --bs-warning-rgb: 224, 177, 96;
    --bs-info: var(--rnb-info);
    --bs-info-rgb: 175, 194, 204;

    /* Declinaisons subtiles (alertes, badges doux, pastilles) */
    --bs-primary-bg-subtle: var(--rnb-marron-100);
    --bs-primary-border-subtle: var(--rnb-marron-300);
    --bs-primary-text-emphasis: var(--rnb-marron-800);

    --bs-secondary-bg-subtle: var(--rnb-taupe-100);
    --bs-secondary-border-subtle: var(--rnb-taupe-300);
    --bs-secondary-text-emphasis: var(--rnb-taupe-700);

    --bs-success-bg-subtle: #e4ebe2;
    --bs-success-border-subtle: #b9c9b4;
    --bs-success-text-emphasis: #3c5137;

    --bs-danger-bg-subtle: #f4e3e1;
    --bs-danger-border-subtle: #dfb5b1;
    --bs-danger-text-emphasis: #74352f;

    --bs-warning-bg-subtle: #faf0dd;
    --bs-warning-border-subtle: #eed6ac;
    --bs-warning-text-emphasis: #7c5a1f;

    --bs-info-bg-subtle: #eaf0f3;
    --bs-info-border-subtle: #c9d7de;
    --bs-info-text-emphasis: #4a5b66;

    --bs-light-bg-subtle: var(--rnb-lin-100);
    --bs-light-border-subtle: var(--rnb-lin-300);
    --bs-dark-bg-subtle: var(--rnb-taupe-200);
    --bs-dark-border-subtle: var(--rnb-taupe-400);
    --bs-dark-text-emphasis: var(--rnb-taupe-800);

    /* Liens */
    --bs-link-color: var(--rnb-marron-700);
    --bs-link-color-rgb: 110, 97, 98;
    --bs-link-hover-color: var(--rnb-marron-900);
    --bs-link-hover-color-rgb: 54, 47, 48;

    /* Anneau de focus */
    --bs-focus-ring-color: rgba(110, 97, 98, .25);

    /* Formes */
    --bs-border-radius: .5rem;
    --bs-border-radius-sm: .375rem;
    --bs-border-radius-lg: .75rem;
    --bs-border-radius-xl: 1rem;
}

/* ===========================================================================
   Typographie
   =========================================================================== */

body {
    font-family: var(--rnb-font-body);
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, .h1, .h2, .h3, .navbar-brand, .display-1, .display-2, .display-3,
.display-4, .display-5, .display-6 {
    font-family: var(--rnb-font-heading);
    font-weight: 600;
    letter-spacing: -.01em;
}

h4, h5, h6, .h4, .h5, .h6 {
    font-weight: 600;
}

/* Les intertitres en petites capitales structurent les cartes du back-office. */
.text-uppercase.small {
    letter-spacing: .06em;
}

/* ===========================================================================
   Boutons
   Bootstrap ecrit des couleurs litterales dans chaque .btn-* : il faut
   redefinir leurs variables locales, pas seulement --bs-primary.
   =========================================================================== */

.btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--rnb-marron-700);
    --bs-btn-border-color: var(--rnb-marron-700);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--rnb-marron-800);
    --bs-btn-hover-border-color: var(--rnb-marron-800);
    --bs-btn-focus-shadow-rgb: 110, 97, 98;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--rnb-marron-900);
    --bs-btn-active-border-color: var(--rnb-marron-900);
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--rnb-marron-400);
    --bs-btn-disabled-border-color: var(--rnb-marron-400);
}

.btn-outline-primary {
    --bs-btn-color: var(--rnb-marron-700);
    --bs-btn-border-color: var(--rnb-marron-400);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--rnb-marron-700);
    --bs-btn-hover-border-color: var(--rnb-marron-700);
    --bs-btn-focus-shadow-rgb: 110, 97, 98;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--rnb-marron-800);
    --bs-btn-active-border-color: var(--rnb-marron-800);
    --bs-btn-disabled-color: var(--rnb-marron-400);
    --bs-btn-disabled-border-color: var(--rnb-marron-300);
}

.btn-secondary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--rnb-taupe-600);
    --bs-btn-border-color: var(--rnb-taupe-600);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--rnb-taupe-700);
    --bs-btn-hover-border-color: var(--rnb-taupe-700);
    --bs-btn-focus-shadow-rgb: 117, 102, 88;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--rnb-taupe-800);
    --bs-btn-active-border-color: var(--rnb-taupe-800);
}

.btn-outline-secondary {
    --bs-btn-color: var(--rnb-taupe-700);
    --bs-btn-border-color: var(--rnb-lin-400);
    --bs-btn-hover-color: var(--rnb-taupe-900);
    --bs-btn-hover-bg: var(--rnb-lin-200);
    --bs-btn-hover-border-color: var(--rnb-lin-500);
    --bs-btn-focus-shadow-rgb: 117, 102, 88;
    --bs-btn-active-color: var(--rnb-taupe-900);
    --bs-btn-active-bg: var(--rnb-lin-300);
    --bs-btn-active-border-color: var(--rnb-lin-500);
    --bs-btn-disabled-color: var(--rnb-taupe-400);
    --bs-btn-disabled-border-color: var(--rnb-lin-300);
}

.btn-success {
    --bs-btn-bg: var(--rnb-success);
    --bs-btn-border-color: var(--rnb-success);
    --bs-btn-hover-bg: #46603f;
    --bs-btn-hover-border-color: #46603f;
    --bs-btn-active-bg: #3c5137;
    --bs-btn-active-border-color: #3c5137;
    --bs-btn-focus-shadow-rgb: 85, 112, 79;
}

.btn-danger {
    --bs-btn-bg: var(--rnb-danger);
    --bs-btn-border-color: var(--rnb-danger);
    --bs-btn-hover-bg: #853d37;
    --bs-btn-hover-border-color: #853d37;
    --bs-btn-active-bg: #74352f;
    --bs-btn-active-border-color: #74352f;
    --bs-btn-focus-shadow-rgb: 156, 75, 68;
}

.btn-outline-danger {
    --bs-btn-color: var(--rnb-danger);
    --bs-btn-border-color: #dfb5b1;
    --bs-btn-hover-bg: var(--rnb-danger);
    --bs-btn-hover-border-color: var(--rnb-danger);
    --bs-btn-active-bg: #74352f;
    --bs-btn-active-border-color: #74352f;
    --bs-btn-focus-shadow-rgb: 156, 75, 68;
}

.btn-dark {
    --bs-btn-bg: var(--rnb-taupe-900);
    --bs-btn-border-color: var(--rnb-taupe-900);
    --bs-btn-hover-bg: var(--rnb-taupe-800);
    --bs-btn-hover-border-color: var(--rnb-taupe-800);
    --bs-btn-active-bg: var(--rnb-taupe-700);
    --bs-btn-active-border-color: var(--rnb-taupe-700);
}

.btn {
    font-weight: 500;
}

/* ===========================================================================
   Pastilles de statut
   Bootstrap force color:#fff sur .text-bg-{primary,secondary,success,danger,dark}
   et color:#000 sur .text-bg-{light,warning,info} : les fonds ci-dessus ont ete
   choisis en consequence.
   =========================================================================== */

.badge {
    font-weight: 500;
    letter-spacing: .01em;
}

.text-bg-light {
    background-color: var(--rnb-lin-200) !important;
    color: var(--rnb-taupe-800) !important;
}

/* ===========================================================================
   Formulaires
   =========================================================================== */

.form-control,
.form-select {
    border-color: var(--rnb-lin-400);
}

.form-control:focus,
.form-select:focus {
    border-color: var(--rnb-marron-400);
    box-shadow: 0 0 0 .25rem rgba(110, 97, 98, .18);
}

.form-check-input:checked {
    background-color: var(--rnb-marron-700);
    border-color: var(--rnb-marron-700);
}

.form-check-input:focus {
    border-color: var(--rnb-marron-400);
    box-shadow: 0 0 0 .25rem rgba(110, 97, 98, .18);
}

.form-switch .form-check-input:focus:not(:checked) {
    /* Le curseur par defaut de Bootstrap est bleu : on le repasse en marron glace. */
    --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23afa1a2'/%3e%3c/svg%3e");
}

.form-label {
    font-weight: 500;
    color: var(--rnb-taupe-800);
}

.form-text {
    color: var(--rnb-taupe-600);
}

.input-group-text {
    background-color: var(--rnb-lin-100);
    border-color: var(--rnb-lin-400);
    color: var(--rnb-taupe-700);
}

/* ===========================================================================
   Navigation, onglets, pagination
   =========================================================================== */

.nav-pills {
    --bs-nav-pills-link-active-bg: var(--rnb-marron-700);
}

.nav-tabs {
    --bs-nav-tabs-border-color: var(--rnb-lin-300);
    --bs-nav-tabs-link-active-color: var(--rnb-marron-800);
    --bs-nav-tabs-link-active-border-color: var(--rnb-lin-300) var(--rnb-lin-300) #fff;
    --bs-nav-link-color: var(--rnb-taupe-600);
    --bs-nav-link-hover-color: var(--rnb-marron-800);
}

.pagination {
    --bs-pagination-color: var(--rnb-taupe-700);
    --bs-pagination-border-color: var(--rnb-lin-300);
    --bs-pagination-hover-color: var(--rnb-marron-900);
    --bs-pagination-hover-bg: var(--rnb-lin-200);
    --bs-pagination-hover-border-color: var(--rnb-lin-400);
    --bs-pagination-focus-color: var(--rnb-marron-900);
    --bs-pagination-focus-bg: var(--rnb-lin-200);
    --bs-pagination-focus-box-shadow: 0 0 0 .25rem rgba(110, 97, 98, .18);
    --bs-pagination-active-bg: var(--rnb-marron-700);
    --bs-pagination-active-border-color: var(--rnb-marron-700);
    --bs-pagination-disabled-color: var(--rnb-taupe-400);
    --bs-pagination-disabled-border-color: var(--rnb-lin-300);
}

.dropdown-menu {
    --bs-dropdown-border-color: var(--rnb-lin-300);
    --bs-dropdown-link-hover-bg: var(--rnb-lin-100);
    --bs-dropdown-link-active-bg: var(--rnb-marron-700);
    --bs-dropdown-box-shadow: 0 .5rem 1.5rem rgba(43, 37, 32, .12);
}

.breadcrumb {
    --bs-breadcrumb-divider-color: var(--rnb-taupe-400);
    --bs-breadcrumb-item-active-color: var(--rnb-taupe-600);
}

/* ===========================================================================
   Cartes, tableaux, listes
   =========================================================================== */

.card {
    --bs-card-border-color: var(--rnb-lin-300);
}

.card-header.bg-white {
    border-bottom-color: var(--rnb-lin-300);
    color: var(--rnb-taupe-800);
}

.shadow-sm {
    box-shadow: 0 .125rem .5rem rgba(43, 37, 32, .07) !important;
}

.shadow {
    box-shadow: 0 .75rem 2rem rgba(43, 37, 32, .12) !important;
}

.table {
    --bs-table-border-color: var(--rnb-lin-300);
    --bs-table-hover-bg: var(--rnb-lin-100);
    --bs-table-striped-bg: var(--rnb-lin-50);
}

.table > thead.table-light th,
.table-light > :not(caption) > * > * {
    background-color: var(--rnb-lin-200);
    color: var(--rnb-taupe-800);
    border-bottom-color: var(--rnb-lin-400);
    font-weight: 600;
}

.list-group {
    --bs-list-group-border-color: var(--rnb-lin-300);
    --bs-list-group-action-hover-bg: var(--rnb-lin-100);
    --bs-list-group-active-bg: var(--rnb-marron-700);
    --bs-list-group-active-border-color: var(--rnb-marron-700);
}

hr {
    border-color: var(--rnb-lin-400);
    opacity: 1;
}

code {
    color: var(--rnb-marron-800);
    background-color: var(--rnb-lin-100);
    padding: .1em .35em;
    border-radius: .25rem;
}

/* ===========================================================================
   Site public
   =========================================================================== */

.object-fit-cover {
    object-fit: cover;
}

/* Le bandeau d accueil combine les deux couleurs de marque. */
.hero {
    /* Les deux extremites du degrade restent au-dessus de 6:1 avec du texte blanc. */
    background: linear-gradient(135deg, var(--rnb-taupe-700) 0%, var(--rnb-marron-700) 100%);
    color: #fff;
    position: relative;
}

.hero .opacity-75 {
    opacity: .92 !important;
}

.hero::after {
    /* Liseré lin clair : la couleur par touche referme le bandeau. */
    content: '';
    position: absolute;
    inset: auto 0 0 0;
    height: 4px;
    background: var(--rnb-lin-300);
}

.hero h1,
.hero .display-5 {
    color: #fff;
}

.navbar-brand {
    color: var(--rnb-marron-800) !important;
    font-weight: 600;
}

.navbar .nav-link {
    color: var(--rnb-taupe-700);
    font-weight: 500;
}

.navbar .nav-link:hover,
.navbar .nav-link.active {
    color: var(--rnb-marron-800);
}

.property-card {
    transition: transform .18s ease, box-shadow .18s ease;
    background-color: #fff;
}

.property-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 .75rem 1.5rem rgba(43, 37, 32, .13) !important;
}

.rnb-footer {
    background-color: var(--rnb-taupe-900);
    color: var(--rnb-lin-300);
}

.rnb-footer h5,
.rnb-footer h6 {
    color: #fff;
}

.rnb-footer a {
    color: var(--rnb-lin-400);
    text-decoration: none;
}

.rnb-footer a:hover {
    color: #fff;
}

.rnb-footer hr {
    border-color: var(--rnb-taupe-700);
}

/* ===========================================================================
   Back-office
   =========================================================================== */

.admin-sidebar {
    width: 250px;
    min-height: 100vh;
    position: sticky;
    top: 0;
    background-color: var(--rnb-taupe-800);
    color: #fff;
}

.admin-sidebar .nav-link {
    border-radius: .5rem;
    color: var(--rnb-lin-300) !important;
    font-weight: 500;
}

.admin-sidebar .nav-link:hover {
    background-color: rgba(255, 255, 255, .08);
    color: #fff !important;
}

/* La page courante est marquee par une touche de lin clair : c est le role que
   la charte donne a cette couleur, et le texte fonce y passe a 11:1. */
.admin-sidebar .nav-link.active {
    background-color: var(--rnb-lin-300);
    color: var(--rnb-taupe-900) !important;
    font-weight: 600;
}

.rnb-offcanvas-nav {
    background-color: var(--rnb-taupe-800);
    color: #fff;
}

.rnb-offcanvas-nav .nav-link {
    color: var(--rnb-lin-300) !important;
    border-radius: .5rem;
}

.rnb-offcanvas-nav .nav-link.active {
    background-color: var(--rnb-lin-300);
    color: var(--rnb-taupe-900) !important;
    font-weight: 600;
}

/* ===========================================================================
   Calendrier de disponibilite
   =========================================================================== */

.rnb-calendar {
    table-layout: fixed;
}

.rnb-calendar td {
    height: 44px;
    vertical-align: middle;
    text-align: center;
    font-size: .875rem;
}

/* Nuit deja vendue : marron glace, la couleur principale. */
.rnb-calendar td.is-busy {
    background-color: var(--rnb-marron-300);
    color: var(--rnb-marron-900);
    text-decoration: line-through;
}

/* Blocage manuel : lin clair, la couleur par touche. */
.rnb-calendar td.is-blocked {
    background-color: var(--rnb-lin-300);
    color: var(--rnb-taupe-700);
}

.rnb-calendar td.is-past {
    color: var(--rnb-taupe-300);
}

/* Pastilles de legende sous les calendriers. */
.rnb-legend {
    display: inline-block;
    width: 1.25rem;
    height: .9rem;
    border-radius: .2rem;
    vertical-align: -1px;
    border: 1px solid rgba(43, 37, 32, .12);
}

.rnb-legend-busy {
    background-color: var(--rnb-marron-300);
}

.rnb-legend-blocked {
    background-color: var(--rnb-lin-300);
}
