.bn-notice { background:#f3f1ff; border:1px solid #ded8ff; border-radius:8px; padding:14px 16px; margin:0 0 16px; color:#2b2440; }
.bn-notice-warning { background:#fff6e5; border-color:#ffe1a8; }
.bn-form { max-width:480px; }
.bn-form label { display:block; font-weight:600; margin-bottom:4px; }
.bn-form input[type=text], .bn-form input[type=email], .bn-form input[type=password], .bn-form select, .bn-form textarea {
	width:100%; padding:10px 12px; border:1px solid #d9d5ec; border-radius:8px; font-size:15px; margin-top:4px; box-sizing:border-box;
}
.bn-checklist { display:flex; flex-wrap:wrap; gap:10px; }
.bn-check { font-weight:400 !important; display:flex; align-items:center; gap:6px; background:#f6f4ff; border:1px solid #e2ddfb; border-radius:20px; padding:6px 12px; }
.bn-check input { width:auto !important; }
.bn-departements-scroll { max-height:260px; overflow-y:auto; border:1px solid #d9d5ec; border-radius:8px; padding:12px; margin-bottom:8px; }
.bn-offer-single-departements { color:#4b4560; font-size:14px; margin:0 0 16px; }
.bn-btn { background:#5b4fe9; color:#fff; border:none; border-radius:8px; padding:10px 20px; font-weight:600; cursor:pointer; }
.bn-btn:hover { background:#4a3fd1; }
.bn-btn-small { padding:6px 14px; font-size:13px; }
.bn-btn-outline { background:transparent; color:#5b4fe9; border:1px solid #5b4fe9; }
.bn-hint { color:#6b6480; font-size:13px; }

.bn-badge-verified { display:inline-flex; align-items:center; gap:4px; background:#eafaf0; color:#1a8f4c; border:1px solid #b7ecc9; border-radius:20px; padding:2px 10px; font-size:12px; font-weight:600; }
.bn-contact-form textarea { width:100%; box-sizing:border-box; border:1px solid #d9d5ec; border-radius:8px; padding:8px; margin-bottom:8px; }
.bn-required { color:#e0483f; }

/* --- Offer cards + single offer page ---------------------------------
   Built with the theme's own design tokens (the --foreground/--background/
   --primary/--secondary/--muted/--border/--card/--radius custom properties
   already defined site-wide) rather than hard-coded colors, so these match
   whatever the live theme actually looks like instead of a guessed palette.
   Fallback values after each var() are this theme's current values, used
   only if the variable isn't defined for some reason. */
.bn-offers-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:24px; }
.bn-offer-card { display:flex; flex-direction:column; background:var(--secondary, #ede7de); border-radius:var(--radius, .75rem); overflow:hidden; transition:transform .3s ease; }
.bn-offer-card:hover { transform:translateY(-4px); }
.bn-offer-card-media { display:block; }
.bn-offer-media-image { position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--muted, #ede7de); }
.bn-offer-media-image img { width:100%; height:100%; object-fit:cover; display:block; }
.bn-offer-media-pdf { display:flex; align-items:center; gap:10px; aspect-ratio:4/3; background:var(--muted, #ede7de); padding:20px; box-sizing:border-box; text-decoration:none; color:var(--foreground, #111317); }
.bn-offer-media-pdf-icon { font-size:28px; line-height:1; }
.bn-offer-media-pdf-label { font-size:13px; font-weight:600; }
a.bn-offer-media-pdf-link:hover { background:var(--accent, #e9e2d8); }
.bn-offer-media-pdf-open { margin-left:auto; font-size:12px; color:var(--primary, #2323c7); font-weight:600; white-space:nowrap; }
.bn-offer-card-body { padding:18px 20px 22px; display:flex; flex-direction:column; flex:1; }
.bn-offer-card-meta { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:10px; }
.bn-offer-card-region { font-size:12px; font-weight:600; color:var(--muted-foreground, #6b6480); }
.bn-offer-card-title { margin:0 0 8px; font-size:19px; font-weight:700; line-height:1.25; }
.bn-offer-card-title a { color:var(--foreground, #111317); text-decoration:none; }
.bn-offer-card-title a:hover { color:var(--primary, #2323c7); }
.bn-offer-card-excerpt { margin:0; color:var(--muted-foreground, #6b6480); font-size:14px; line-height:1.55; flex:1; }
.bn-offer-card-footer { display:flex; align-items:center; justify-content:space-between; margin-top:16px; padding-top:14px; border-top:1px solid var(--border, #d9d3c9); }
.bn-offer-card-date { font-size:12px; color:var(--muted-foreground, #6b6480); }
.bn-offer-card-arrow { display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:50%; background:var(--card, #fff); color:var(--primary, #2323c7); text-decoration:none; font-weight:700; transition:background-color .2s ease, color .2s ease; }
.bn-offer-card-arrow:hover { background:var(--primary, #2323c7); color:#fff; }

.bn-offer-single-page { max-width:900px; margin:0 auto; padding:48px 24px 64px; box-sizing:border-box; }
.bn-offer-single-title { font-size:28px; font-weight:700; line-height:1.25; margin:0 0 24px; color:var(--foreground, #111317); max-width:760px; margin-left:auto; margin-right:auto; }
.bn-offer-single { max-width:760px; margin:0 auto; }
.bn-offer-single .bn-offer-media-image,
.bn-offer-single .bn-offer-media-pdf { aspect-ratio:16/9; border-radius:var(--radius, .75rem); margin-bottom:20px; }
.bn-offer-single-meta { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:16px; }
.bn-offer-single-desc { line-height:1.7; margin-bottom:24px; }
.bn-offer-single-desc p:last-child { margin-bottom:0; }

.bn-requests { display:grid; gap:10px; margin-bottom:24px; }
.bn-request-card { border:1px solid #e5e1f7; border-radius:10px; padding:12px 16px; }
.bn-status-accepted { border-color:#8fdba0; background:#f3fbf4; }
.bn-status-declined { border-color:#f0b3b3; background:#fdf4f4; }

.bn-map-wrap { display:flex; gap:24px; flex-wrap:wrap; align-items:flex-start; }
.bn-region-list { flex:0 0 280px; max-height:520px; overflow-y:auto; }
.bn-breadcrumb { font-size:13px; color:#6b6480; margin:0 0 10px; padding-bottom:10px; border-bottom:1px solid #eee; }
.bn-breadcrumb a { color:#5b4fe9; text-decoration:none; }
.bn-breadcrumb a:hover { text-decoration:underline; }
.bn-region-row { padding:12px 0; border-bottom:1px solid #eee; display:flex; flex-direction:column; gap:4px; }
.bn-region-row.bn-clickable { cursor:pointer; border-radius:8px; padding:12px 10px; margin:0 -10px; }
.bn-region-row.bn-clickable:hover { background:#f6f4ff; }
.bn-dot { display:none; }
.bn-region-count { color:#6b6480; font-size:13px; }
.bn-map { flex:1 1 480px; min-width:280px; border-radius:12px; overflow:hidden; border:1px solid #e5e1f7; }
.bn-bubble-label { background:#5b4fe9; color:#fff; border:none; box-shadow:none; font-weight:700; font-size:11px; border-radius:20px; padding:1px 5px; }
.bn-bubble-label::before { display:none; }

.bn-bell-wrap { position:relative; display:inline-block; margin-bottom:16px; }
.bn-bell-btn { background:#f6f4ff; border:1px solid #e2ddfb; border-radius:20px; padding:6px 14px; font-size:14px; cursor:pointer; display:inline-flex; align-items:center; gap:6px; }
.bn-bell-count { background:#e0483f; color:#fff; border-radius:12px; font-size:11px; font-weight:700; padding:1px 7px; min-width:14px; text-align:center; }
.bn-bell-panel { position:absolute; top:100%; left:0; margin-top:6px; background:#fff; border:1px solid #e5e1f7; border-radius:10px; box-shadow:0 6px 20px rgba(20,10,50,.12); padding:10px 14px; min-width:260px; z-index:30; }
.bn-bell-items { list-style:none; margin:0; padding:0; }
.bn-bell-items li { padding:6px 0; border-bottom:1px solid #f0eefc; font-size:13px; }
.bn-bell-items li:last-child { border-bottom:none; }

.bn-thread { margin-top:14px; border-top:1px solid #eee; padding-top:12px; }
.bn-thread-messages { display:flex; flex-direction:column; gap:8px; max-height:320px; overflow-y:auto; margin-bottom:10px; padding-right:4px; }
.bn-msg { max-width:80%; border-radius:12px; padding:8px 12px; font-size:14px; }
.bn-msg-mine { align-self:flex-end; background:#5b4fe9; color:#fff; }
.bn-msg-theirs { align-self:flex-start; background:#f3f1ff; color:#2b2440; }
.bn-msg-body { margin:0 0 4px; white-space:pre-wrap; }
.bn-msg-attachment { margin:0 0 4px; font-size:13px; }
.bn-msg-mine .bn-msg-attachment a { color:#fff; text-decoration:underline; }
.bn-msg-time { display:block; font-size:11px; opacity:.7; }
.bn-thread-form textarea { width:100%; box-sizing:border-box; border:1px solid #d9d5ec; border-radius:8px; padding:8px; margin-bottom:6px; }
.bn-thread-form-row { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }

.bn-community-hero { text-align:center; max-width:720px; margin:0 auto 32px; }
.bn-community-hero h1 { font-size:2.1rem; line-height:1.2; margin:0 0 12px; }
.bn-community-hero p { color:#6b6480; font-size:1.05rem; margin:0; }
.bn-community-cta { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; margin:28px 0; }
.bn-community-section { max-width:1100px; margin:0 auto; }
.bn-community-section h2 { margin:40px 0 16px; }

/* --- WooCommerce "My Account" integration (see class-bn-account.php) --- */
.woocommerce-account .woocommerce-MyAccount-navigation ul {
	list-style:none !important; margin:0 0 24px; padding:0;
	border:1px solid #e5e1f7; border-radius:12px; overflow:hidden; background:#fff;
}
.woocommerce-account .woocommerce-MyAccount-navigation-link {
	border-bottom:1px solid #f0eefc; list-style:none;
}
.woocommerce-account .woocommerce-MyAccount-navigation-link:last-child { border-bottom:none; }
.woocommerce-account .woocommerce-MyAccount-navigation-link a {
	display:block; padding:13px 18px; color:#2b2440; font-weight:600; font-size:15px;
	text-decoration:none; border-left:3px solid transparent;
	transition:background-color .15s ease, border-color .15s ease;
}
.woocommerce-account .woocommerce-MyAccount-navigation-link a:hover { background:#f6f4ff; }
.woocommerce-account .woocommerce-MyAccount-navigation-link.is-active a {
	background:#fff6ec; border-left-color:#f7931e; color:#b5590a;
}
.woocommerce-account .woocommerce-MyAccount-navigation-link--poster-une-offre a,
.woocommerce-account .woocommerce-MyAccount-navigation-link--voir-les-offres a,
.woocommerce-account .woocommerce-MyAccount-navigation-link--voir-mes-offres a { color:#5b4fe9; }
.woocommerce-account .woocommerce-MyAccount-navigation-link--poster-une-offre.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation-link--voir-les-offres.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation-link--voir-mes-offres.is-active a {
	background:#f3f1ff; border-left-color:#5b4fe9; color:#4a3fd1;
}
.woocommerce-account .woocommerce-MyAccount-content {
	background:#fff; border:1px solid #e5e1f7; border-radius:12px; padding:24px 28px;
}
.bn-account-heading {
	margin:0 0 16px; padding-bottom:12px; font-size:22px; border-bottom:2px solid #5b4fe9;
}
.bn-account-hello { color:#4b4560; }
.bn-account-quicklinks {
	display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); gap:14px; margin-top:20px;
}
.bn-account-quicklink {
	display:block; border:1px solid #e5e1f7; border-radius:10px; padding:16px 18px;
	text-decoration:none; transition:box-shadow .15s ease, border-color .15s ease;
}
.bn-account-quicklink:hover { border-color:#5b4fe9; box-shadow:0 4px 14px rgba(91,79,233,.12); }
.bn-account-quicklink-primary { background:#fff6ec; border-color:#f7931e; }
.bn-account-quicklink-title { display:block; font-weight:700; color:#2b2440; margin-bottom:4px; }
.bn-account-quicklink-desc { display:block; font-size:13px; color:#6b6480; }
