/* =====================================================
   LB Family Office – CSS personnalisé
   Palette : #CCA1A6 (rose poudré) | #A39382 (taupe)
             #1C1714 (fond sombre espresso)
   Override de familyoffice.css (Crafto Lawyer)
   ===================================================== */

/* ---- Imports typographie ---- */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,300;1,9..40,400&display=swap');

/* ---- Variables ---- */
:root {
    --base-color:        #CCA1A6;   /* Rose poudré – accent principal  */
    --base-color-dark:   #b08a8f;   /* Variante sombre du rose         */
    --accent-taupe:      #A39382;   /* Taupe – accent secondaire       */
    --dark-gray:         #091330;   /* 1C1714 Texte très sombre / fond dark   */
    --dark-bg:  #777777 /*#091330*/;   /* Fond sombre espresso            */
    --dark-bg-2:         #271F1C;   /* Fond légèrement plus clair      */
    --medium-gray:       #8a857f;
    --very-light-gray:   #f6f1ee;   /* Fond clair légèrement chaud     */
    --white:             #ffffff;
    --light-cream:       #faf7f4;
    --alt-font:          'Playfair Display', serif;
    --primary-font:      'DM Sans', sans-serif;
}

/* ---- Base ---- */
body {
    font-family: var(--primary-font);
    font-size: 17px;
    line-height: 32px;
    color: #3a3330;
    background-color: var(--white);
}

/* ---- Surcharges couleurs template ---- */

/* Sections sombres : espresso au lieu de teal */
.bg-blue-whale,
.bg-dark-gray {
    background-color: var(--dark-bg) !important;
}
.bg-blue-licorice {
    background-color: var(--dark-bg-2) !important;
    background-color: var(--base-color) !important;
}
.bg-lbfo-dark {
    background-color: var(--dark-bg);
}

/* Fond très clair chaud */
.bg-very-light-gray {
    background-color: var(--very-light-gray) !important;
}

/* Gradient footer dark */
.bg-gradient-dark-transparent {
    background: linear-gradient(to top, var(--dark-bg) 7%, transparent 70%);
}

/* Accent : rose poudré */
.text-base-color { color: var(--base-color) !important; }
.bg-base-color   { background-color: var(--base-color) !important; }
.border-color-base-color { border-color: var(--base-color) !important; }
.text-dark-gray  { color: var(--dark-gray) !important; }

/* Accent taupe */
.text-accent-taupe  { color: var(--accent-taupe); }
.bg-accent-taupe    { background-color: var(--accent-taupe); }

/* Hover générique */
.text-hover-base-color:hover { color: var(--base-color) !important; }

/* Bouton dark sombre (override #374b57) */
.btn.btn-blue-whale,
.btn.btn-dark-gray {
    background-color: var(--dark-bg) !important;
    color: var(--white) !important;
    border-color: var(--dark-bg) !important;
}
.btn.btn-blue-whale:hover,
.btn.btn-dark-gray:hover {
    background-color: transparent !important;
    border-color: var(--dark-bg) !important;
    color: var(--dark-bg) !important;
}

/* Bouton accent rose */
.btn.btn-lbfo-accent {
    background-color: var(--base-color);
    color: var(--white);
    border: 1px solid var(--base-color);
}
.btn.btn-lbfo-accent:hover {
    background-color: transparent;
    color: var(--base-color);
}

/* ---- Curseur ---- */
.custom-cursor .circle-cursor-inner {
    background-color: var(--base-color);
    width: 10px;
    height: 10px;
}
.custom-cursor .circle-cursor-inner.cursor-link-hover {
    background-color: var(--base-color);
}

/* ---- Logo texte ---- */
.lbfo-logo-text {
    font-family: var(--alt-font);
    font-size: 22px;
    font-weight: 500;
    letter-spacing: 0.03em;
    color: var(--white);
    line-height: 1;
    white-space: nowrap;
}
.lbfo-logo-text em {
    font-style: italic;
    font-weight: 400;
    color: var(--base-color);
}
.lbfo-logo-dark,
.lbfo-logo-text.lbfo-logo-dark {
    color: var(--dark-gray);
}
.lbfo-logo-light {
    color: var(--white);
}
header .navbar-brand {
    text-decoration: none;
}

/* ---- Navigation ---- */
.navbar .navbar-nav .nav-link {
    font-size: 15px;
    font-weight: 400;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

/* Dropdown services */
.navbar .navbar-nav .dropdown.dropdown-with-icon-style02 .dropdown-menu li a {
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.03em;
    color: var(--dark-gray);
    border-bottom: 1px solid var(--very-light-gray);
    padding: 14px 20px;
}
.navbar .navbar-nav .dropdown.dropdown-with-icon-style02 .dropdown-menu li a:hover,
.navbar .navbar-nav .dropdown.dropdown-with-icon-style02 .dropdown-menu li.active:hover > a {
    background-color: var(--base-color);
    color: var(--white);
}

/* Switch langue */
.lbfo-lang-switch {
    font-family: var(--primary-font);
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.7);
    text-decoration: none;
    transition: color 0.2s;
}
.lbfo-lang-switch:hover { color: var(--base-color); }
header.sticky .lbfo-lang-switch { color: var(--dark-gray); }

/* ---- Sections ---- */
section { padding-top: 90px; padding-bottom: 90px; }

/* ---- Typographie ---- */
h1, h2, h3, h4, h5, h6,
.alt-font {
    font-family: var(--alt-font);
}
.alt-font.fw-700 { font-weight: 700; }
.text-decoration-line-bottom-medium {
    text-decoration: underline;
    text-decoration-color: var(--base-color);
    text-underline-offset: 5px;
}
.text-decoration-line-bottom {
    text-decoration: underline;
    text-decoration-color: var(--accent-taupe);
    text-underline-offset: 4px;
}

/* Séparateur accent */
.lbfo-divider {
    width: 48px;
    height: 2px;
    background-color: var(--base-color);
    margin-bottom: 24px;
}
.lbfo-divider-taupe {
    background-color: var(--accent-taupe);
}

/* ---- Hero / Banner ---- */
.lbfo-hero {
    min-height: 100vh;
    background-color: var(--dark-bg);
    position: relative;
    display: flex;
    align-items: center;
}
.lbfo-hero-overlay {
    position: absolute;
    inset: 0;
    background: rgba(28, 23, 20, 0.55);
    z-index: 1;
}
.lbfo-hero-overlay2 {
    position: absolute;
    inset: 0;
    background: rgba(9, 19, 48, 0.80);
    background: rgba(72, 72, 72, 0.80);
    z-index: 1;
}
.lbfo-hero-content {
    position: relative;
    z-index: 2;
}

.lbfo-page-title{position:relative}
.lbfo-page-title::before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:rgb(72 72 72 / .6);z-index:1}
.lbfo-page-title>.container{position:relative;z-index:2}

/* ---- Chiffres clés ---- */
.lbfo-stat-number {
    font-family: var(--alt-font);
    font-size: 3.5rem;
    font-weight: 700;
    color: var(--base-color);
    line-height: 1;
    letter-spacing: -0.02em;
}
.lbfo-stat-label {
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.6);
    margin-top: 8px;
}
.lbfo-stat-item {
    padding: 40px 20px;
    border-left: 1px solid rgba(255,255,255,0.08);
}
.lbfo-stat-item:first-child { border-left: none; }

/* ---- Carte service ---- */
.lbfo-service-card {
    padding: 48px 40px;
    border: 1px solid rgba(163, 147, 130, 0.2);
    border-radius: 4px;
    transition: border-color 0.3s, transform 0.3s;
    background: var(--white);
}
.lbfo-service-card:hover {
    border-color: var(--base-color);
    transform: translateY(-4px);
}
.lbfo-service-icon {
    width: 52px;
    height: 52px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(204, 161, 166, 0.12);
    border-radius: 50%;
    margin-bottom: 24px;
    color: var(--base-color);
    font-size: 22px;
}

/* ---- Équipe ---- */
.lbfo-team-card {
    position: relative;
    overflow: hidden;
    border-radius: 4px;
}
.lbfo-team-card img {
    width: 100%;
    display: block;
    transition: transform 0.5s ease;
    filter: grayscale(20%);
}
.lbfo-team-card:hover img {
    transform: scale(1.04);
}
.lbfo-team-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 32px;
    background: linear-gradient(to top, rgba(28,23,20,0.92) 0%, transparent 100%);
}
.lbfo-team-name {
    font-family: var(--alt-font);
    font-size: 20px;
    font-weight: 500;
    color: var(--white);
    margin-bottom: 4px;
}
.lbfo-team-role {
    font-size: 13px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--base-color);
}

/* ---- Citation ---- */
.lbfo-quote-mark {
    font-family: var(--alt-font);
    font-size: 120px;
    line-height: 0.8;
    color: var(--base-color);
    opacity: 0.6;
    display: block;
}
.lbfo-quote-text {
    font-family: var(--alt-font);
    font-size: 1.6rem;
    font-style: italic;
    font-weight: 400;
    line-height: 1.55;
    color: var(--white);
}
.lbfo-quote-author {
    font-size: 13px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--accent-taupe);
    margin-top: 24px;
}

/* ---- Footer ---- */
.footer-dark {
    color: rgba(255,255,255,0.5);
}
.footer-dark p,
.footer-dark a {
    color: rgba(255,255,255,0.75);
    text-decoration: none;
}
.footer-dark a:hover { color: var(--base-color); }
.lbfo-tagline {
    font-size: 12px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.35);
}
.lbfo-footer-heading {
    font-size: 12px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-weight: 600;
}
.lbfo-footer-nav li {
    margin-bottom: 10px;
}
.lbfo-lang-switch-footer {
    font-size: 13px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.5);
    text-decoration: none;
}

/* ---- Contact ---- */
.lbfo-form-control {
    background: transparent;
    border: none;
    border-bottom: 1px solid rgba(163, 147, 130, 0.4);
    border-radius: 0;
    padding: 12px 0;
    font-size: 15px;
    color: var(--dark-gray);
    transition: border-color 0.3s;
}
.lbfo-form-control:focus {
    border-bottom-color: var(--base-color);
    box-shadow: none;
    background: transparent;
}
.lbfo-form-control::placeholder { color: rgba(58,51,48,0.4); }

/* ---- Page title interne ---- */
.lbfo-page-title {
    background-color: var(--dark-bg);
    padding: 130px 0 80px;
}
.lbfo-page-title h1 {
    font-size: 3.2rem;
    font-weight: 500;
    color: var(--white);
    line-height: 1.15;
    letter-spacing: -0.01em;
}
.lbfo-page-surtitle {
    font-size: 13px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--base-color);
    display: block;
    margin-bottom: 16px;
}

/* ---- Placeholders image (remplacés par photos réelles) ---- */
.lbfo-ph {
    width: 100%;
    border-radius: 4px;
    display: block;
    background: linear-gradient(135deg, var(--dark-bg) 0%, var(--dark-bg-2) 60%, #332820 100%);
    position: relative;
    overflow: hidden;
}
.lbfo-ph::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg,
        rgba(204,161,166,0.06) 0%,
        transparent 50%,
        rgba(163,147,130,0.04) 100%);
}
/* Ratios courants */
.lbfo-ph-56  { aspect-ratio: 560 / 680; }  /* portrait tall */
.lbfo-ph-54  { aspect-ratio: 540 / 640; }
.lbfo-ph-58  { aspect-ratio: 580 / 420; }  /* paysage */
.lbfo-ph-sq  { aspect-ratio: 1 / 1;     border-radius: 50%; }  /* carré/rond */
.lbfo-ph-hero { aspect-ratio: auto; min-height: 100vh; }
/* Variante claire */
.lbfo-ph-light {
    background: linear-gradient(135deg, #c4aa9f 0%, var(--accent-taupe) 100%);
}

/* ---- Responsive ---- */
@media (max-width: 991px) {
    .lbfo-hero { min-height: 80vh; }
    section { padding-top: 60px; padding-bottom: 60px; }
    .lbfo-stat-item { border-left: none; border-top: 1px solid rgba(255,255,255,0.08); }
    .lbfo-stat-item:first-child { border-top: none; }
    .lbfo-page-title { padding: 110px 0 60px; }
    .lbfo-page-title h1 { font-size: 2.4rem; }
}
@media (max-width: 767px) {
    .lbfo-stat-number { font-size: 2.6rem; }
    .lbfo-quote-text { font-size: 1.3rem; }
    .lbfo-service-card { padding: 36px 28px; }
}
@media (max-width: 575px) {
    section { padding-top: 50px; padding-bottom: 50px; }
    .lbfo-logo-text { font-size: 18px; }
}

.lbfo-footer-nav.list-unstyled,
.lbfo-footer-nav p{font-weight: 300;letter-spacing:1px}
.btn.btn-large.acc.bg-blue-licorice.btn-rounded:hover{color:white}