/* ===== MEDECINS DE FRANCE - DIRECTORY DESIGN ===== */

:root {
    --mdf-blue: #2563eb;
    --mdf-blue-dark: #1e3a8a;
    --mdf-blue-light: #dbeafe;
    --mdf-dark: #0f172a;
    --mdf-gray: #64748b;
    --mdf-light: #f1f5f9;
    --mdf-border: #e2e8f0;
    --mdf-green: #059669;
}

* { box-sizing: border-box; }

body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    color: #1e293b;
    margin: 0;
    background: #ffffff;
    line-height: 1.6;
}

/* HEADER */
.site-header { background: #0f172a; padding: 0;
}

.site-header .container, .header-inner {
    max-width: 1300px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 20px;
    height: 64px;
}

.site-title, .site-logo, .custom-logo-link {
    color: #fff !important;
    text-decoration: none;
    font-family: 'Fraunces', serif;
    font-size: 24px;
    font-weight: 700;
}

.site-title a { color: #fff; text-decoration: none; }

nav li a, .main-navigation li a, #primary-menu li a {
    color: #e2e8f0;
    text-decoration: none;
    padding: 12px 20px;
    font-size: 15px;
    font-weight: 500;
    letter-spacing: .01em;
    transition: color .2s, background .2s;
    border-radius: 6px;
}
nav ul, .main-navigation ul, #primary-menu {
    list-style: none;
    display: flex;
    gap: 0;
    margin: 0;
    padding: 0;
}

nav li a, .main-navigation li a, #primary-menu li a {
    color: #e2e8f0;
    text-decoration: none;
    padding: 10px 16px;
    font-size: 14px;
    font-weight: 500;
    transition: color 0.2s;
}

nav li a:hover, .main-navigation li a:hover, #primary-menu li a:hover {
    color: var(--mdf-blue-light);
}

/* HERO */
.mdf-hero {
    background: linear-gradient(135deg, var(--mdf-dark) 0%, #1e3a5f 100%);
    color: #fff;
    padding: 60px 20px;
    text-align: center;
}

.mdf-hero h1 {
    font-family: 'Fraunces', serif;
    font-size: 36px;
    font-weight: 700;
    margin: 0 0 12px;
}

.mdf-hero p { color: #e2e8f0;
    color: #e2e8f0;
    font-size: 17px;
    max-width: 600px;
    margin: 0 auto 24px;
}

.mdf-search {
    display: flex;
    max-width: 600px;
    margin: 0 auto;
    gap: 10px;
}

.mdf-search input {
    flex: 1;
    padding: 14px 18px;
    border: none;
    border-radius: 8px;
    font-size: 15px;
}

.mdf-search button {
    background: var(--mdf-blue);
    color: #fff;
    border: none;
    padding: 14px 28px;
    border-radius: 8px;
    cursor: pointer;
    font-weight: 600;
    font-size: 15px;
}

/* SECTION TITLES */
.mdf-section-title {
    font-family: 'Fraunces', serif;
    font-size: 24px;
    font-weight: 700;
    margin: 40px 0 16px;
    color: #0f172a;
}

.mdf-subtitle { margin: -10px 0 20px; }
.mdf-subtitle a { color: var(--mdf-blue); text-decoration: none; font-weight: 500; }

/* GRID LAYOUTS */
.mdf-region-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 12px;
    margin: 20px 0;
}

.mdf-list-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 10px;
    margin: 20px 0;
}

.mdf-region-card, .mdf-list-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid var(--mdf-border);
    border-radius: 8px;
    padding: 16px 18px;
    text-decoration: none;
    transition: all 0.2s;
}

.mdf-region-card:hover, .mdf-list-card:hover {
    border-color: var(--mdf-blue);
    box-shadow: 0 4px 12px rgba(37, 99, 235, 0.12);
    transform: translateY(-2px);
}

.mdf-region-name, .mdf-list-name {
    color: #0f172a;
    font-weight: 600;
    font-size: 15px;
}

.mdf-region-count, .mdf-list-count {
    color: var(--mdf-gray);
    font-size: 13px;
    margin-top: 4px;
}

/* PAGE TITLES */
.mdf-page-title {
    font-family: 'Fraunces', serif;
    font-size: 32px;
    font-weight: 700;
    margin: 0 0 8px;
    color: #0f172a;
}

.mdf-page-desc {
    color: var(--mdf-gray);
    font-size: 16px;
    margin: 0 0 24px;
}

/* CONTENT WRAPPER */
.page-content, .entry-content {
    max-width: 1300px;
    margin: 0 auto;
    padding: 30px 20px;
}

.entry-title, h1.entry-title {
    font-family: 'Fraunces', serif;
    color: #0f172a;
}

/* ARCHIVE - BUSINESS LISTINGS */
.archive .page-content, .archive .entry-content,
.tax-region .page-content, .tax-departement .page-content, .tax-ville .page-content,
.post-type-archive-business .page-content {
    max-width: 1300px;
}

/* Business card */
.mdf-business-card, article.type-business {
    background: #fff;
    border: 1px solid var(--mdf-border);
    border-radius: 10px;
    padding: 20px;
    margin-bottom: 16px;
    transition: box-shadow 0.2s;
}

.mdf-business-card:hover, article.type-business:hover {
    box-shadow: 0 4px 16px rgba(0,0,0,0.08);
}

.mdf-business-name, .entry-title.type-business {
    font-size: 18px;
    font-weight: 700;
    margin: 0 0 8px;
}

.mdf-business-name a, .entry-title a {
    color: var(--mdf-blue);
    text-decoration: none;
}

.mdf-business-meta {
    color: var(--mdf-gray);
    font-size: 14px;
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
}

.mdf-business-meta span {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

/* TAXONOMY ARCHIVE HEADER */
.taxonomy-description, .term-description {
    background: var(--mdf-blue-light);
    border-radius: 8px;
    padding: 16px 20px;
    margin-bottom: 24px;
    color: var(--mdf-blue-dark);
    font-size: 15px;
}

/* PAGINATION */
.pagination, .nav-links {
    text-align: center;
    margin: 30px 0;
}

.pagination a, .pagination span, .nav-links a, .nav-links span {
    display: inline-block;
    padding: 8px 14px;
    margin: 0 3px;
    border: 1px solid var(--mdf-border);
    border-radius: 6px;
    text-decoration: none;
    color: #0f172a;
    font-size: 14px;
}

.pagination .current, .nav-links .current {
    background: var(--mdf-blue);
    color: #fff;
    border-color: var(--mdf-blue);
}

.pagination a:hover, .nav-links a:hover {
    border-color: var(--mdf-blue);
    color: var(--mdf-blue);
}

/* FOOTER */
.site-footer, footer {
    background: var(--mdf-dark);
    color: #e2e8f0;
    padding: 40px 20px 20px;
    margin-top: 40px;
}

.site-footer a, footer a { color: #e2e8f0; text-decoration: none; }
.site-footer a:hover, footer a:hover { color: var(--mdf-blue-light); }

.footer-info {
    max-width: 1300px;
    margin: 0 auto;
    text-align: center;
    font-size: 13px;
}

/* RESPONSIVE */
@media (max-width: 768px) {
    .site-header .container, .header-inner {
        flex-direction: column;
        height: auto;
        padding: 12px;
    }
    nav li a, .main-navigation li a, #primary-menu li a {
    color: #e2e8f0;
    text-decoration: none;
    padding: 12px 20px;
    font-size: 15px;
    font-weight: 500;
    letter-spacing: .01em;
    transition: color .2s, background .2s;
    border-radius: 6px;
}
nav ul, .main-navigation ul, #primary-menu {
        flex-wrap: wrap;
        justify-content: center;
    }
    .mdf-hero h1 { font-size: 26px; }
    .mdf-region-grid, .mdf-list-grid { grid-template-columns: 1fr 1fr; }
    .mdf-search { flex-direction: column; }
}

@media (max-width: 480px) {
    .mdf-region-grid, .mdf-list-grid { grid-template-columns: 1fr; }
}

/* ===== Dropdown sub-menu ===== */
.main-nav .sub-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    background: #fff;
    border: 1px solid var(--fdc-border,#e5e7eb);
    border-radius: 0 0 8px 8px;
    box-shadow: 0 8px 24px rgba(0,0,0,.08);
    min-width: 220px;
    z-index: 100;
    padding: .5rem 0;
    list-style: none;
    margin: 0;
}
.main-nav li {
    position: relative;
}
.main-nav li:hover > .sub-menu,
.main-nav li:focus-within > .sub-menu {
    display: block;
}
.main-nav .sub-menu a {
    display: block;
    padding: .6rem 1.25rem;
    color: #374151;
    font-size: .95rem;
    text-decoration: none;
    white-space: nowrap;
}
.main-nav .sub-menu a:hover {
    background: #f3f4f6;
    color: #111;
}
.main-nav .menu-item-has-children > a::after {
    content: ' ▾';
    font-size: .75rem;
}

/* Fix: ensure dropdown is visible */
.main-nav {
    overflow: visible !important;
}
.main-nav ul {
    overflow: visible !important;
}
.main-nav .sub-menu {
    display: none !important;
}
.main-nav li:hover > .sub-menu,
.main-nav li:focus-within > .sub-menu,
.main-nav .menu-item-has-children:hover > .sub-menu {
    display: block !important;
    z-index: 999;
}

/* Fix: pas de underline sur les liens du menu */
.main-nav a,
.main-nav a:hover,
.main-nav a:visited,
.main-nav .current-menu-item > a,
.main-nav .current_page_item > a {
    text-decoration: none !important;
    border-bottom: none !important;
}

/* Fix: Accueil actif */
.main-nav .current-menu-item > a,
.main-nav .current_page_item > a {
    color: #ffffff !important;
    font-weight: 600 !important;
}

/* Fix contraste: tous les textes sur fond sombre */
.site-header,
.site-header a,
.site-header p,
.site-title,
.site-title a,
.site-tagline {
    text-shadow: none !important;
}

/* Mobile: menu responsive */
@media (max-width: 768px) {
    .main-nav ul {
        flex-wrap: wrap !important;
        gap: 2px !important;
    }
    .main-nav a {
        padding: 8px 10px !important;
        font-size: 13px !important;
    }
    .main-nav .sub-menu {
        position: static !important;
        box-shadow: none !important;
        border: none !important;
        background: rgba(255,255,255,0.05) !important;
        padding-left: 1rem !important;
    }
    .main-nav .sub-menu a {
        font-size: 12px !important;
        padding: 5px 10px !important;
    }
    .hero {
        padding: 1.5rem 1rem !important;
    }
    .hero h1 {
        font-size: 1.5rem !important;
    }
    .cards-grid {
        grid-template-columns: 1fr !important;
    }
    .professions-grid {
        grid-template-columns: 1fr 1fr !important;
    }
    .business-meta-grid {
        grid-template-columns: 1fr !important;
    }
}

/* === Fix contraste global: tous les inputs/selects === */
input[type=text],
input[type=search],
input[type=email],
input[type=tel],
input[type=url],
input[type=number],
input[type=password],
select,
textarea {
    background: #ffffff !important;
    color: #1f2937 !important;
    border: 2px solid #d1d5db !important;
    border-radius: 8px !important;
    padding: .75rem 1rem !important;
    font-size: 1rem !important;
}
input::placeholder,
textarea::placeholder {
    color: #6b7280 !important;
    opacity: 1 !important;
}
/* Selects ont besoin d'une flèche visible */
select {
    appearance: auto !important;
    -webkit-appearance: auto !important;
    cursor: pointer !important;
}

/* === Fix: pas de underline sur Accueil === */
.main-nav .current-menu-item > a,
.main-nav .current_page_item > a {
    text-decoration: none !important;
    border-bottom: none !important;
    box-shadow: none !important;
}

/* === Mobile: menu + cartes === */
@media (max-width: 768px) {
    .main-nav ul {
        flex-wrap: wrap !important;
        gap: 2px !important;
        justify-content: center !important;
    }
    .main-nav > ul > li > a {
        padding: 8px 10px !important;
        font-size: 13px !important;
        white-space: nowrap !important;
    }
    .main-nav .sub-menu {
        position: static !important;
        box-shadow: none !important;
        border: none !important;
        background: rgba(255,255,255,0.05) !important;
        padding-left: 1rem !important;
    }
    .main-nav .sub-menu a {
        font-size: 12px !important;
        padding: 5px 10px !important;
    }
    .hero {
        padding: 1.5rem 1rem !important;
    }
    .hero h1 {
        font-size: 1.5rem !important;
    }
    .fdc-search-grid {
        grid-template-columns: 1fr !important;
    }
    .cards-grid {
        grid-template-columns: 1fr !important;
    }
    .business-meta-grid {
        grid-template-columns: 1fr !important;
    }
    /* Spécialités: 2 colonnes sur mobile */
    .fdc-specialties-grid,
    [style*="repeat(4"] {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}
/* mdf-fix-1782848843 */

/* mdf-fix-1782968839 — Search dropdown legibility in hero + better contrast on blue bg */
.hero .fdc-search-suggest,
.hero .fdc-search-suggest li,
.hero .fdc-search-suggest li[role="presentation"] {
    color: #1f2937 !important;
}
.hero .fdc-search-suggest li[role="option"]:hover,
.hero .fdc-search-suggest li[role="option"].fdc-active {
    background: #f0f9ff !important;
    color: #0f172a !important;
}
.hero .fdc-search-suggest li[role="option"] > span:last-child {
    color: #64748b !important;
    font-weight: 400;
}
.hero .fdc-search-suggest li[role="presentation"] {
    color: #475569 !important;
    font-weight: 600;
}

