/* =============================================================================
   DOMAINE DU BAMBOIS — PAGE GUIDE / LIVRET D'ACCUEIL
   Version: 1.0.0

   Tous les sélecteurs sont préfixés .dbb-guide-* pour éviter tout conflit.
   S'appuie sur les variables CSS de global.css.
   ============================================================================= */

/* ── Variables locales ────────────────────────────────────────────────────── */
.dbb-guide-page {
	--guide-max-width:  1200px;
	--guide-px:         clamp(20px, 5vw, 60px);
	--guide-accent:     var(--dbb-gold);
	--guide-accent-dk:  #a8893a;
	--guide-primary:    var(--dbb-green-deep);
	--guide-bg-alt:     var(--dbb-off-white);
}

/* ═══════════════════════════════════════════════════════════════════════════
   SWITCHER DE LANGUE
   ═══════════════════════════════════════════════════════════════════════════ */

.dbb-lang-switcher {
	display:       flex;
	gap:           10px;
	margin-bottom: 28px;
}

.dbb-lang-btn {
	display:         flex;
	align-items:     center;
	justify-content: center;
	width:           44px;
	height:          44px;
	border-radius:   50%;
	background:      #FFFFFF;
	border:          1.5px solid rgba(47, 79, 62, 0.12);
	box-shadow:      0 2px 8px rgba(0, 0, 0, 0.07);
	text-decoration: none;
	transition:      transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
	overflow:        hidden; /* clip le SVG dans le cercle */
}

/* Drapeau SVG inline — remplit tout le cercle */
.dbb-lang-btn .dbb-flag {
	width:          100%;
	height:         100%;
	border-radius:  50%;
	display:        block;
	pointer-events: none;
}

.dbb-lang-btn:hover {
	transform:    scale(1.10);
	box-shadow:   0 5px 18px rgba(47, 79, 62, 0.18);
	border-color: rgba(47, 79, 62, 0.25);
}

.dbb-lang-btn.is-active {
	border-color: var(--dbb-gold);
	box-shadow:
		0 2px 8px rgba(0, 0, 0, 0.07),
		0 0 0 3px rgba(200, 169, 106, 0.28);
	transform:    scale(1.05);
}


/* ═══════════════════════════════════════════════════════════════════════════
   NAVIGATION MOBILE FIXE (bottom bar) — cachée par défaut (desktop)
   ═══════════════════════════════════════════════════════════════════════════ */

.dbb-guide-nav-mobile {
	display: none;
}

@media (min-width: 769px) {
	.dbb-guide-nav-mobile {
		display:        none !important;
		visibility:     hidden !important;
		pointer-events: none !important;
	}
}

/* ═══════════════════════════════════════════════════════════════════════════
   NAVIGATION LATÉRALE FIXE
   ═══════════════════════════════════════════════════════════════════════════ */

.dbb-guide-nav {
	position:       fixed;
	right:          24px;
	top:            50%;
	transform:      translateY(-50%);
	z-index:        200;
	background:     #FFFFFF;
	border-radius:  50px;
	padding:        14px 10px 8px 10px !important;
	box-shadow:
		0 4px 20px rgba(47, 79, 62, 0.10),
		0 1px 4px  rgba(0, 0, 0, 0.06);
}

.dbb-guide-nav-list {
	display:              flex;
	flex-direction:       column;
	align-items:          center;
	gap:                  6px;
	list-style:           none;
	margin:               0 !important;
	margin-top:           0 !important;
	margin-bottom:        0 !important;
	margin-block-start:   0 !important;
	margin-block-end:     0 !important;
	padding:              0 !important;
	padding-top:          0 !important;
	padding-bottom:       0 !important;
	padding-inline-start: 0 !important;
	padding-inline-end:   0 !important;
}

.dbb-guide-nav-item {
	position:   relative;
	list-style: none; /* neutralise les styles li {} du thème WordPress */
	padding:    0;    /* reset padding-left éventuel appliqué par le thème sur li */
	margin:     0;    /* reset margin-left éventuel */
}

/* Supprime tout bullet pseudo-élément injecté par le thème sur les <li> (non ciblé par list-style: none) */
.dbb-guide-nav-item::before,
.dbb-guide-nav-item::after {
	content: none;
	display: none;
}

.dbb-guide-nav-item a {
	display:         flex;
	align-items:     center;
	justify-content: center;
	width:           44px;
	height:          44px;
	border-radius:   50%;
	background:      rgba(247, 245, 242, 0.8);
	color:           var(--dbb-text-muted);
	text-decoration: none;
	transition:      all 0.35s cubic-bezier(0.175, 0.885, 0.32, 1.275);
	position:        relative;
}

.dbb-guide-nav-item a svg {
	width:            18px;
	height:           18px;
	stroke:           currentColor;
	fill:             none;
	stroke-width:     1.75;
	stroke-linecap:   round;
	stroke-linejoin:  round;
	transition:       stroke var(--dbb-transition);
}

/* Tooltip (label au survol) */
.dbb-guide-nav-item a::before {
	content:          attr(data-tooltip);
	position:         absolute;
	right:            calc(100% + 14px);
	top:              50%;
	transform:        translateY(-50%) translateX(8px);
	background:       var(--dbb-green-deep);
	color:            #FFFFFF;
	padding:          7px 14px;
	border-radius:    8px;
	font-family:      var(--dbb-font-body);
	font-size:        0.78rem;
	font-weight:      500;
	white-space:      nowrap;
	opacity:          0;
	pointer-events:   none;
	transition:       opacity 0.25s ease, transform 0.25s ease;
}

.dbb-guide-nav-item a::after {
	content:          '';
	position:         absolute;
	right:            calc(100% + 8px);
	top:              50%;
	transform:        translateY(-50%);
	width:            0;
	height:           0;
	border-top:       5px solid transparent;
	border-bottom:    5px solid transparent;
	border-left:      6px solid var(--dbb-green-deep);
	opacity:          0;
	pointer-events:   none;
	transition:       opacity 0.25s ease;
}

.dbb-guide-nav-item a:hover::before {
	opacity:   1;
	transform: translateY(-50%) translateX(0);
}

.dbb-guide-nav-item a:hover::after {
	opacity: 1;
}

/* État actif + hover */
.dbb-guide-nav-item a:hover,
.dbb-guide-nav-item a.is-active {
	background: var(--dbb-green-deep);
	color:      #FFFFFF;
	transform:  scale(1.12);
	box-shadow: 0 6px 20px rgba(47, 79, 62, 0.30);
}

.dbb-guide-nav-item a:hover svg,
.dbb-guide-nav-item a.is-active svg {
	stroke: #FFFFFF;
}

.dbb-guide-nav-item a.is-active {
	transform: scale(1.08);
}

/* ═══════════════════════════════════════════════════════════════════════════
   SECTIONS — BASE
   ═══════════════════════════════════════════════════════════════════════════ */

.dbb-guide-section {
	padding:    80px 0;
	background: #FFFFFF;
}

.dbb-guide-section--alt {
	background: var(--dbb-off-white);
}

/* Scroll reveal */
.dbb-guide-reveal {
	opacity:    0;
	transform:  translateY(28px);
	transition: opacity 0.6s ease, transform 0.6s ease;
}

.dbb-guide-reveal.is-visible {
	opacity:   1;
	transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
	.dbb-guide-reveal {
		opacity:    1;
		transform:  none;
		transition: none;
	}
}

/* Container centré */
.dbb-guide-container {
	max-width:     var(--guide-max-width);
	margin-inline: auto;
	padding-inline: var(--guide-px);
}

/* En-tête de section */
.dbb-guide-section-header {
	text-align:    center;
	margin-bottom: 56px;
}

.dbb-guide-section-label {
	display:        inline-flex;
	align-items:    center;
	gap:            8px;
	font-family:    var(--dbb-font-body);
	font-size:      0.68rem;
	font-weight:    500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color:          var(--dbb-gold);
	margin-bottom:  14px;
}

.dbb-guide-section-label::before,
.dbb-guide-section-label::after {
	content:    '';
	display:    block;
	width:      20px;
	height:     1px;
	background: var(--dbb-gold);
	opacity:    0.5;
}

.dbb-guide-section-title {
	font-family:    var(--dbb-font-display);
	font-size:      clamp(1.8rem, 3vw, 2.6rem);
	font-weight:    600;
	color:          var(--dbb-green-deep);
	letter-spacing: -0.02em;
	margin-bottom:  14px;
	line-height:    1.15;
}

.dbb-guide-section-desc {
	font-family: var(--dbb-font-body);
	font-size:   1rem;
	font-weight: 300;
	color:       var(--dbb-text-muted);
	max-width:   56ch;
	margin:      0 auto;
	line-height: 1.7;
}

/* ═══════════════════════════════════════════════════════════════════════════
   SECTION BIENVENUE
   ═══════════════════════════════════════════════════════════════════════════ */

.dbb-guide-section--welcome {
	padding: clamp(60px, 8vh, 100px) 0;
}

.dbb-guide-welcome-grid {
	display:     grid;
	grid-template-columns: 1fr 1fr;
	gap:         clamp(40px, 6vw, 80px);
	align-items: center;
}

/* Eyebrow */
.dbb-guide-eyebrow {
	font-family:    var(--dbb-font-body);
	font-size:      0.68rem;
	font-weight:    500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color:          var(--dbb-gold);
	margin-bottom:  16px;
	display:        flex;
	align-items:    center;
	gap:            10px;
}

.dbb-guide-eyebrow::before {
	content:    '';
	display:    block;
	width:      24px;
	height:     1px;
	background: var(--dbb-gold);
	opacity:    0.6;
}

.dbb-guide-welcome-title {
	font-family:    var(--dbb-font-display);
	font-size:      clamp(2rem, 3.5vw, 3rem);
	font-weight:    600;
	color:          var(--dbb-green-deep);
	letter-spacing: -0.025em;
	line-height:    1.15;
	margin-bottom:  24px;
}

.dbb-guide-welcome-title em {
	font-style: italic;
	color:      var(--dbb-gold);
}

.dbb-guide-welcome-text {
	font-family:   var(--dbb-font-body);
	font-size:     0.96rem;
	font-weight:   300;
	color:         var(--dbb-text-body);
	line-height:   1.8;
	margin-bottom: 16px;
}

.dbb-guide-welcome-text:last-of-type {
	margin-bottom: 32px;
}

/* Feature pills */
.dbb-guide-welcome-features {
	display:        flex;
	flex-direction: column;
	gap:            12px;
}

.dbb-guide-welcome-feature {
	display:       flex;
	align-items:   center;
	gap:           16px;
	padding:       14px 20px;
	background:    #FFFFFF;
	border:        1px solid rgba(47, 79, 62, 0.08);
	border-radius: 12px;
	font-family:   var(--dbb-font-body);
	font-size:     0.88rem;
	font-weight:   400;
	color:         var(--dbb-text-dark);
	transition:    transform var(--dbb-transition), box-shadow var(--dbb-transition);
}

.dbb-guide-section--welcome .dbb-guide-welcome-feature {
	background: rgba(247, 245, 242, 0.6);
}

.dbb-guide-welcome-feature:hover {
	transform:  translateX(6px);
	box-shadow: 0 4px 16px rgba(200, 169, 106, 0.12);
}

.dbb-guide-welcome-feature-icon {
	flex-shrink:     0;
	width:           36px;
	height:          36px;
	border-radius:   50%;
	background:      rgba(47, 79, 62, 0.07);
	display:         flex;
	align-items:     center;
	justify-content: center;
}

.dbb-guide-welcome-feature-icon svg {
	width:          17px;
	height:         17px;
	stroke:         var(--dbb-green-deep);
	fill:           none;
	stroke-width:   2;
	stroke-linecap: round;
}

/* Image bienvenue */
.dbb-guide-welcome-image {
	border-radius: 20px;
	overflow:      hidden;
	box-shadow:    0 20px 60px rgba(47, 79, 62, 0.15);
	position:      relative;
}

.dbb-guide-welcome-image img {
	width:      100%;
	height:     520px;
	object-fit: cover;
	transition: transform 0.6s ease;
	display:    block;
}

.dbb-guide-welcome-image:hover img {
	transform: scale(1.04);
}

/* ═══════════════════════════════════════════════════════════════════════════
   INFOS PRATIQUES — CARDS
   ═══════════════════════════════════════════════════════════════════════════ */

.dbb-guide-info-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap:     28px;
}

.dbb-guide-info-card {
	background:     #FFFFFF;
	border:         1px solid rgba(47, 79, 62, 0.08);
	border-radius:  20px;
	padding:        36px;
	position:       relative;
	overflow:       hidden;
	transition:     transform var(--dbb-transition), box-shadow var(--dbb-transition);
}

.dbb-guide-info-card::before {
	content:    '';
	position:   absolute;
	top:        0;
	left:       0;
	width:      100%;
	height:     3px;
	background: linear-gradient(90deg, var(--dbb-gold), transparent);
	transform:  scaleX(0);
	transform-origin: left;
	transition: transform 0.4s ease;
}

.dbb-guide-info-card:hover::before {
	transform: scaleX(1);
}

.dbb-guide-info-card:hover {
	transform:  translateY(-6px);
	box-shadow: 0 12px 40px rgba(47, 79, 62, 0.10);
}

.dbb-guide-info-card-icon {
	width:           52px;
	height:          52px;
	border-radius:   50%;
	background:      rgba(47, 79, 62, 0.07);
	display:         flex;
	align-items:     center;
	justify-content: center;
	margin-bottom:   20px;
}

.dbb-guide-info-card-icon svg {
	width:          24px;
	height:         24px;
	stroke:         var(--dbb-green-deep);
	fill:           none;
	stroke-width:   1.75;
	stroke-linecap: round;
}

.dbb-guide-info-card h3 {
	font-family:    var(--dbb-font-display);
	font-size:      1.15rem;
	font-weight:    600;
	color:          var(--dbb-green-deep);
	margin-bottom:  18px;
}

.dbb-guide-info-card-body {
	font-family: var(--dbb-font-body);
	font-size:   0.88rem;
	color:       var(--dbb-text-body);
	line-height: 1.75;
}

.dbb-guide-info-card-body p {
	margin-bottom: 8px;
}

.dbb-guide-info-card-body ul {
	padding-left: 18px;
	margin:       10px 0;
}

.dbb-guide-info-card-body ul li {
	margin-bottom: 5px;
	color:         var(--dbb-text-body);
}

.dbb-guide-info-note {
	font-size:  0.8rem;
	color:      var(--dbb-text-muted);
	font-style: italic;
	margin-top: 16px;
}

/* WiFi */
.dbb-guide-wifi-box {
	background:    rgba(47, 79, 62, 0.04);
	border:        1px solid rgba(47, 79, 62, 0.10);
	border-radius: 12px;
	padding:       16px 20px;
	display:       flex;
	flex-direction: column;
	gap:           10px;
	margin-bottom: 12px;
}

.dbb-guide-wifi-row {
	display:     flex;
	align-items: center;
	gap:         12px;
}

.dbb-guide-wifi-label {
	font-size:      0.68rem;
	font-weight:    500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color:          var(--dbb-gold);
	min-width:      90px;
}

.dbb-guide-wifi-value {
	font-size:   0.9rem;
	font-weight: 500;
	color:       var(--dbb-green-deep);
}

.dbb-guide-wifi-pwd {
	font-family:    monospace;
	font-size:      1rem;
	letter-spacing: 0.1em;
}

/* Contact methods dans card */
.dbb-guide-contact-methods {
	display:        flex;
	flex-direction: column;
	gap:            16px;
}

.dbb-guide-contact-method {
	display:       flex;
	align-items:   flex-start;
	gap:           14px;
	padding:       16px;
	background:    rgba(247, 245, 242, 0.7);
	border-radius: 10px;
	transition:    background var(--dbb-transition);
}

.dbb-guide-contact-method:hover {
	background: rgba(200, 169, 106, 0.08);
}

.dbb-guide-contact-method-icon {
	flex-shrink:     0;
	width:           38px;
	height:          38px;
	border-radius:   10px;
	background:      rgba(47, 79, 62, 0.07);
	display:         flex;
	align-items:     center;
	justify-content: center;
}

.dbb-guide-contact-method-icon svg {
	width:          18px;
	height:         18px;
	stroke:         var(--dbb-green-deep);
	fill:           none;
	stroke-width:   1.75;
	stroke-linecap: round;
}

/* Wrapper texte — flex shrink autorisé (évite le débordement des emails longs) */
.dbb-guide-contact-method > div:not(.dbb-guide-contact-method-icon) {
	min-width: 0;
}

/* Retour à la ligne sur les chaînes longues sans espace (email, URL) */
.dbb-guide-contact-method p,
.dbb-guide-contact-method a {
	overflow-wrap: break-word;
}

.dbb-guide-contact-method strong {
	display:      block;
	font-size:    0.82rem;
	font-weight:  600;
	color:        var(--dbb-text-dark);
	margin-bottom: 3px;
}

.dbb-guide-contact-method p {
	font-size:   0.82rem;
	color:       var(--dbb-text-muted);
	line-height: 1.55;
	margin:      0;
}

.dbb-guide-contact-method a {
	color:           var(--dbb-green-deep);
	text-decoration: none;
	font-weight:     500;
	transition:      color var(--dbb-transition);
	white-space:     nowrap;
	display:         inline-block;
	max-width:       100%;
	overflow:        hidden;
	text-overflow:   ellipsis;
	vertical-align:  bottom;
}

.dbb-guide-contact-method a:hover {
	color: var(--dbb-gold);
}

/* ═══════════════════════════════════════════════════════════════════════════
   URGENCES
   ═══════════════════════════════════════════════════════════════════════════ */

.dbb-guide-urgences-grid {
	display:               grid;
	grid-template-columns: repeat(4, 1fr);
	gap:                   20px;
	margin-bottom:         48px;
}

.dbb-guide-urgence-card {
	background:    var(--dbb-green-deep);
	border-radius: 16px;
	padding:       28px 20px;
	text-align:    center;
	transition:    transform var(--dbb-transition), box-shadow var(--dbb-transition);
}

.dbb-guide-urgence-card:hover {
	transform:  translateY(-4px);
	box-shadow: 0 12px 32px rgba(47, 79, 62, 0.25);
}

.dbb-guide-urgence-number {
	font-family:    var(--dbb-font-display);
	font-size:      clamp(2rem, 3.5vw, 2.8rem);
	font-weight:    700;
	color:          var(--dbb-gold);
	line-height:    1;
	margin-bottom:  10px;
}

.dbb-guide-urgence-label {
	font-family:    var(--dbb-font-body);
	font-size:      0.8rem;
	font-weight:    500;
	color:          rgba(255, 255, 255, 0.85);
	letter-spacing: 0.06em;
}

/* Détails urgences */
.dbb-guide-urgences-details {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap:     20px;
}

.dbb-guide-urgences-item {
	display:        flex;
	flex-direction: column;
	gap:            8px;
	padding:        24px;
	background:     var(--dbb-off-white);
	border-radius:  14px;
	border:         1px solid rgba(47, 79, 62, 0.07);
}

.dbb-guide-urgences-item strong {
	font-family: var(--dbb-font-body);
	font-size:   0.82rem;
	font-weight: 600;
	color:       var(--dbb-green-deep);
	letter-spacing: 0.04em;
}

.dbb-guide-urgences-item span {
	font-size:   0.85rem;
	color:       var(--dbb-text-body);
	line-height: 1.65;
}

/* ═══════════════════════════════════════════════════════════════════════════
   PLACE CARDS (Commerces, Activités, Bonnes Adresses)
   ═══════════════════════════════════════════════════════════════════════════ */

.dbb-guide-places-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap:     24px;
}

/* ── Wrapper externe : lift + ombre uniquement ────────────────────────────── */
.dbb-guide-place-card {
	position:       relative;
	border-radius:  18px;
	display:        flex;
	flex-direction: column;
	transition:     transform var(--dbb-transition), box-shadow var(--dbb-transition);
	will-change:    transform;
}

.dbb-guide-place-card:hover {
	transform:  translateY(-6px);
	box-shadow: 0 16px 48px rgba(47, 79, 62, 0.10);
}

/* ── Wrapper interne : visuel + clipping (sans transform) ─────────────────── */
.dbb-guide-place-card-inner {
	flex:           1;
	background:     #FFFFFF;
	border:         1px solid rgba(47, 79, 62, 0.08);
	border-radius:  18px;
	padding:        28px;
	display:        flex;
	flex-direction: column;
	gap:            0;
	overflow:       hidden;
	position:       relative;
}

.dbb-guide-section--alt .dbb-guide-place-card-inner {
	background: #FFFFFF;
}

/* ── Barre dorée ──────────────────────────────────────────────────────────── */
.dbb-guide-place-card-inner::before {
	content:          '';
	position:         absolute;
	top:              0;
	left:             0;
	width:            100%;
	height:           3px;
	background:       linear-gradient(90deg, var(--dbb-gold) 0%, rgba(200, 169, 106, 0) 100%);
	transform:        scaleX(0);
	transform-origin: left;
	transition:       transform 0.4s ease;
	z-index:          10;
}

.dbb-guide-place-card:hover .dbb-guide-place-card-inner::before {
	transform: scaleX(1);
}

/* Card Nature — accent vert */
.dbb-guide-place-card--nature .dbb-guide-place-icon-wrap {
	background: rgba(47, 79, 62, 0.08);
}

.dbb-guide-place-card--nature .dbb-guide-place-icon {
	stroke: var(--dbb-green-deep);
}

/* Card éditoriale */
.dbb-guide-place-card--editorial .dbb-guide-place-card-inner {
	background:   linear-gradient(145deg, rgba(47, 79, 62, 0.04) 0%, rgba(200, 169, 106, 0.04) 100%);
	border-color: rgba(200, 169, 106, 0.15);
}

/* ── Card avec image ──────────────────────────────────────────────────────── */

.dbb-guide-place-img {
	margin:      -28px -28px 0 -28px;
	height:      220px;
	flex-shrink: 0;
	position:    relative;
}

.dbb-guide-place-img-media {
	width:              100%;
	height:             100%;
	overflow:           hidden;
	-webkit-mask-image: linear-gradient(to bottom, black 55%, transparent 100%);
	mask-image:         linear-gradient(to bottom, black 55%, transparent 100%);
}

.dbb-guide-place-img img {
	width:      100%;
	height:     100%;
	object-fit: cover;
	display:    block;
	transition: transform 0.55s ease;
}

.dbb-guide-place-card:hover .dbb-guide-place-img img {
	transform: scale(1.05);
}


/* Contenu */
.dbb-guide-place-body {
	display:        flex;
	flex-direction: column;
	flex:           1;
	padding-top:    18px;
}

.dbb-guide-place-type {
	font-family:    var(--dbb-font-body);
	font-size:      0.65rem;
	font-weight:    500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color:          var(--dbb-gold);
	margin-bottom:  8px;
}

.dbb-guide-place-name {
	font-family:    var(--dbb-font-display);
	font-size:      1.1rem;
	font-weight:    600;
	color:          var(--dbb-green-deep);
	margin-bottom:  10px;
	line-height:    1.25;
}

.dbb-guide-place-desc {
	font-family: var(--dbb-font-body);
	font-size:   0.86rem;
	font-weight: 300;
	color:       var(--dbb-text-body);
	line-height: 1.7;
	flex:        1;
	margin-bottom: 12px;
}

.dbb-guide-place-tip {
	font-size:   0.78rem;
	color:       var(--dbb-text-muted);
	font-style:  italic;
	line-height: 1.6;
	margin-top:  auto;
	padding-top: 12px;
	border-top:  1px solid rgba(47, 79, 62, 0.07);
}

/* Meta (distance, horaires) */
.dbb-guide-place-meta {
	display:        flex;
	flex-direction: column;
	gap:            8px;
	margin-bottom:  16px;
}

.dbb-guide-place-meta span {
	display:        flex;
	align-items:    flex-start;
	gap:            5px;
	font-size:      0.78rem;
	font-weight:    400;
	color:          var(--dbb-text-muted);
	line-height:    1.35;
}

.dbb-guide-place-meta svg {
	width:          13px;
	height:         13px;
	stroke:         var(--dbb-gold);
	fill:           none;
	stroke-width:   2;
	flex-shrink:    0;
}

/* Actions */
.dbb-guide-place-actions {
	display:    flex;
	flex-wrap:  wrap;
	gap:        10px;
	margin-top: auto;
	padding-top: 16px;
	border-top: 1px solid rgba(47, 79, 62, 0.07);
}

/* ═══════════════════════════════════════════════════════════════════════════
   BOUTONS
   ═══════════════════════════════════════════════════════════════════════════ */

.dbb-guide-btn {
	display:         inline-flex;
	align-items:     center;
	gap:             8px;
	font-family:     var(--dbb-font-body);
	font-size:       0.78rem;
	font-weight:     500;
	letter-spacing:  0.08em;
	text-transform:  uppercase;
	text-decoration: none;
	color:           #FFFFFF;
	background:      linear-gradient(135deg, #3d6452, var(--dbb-green-deep));
	border-radius:   100px;
	padding:         10px 22px;
	transition:      transform var(--dbb-transition), box-shadow var(--dbb-transition);
}

.dbb-guide-btn svg {
	width:            16px;
	height:           16px;
	stroke:           #FFFFFF;
	fill:             none;
	stroke-width:     2;
	flex-shrink:      0;
}

.dbb-guide-btn:hover {
	transform:  translateY(-2px);
	box-shadow: 0 8px 24px rgba(47, 79, 62, 0.28);
}

.dbb-guide-btn--sm {
	padding:     8px 18px;
	font-size:   0.72rem;
}

/* Lien texte avec flèche */
.dbb-guide-text-link {
	display:         inline-flex;
	align-items:     center;
	gap:             6px;
	font-family:     var(--dbb-font-body);
	font-size:       0.82rem;
	font-weight:     500;
	color:           var(--dbb-gold);
	text-decoration: none;
	transition:      gap var(--dbb-transition), color var(--dbb-transition);
}

.dbb-guide-text-link svg {
	width:          13px;
	height:         13px;
	stroke:         currentColor;
	fill:           none;
	stroke-width:   2;
	transition:     transform var(--dbb-transition);
}

.dbb-guide-text-link:hover {
	gap:   10px;
	color: var(--dbb-gold-light);
}

.dbb-guide-text-link:hover svg {
	transform: translateX(2px);
}

/* ═══════════════════════════════════════════════════════════════════════════
   ENCART INFO
   ═══════════════════════════════════════════════════════════════════════════ */

.dbb-guide-info-encart {
	display:       flex;
	align-items:   flex-start;
	gap:           16px;
	margin-top:    36px;
	padding:       20px 24px;
	background:    rgba(47, 79, 62, 0.04);
	border-left:   3px solid var(--dbb-gold);
	border-radius: 0 12px 12px 0;
}

.dbb-guide-info-encart svg {
	flex-shrink:    0;
	width:          20px;
	height:         20px;
	stroke:         var(--dbb-gold);
	fill:           none;
	stroke-width:   1.75;
	margin-top:     2px;
}

.dbb-guide-info-encart p {
	font-family: var(--dbb-font-body);
	font-size:   0.88rem;
	font-weight: 300;
	color:       var(--dbb-text-body);
	line-height: 1.7;
	margin:      0;
	font-style:  italic;
}

.dbb-guide-info-encart a {
	color:           var(--dbb-green-deep);
	text-decoration: none;
	font-weight:     500;
}

.dbb-guide-info-encart a:hover {
	color: var(--dbb-gold);
}

/* ═══════════════════════════════════════════════════════════════════════════
   TRANSPORTS
   ═══════════════════════════════════════════════════════════════════════════ */

.dbb-guide-transport-list {
	display:        flex;
	flex-direction: column;
	gap:            20px;
}

.dbb-guide-transport-item {
	display:       flex;
	align-items:   flex-start;
	gap:           28px;
	background:    #FFFFFF;
	border:        1px solid rgba(47, 79, 62, 0.08);
	border-radius: 18px;
	padding:       28px;
	transition:    transform var(--dbb-transition), box-shadow var(--dbb-transition);
}

.dbb-guide-transport-item:hover {
	transform:  translateX(6px);
	box-shadow: 0 8px 28px rgba(47, 79, 62, 0.08);
}

.dbb-guide-transport-icon {
	flex-shrink:     0;
	width:           52px;
	height:          52px;
	border-radius:   14px;
	background:      rgba(47, 79, 62, 0.06);
	display:         flex;
	align-items:     center;
	justify-content: center;
}

.dbb-guide-transport-icon svg {
	width:          24px;
	height:         24px;
	stroke:         var(--dbb-green-deep);
	fill:           none;
	stroke-width:   1.75;
	stroke-linecap: round;
}

.dbb-guide-transport-details {
	flex: 1;
}

.dbb-guide-transport-details h3 {
	font-family:    var(--dbb-font-display);
	font-size:      1.1rem;
	font-weight:    600;
	color:          var(--dbb-green-deep);
	margin-bottom:  12px;
}

.dbb-guide-transport-details p {
	font-family: var(--dbb-font-body);
	font-size:   0.88rem;
	font-weight: 300;
	color:       var(--dbb-text-body);
	line-height: 1.8;
	margin:      0;
}

.dbb-guide-transport-details strong {
	font-weight: 600;
	color:       var(--dbb-text-dark);
}

.dbb-guide-transport-details a {
	color:           var(--dbb-green-deep);
	text-decoration: none;
	font-weight:     500;
	transition:      color var(--dbb-transition);
}

.dbb-guide-transport-details a:hover {
	color: var(--dbb-gold);
}

/* ═══════════════════════════════════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════════════════════════════════ */

/* Tablette ≤ 1024px */
@media (max-width: 1024px) {

	.dbb-guide-welcome-grid {
		grid-template-columns: 1fr;
		gap:                   40px;
	}

	.dbb-guide-welcome-image {
		order: -1;
	}

	.dbb-guide-welcome-image img {
		height: 380px;
	}

	.dbb-guide-urgences-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.dbb-guide-urgences-details {
		grid-template-columns: 1fr;
	}
}

/* Mobile ≤ 768px — masquer nav latérale */
@media (max-width: 768px) {

	.dbb-guide-nav {
		display: none;
	}

	.dbb-guide-section {
		padding: 56px 0;
	}

	.dbb-guide-section-header {
		margin-bottom: 36px;
	}

	.dbb-guide-welcome-image img {
		height: 280px;
	}

	.dbb-guide-urgences-grid {
		grid-template-columns: repeat(2, 1fr);
		gap:                   12px;
	}

	.dbb-guide-info-grid {
		grid-template-columns: 1fr;
	}

	.dbb-guide-places-grid {
		grid-template-columns: 1fr;
	}

	.dbb-guide-transport-item {
		flex-direction: column;
		gap:            16px;
	}

	.dbb-guide-transport-icon {
		width:  44px;
		height: 44px;
	}
}

/* Navigation mobile bottom bar — affichée uniquement sur mobile */
@media (max-width: 768px) {

	/* Padding bas de page pour éviter que la barre masque le contenu */
	.dbb-guide-page {
		padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px));
	}

	.dbb-guide-nav-mobile {
		display:       block !important;
		position:      fixed;
		bottom:        0;
		left:          0;
		right:         0;
		/* z-index audit : max plugin = 200 (nav desktop) → 210 suffisant */
		z-index:       210;
		background:    #FFFFFF;
		border-radius: 20px 20px 0 0;
		box-shadow:
			0 -4px 20px rgba(47, 79, 62, 0.10),
			0 -1px 4px  rgba(0, 0, 0, 0.06);
		padding-bottom: env(safe-area-inset-bottom, 0px);
	}

	.dbb-guide-nav-mobile-list {
		display:        flex;
		flex-direction: row;
		align-items:    center;
		gap:            4px;
		list-style:     none;
		margin:         0 !important;
		/* padding vertical + padding-inline pour centrage 1er/dernier item :
		   50vw - 24px  =  demi-écran moins demi-largeur item (48px/2) */
		padding:        8px 0 !important;
		padding-inline: calc(50vw - 24px) !important;
		overflow-x:           auto;
		scroll-behavior:      smooth;
		-ms-overflow-style:   none; /* IE/Edge */
		scrollbar-width:      none; /* Firefox */
	}

	.dbb-guide-nav-mobile-list::-webkit-scrollbar {
		display: none; /* Chrome/Safari */
	}

	.dbb-guide-nav-mobile-item {
		flex:       0 0 auto;
		list-style: none;
		padding:    0;
		margin:     0;
	}

	/* Neutralise les pseudo-éléments bullet injectés par certains thèmes */
	.dbb-guide-nav-mobile-item::before,
	.dbb-guide-nav-mobile-item::after {
		content: none;
		display: none;
	}

	.dbb-guide-nav-mobile-item a {
		display:         flex;
		align-items:     center;
		justify-content: center;
		width:           48px;
		height:          48px;
		border-radius:   50%;
		background:      rgba(247, 245, 242, 0.8);
		color:           var(--dbb-text-muted);
		text-decoration: none;
		transition:      background 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
	}

	.dbb-guide-nav-mobile-item a svg {
		width:           20px;
		height:          20px;
		stroke:          currentColor;
		fill:            none;
		stroke-width:    1.75;
		stroke-linecap:  round;
		stroke-linejoin: round;
	}

	.dbb-guide-nav-mobile-item a.is-active {
		background: var(--dbb-green-deep);
		color:      #FFFFFF;
		transform:  scale(1.12);
		box-shadow: 0 4px 16px rgba(47, 79, 62, 0.30);
	}

	.dbb-guide-nav-mobile-item a.is-active svg {
		stroke: #FFFFFF;
	}

	/* Feedback visuel au tap */
	.dbb-guide-nav-mobile-item a:active {
		transform: scale(0.94);
	}
}

/* Mobile ≤ 480px */
@media (max-width: 480px) {

	.dbb-guide-urgences-grid {
		grid-template-columns: 1fr 1fr;
	}

	.dbb-guide-info-card,
	.dbb-guide-place-card-inner {
		padding: 22px;
	}

	/* Adapter les marges négatives au padding réduit du mobile */
	.dbb-guide-place-img {
		margin: -22px -22px 0 -22px;
		height: 180px;
	}

	.dbb-guide-section-title {
		font-size: 1.6rem;
	}

	/* Switcher langue — compact sur mobile */
	.dbb-lang-switcher {
		gap:           8px;
		margin-bottom: 22px;
	}
	.dbb-lang-btn {
		width:  38px;
		height: 38px;
	}
	.dbb-lang-btn .dbb-flag {
		width:  100%;
		height: 100%;
	}
}
