/* =============================================
   LABONNEMOUSSE.COM — CSS PRINCIPAL
   Thème enfant Astra + Gutenberg
   Ce fichier reproduit exactement le rendu
   du template HTML de référence.
   ============================================= */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700;900&family=DM+Sans:wght@300;400;500;600&family=Bebas+Neue&display=swap');

/* ── VARIABLES ──────────────────────────────── */
:root {
  --or:         #D4A017;
  --ambre:      #C07D2A;
  --brun:       #3B1F0A;
  --creme:      #FAF3E0;
  --blanc:      #FFFFFF;
  --gris-clair: #F5F0E8;
  --texte:      #2C1A08;
  --texte-doux: #7A5C3C;
  --vert-hop:   #4A6741;
  --rouge-ale:  #B03A2E;
  --shadow-gold:0 4px 24px rgba(212,160,23,0.18);
  --radius:     16px;
  --radius-sm:  8px;
  --transition: 0.32s cubic-bezier(0.4,0,0.2,1);
}

/* ── RESET ASTRA ────────────────────────────── */
/* Neutralise les styles Astra qui entreraient en conflit */
*, *::before, *::after { box-sizing: border-box; }

body {
  font-family: 'DM Sans', sans-serif !important;
  background-color: var(--creme) !important;
  color: var(--texte) !important;
  overflow-x: hidden;
  margin: 0 !important;
}

/* Supprime les marges Astra sur le contenu */
.ast-container,
.site-content .ast-container,
#content .ast-container { max-width: 100% !important; padding: 0 !important; }

/* Cache le header/footer natifs d'Astra
   (on utilise nos propres header/footer en blocs HTML) */
#masthead.site-header,
.ast-above-header-wrap,
.ast-below-header-wrap,
#colophon.site-footer,
.ast-breadcrumbs-wrap { display: none !important; }

/* Pleine largeur pour la zone de contenu */
.entry-content,
.page-content,
.ast-page-builder-template .entry-content { padding: 0 !important; margin: 0 !important; }

.site-content,
#primary,
#content { padding: 0 !important; }

/* Blocs Gutenberg pleine largeur */
.wp-block-group.alignfull,
.alignfull { margin-left: 0 !important; margin-right: 0 !important; width: 100% !important; max-width: 100% !important; }

/* ── ANIMATIONS ─────────────────────────────── */
@keyframes fadeDown {
  from { opacity: 0; transform: translateY(-20px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes floatUp {
  0%   { transform: translateY(100vh) scale(0.5); opacity: 0; }
  10%  { opacity: 1; }
  90%  { opacity: 1; }
  100% { transform: translateY(-10vh) scale(1); opacity: 0; }
}

.lbm-reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.lbm-reveal.visible { opacity: 1; transform: translateY(0); }

/* =============================================
   HEADER
   ============================================= */
.lbm-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 9999;
  background: rgba(59,31,10,0.97);
  backdrop-filter: blur(12px);
  border-bottom: 2px solid var(--or);
  transition: var(--transition);
}
.lbm-header-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 72px;
}
.lbm-logo {
  display: flex; align-items: center; gap: 12px;
  text-decoration: none;
}
.lbm-logo-icon {
  width: 44px; height: 44px;
  background: var(--or); border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 22px;
  box-shadow: 0 0 0 3px rgba(212,160,23,0.3);
  flex-shrink: 0;
}
.lbm-logo-text {
  font-family: 'Playfair Display', serif;
  font-size: 1.35rem; font-weight: 700; color: var(--or); line-height: 1.2;
}
.lbm-logo-tagline {
  display: block;
  font-family: 'DM Sans', sans-serif;
  font-size: 0.6rem; font-weight: 400;
  color: rgba(212,160,23,0.7);
  letter-spacing: 0.2em; text-transform: uppercase;
}

/* Navigation */
.lbm-nav { display: flex; align-items: center; }
.lbm-nav ul, .lbm-nav .menu {
  list-style: none; display: flex; align-items: center;
  gap: 4px; margin: 0; padding: 0;
}
.lbm-nav li { position: relative; }
.lbm-nav a {
  display: block; padding: 8px 16px;
  color: rgba(255,255,255,0.85) !important;
  font-size: 0.88rem; font-weight: 500; letter-spacing: 0.03em;
  border-radius: var(--radius-sm);
  transition: var(--transition);
  text-decoration: none !important;
}
.lbm-nav a:hover,
.lbm-nav .current-menu-item > a {
  color: var(--or) !important;
  background: rgba(212,160,23,0.12);
}
/* Sous-menus */
.lbm-nav ul ul, .lbm-nav .sub-menu {
  display: none; position: absolute; top: 100%; left: 0;
  background: var(--brun);
  border: 1px solid rgba(212,160,23,0.3);
  border-radius: var(--radius-sm);
  min-width: 200px; padding: 8px 0;
  flex-direction: column; gap: 0;
  box-shadow: 0 8px 32px rgba(0,0,0,0.3);
  z-index: 1000;
}
.lbm-nav li:hover > ul,
.lbm-nav li:hover > .sub-menu { display: flex; }
.lbm-nav .sub-menu a { padding: 10px 20px; border-radius: 0; }
/* Dernier item = bouton CTA doré */
.lbm-nav ul li:last-child > a {
  margin-left: 12px;
  background: var(--or) !important;
  color: var(--brun) !important;
  border-radius: 50px !important;
  font-weight: 600 !important;
  padding: 9px 22px !important;
}
.lbm-nav ul li:last-child > a:hover {
  background: var(--ambre) !important;
  transform: translateY(-1px);
  box-shadow: var(--shadow-gold);
}

/* Burger mobile */
.lbm-burger {
  display: none; flex-direction: column; gap: 5px;
  cursor: pointer; padding: 8px; border: none; background: none;
}
.lbm-burger span {
  display: block; width: 26px; height: 2px;
  background: var(--or); border-radius: 2px; transition: var(--transition);
}

/* Mobile nav overlay */
.lbm-mobile-nav {
  display: none; position: fixed; inset: 0;
  background: var(--brun); z-index: 9998;
  flex-direction: column; align-items: center; justify-content: center; gap: 8px;
}
.lbm-mobile-nav.open { display: flex; }
.lbm-mobile-nav ul, .lbm-mobile-nav .menu {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; align-items: center; gap: 8px;
}
.lbm-mobile-nav a {
  font-family: 'Playfair Display', serif;
  font-size: 2rem; color: var(--blanc) !important;
  padding: 12px 32px; display: block;
  transition: var(--transition); text-decoration: none !important;
}
.lbm-mobile-nav a:hover { color: var(--or) !important; }
.lbm-mobile-close {
  position: absolute; top: 24px; right: 24px;
  font-size: 2rem; color: var(--or); cursor: pointer;
  border: none; background: none;
}

/* =============================================
   HERO
   ============================================= */
.lbm-hero {
  min-height: 100vh;
  background:
    linear-gradient(160deg, rgba(59,31,10,0.88) 0%, rgba(192,125,42,0.55) 60%, rgba(59,31,10,0.92) 100%),
    url('https://images.unsplash.com/photo-1558618666-fcd25c85cd64?w=1600&q=80') center/cover no-repeat;
  display: flex; align-items: center; justify-content: center;
  text-align: center; padding: 120px 24px 80px;
  position: relative; overflow: hidden;
}
.lbm-hero::before {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, rgba(212,160,23,0.15) 0%, transparent 70%);
  pointer-events: none;
}
.lbm-bubbles { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.lbm-bubble {
  position: absolute; border-radius: 50%;
  background: rgba(212,160,23,0.12);
  animation: floatUp linear infinite;
}
.lbm-bubble:nth-child(1){width:8px;height:8px;left:15%;animation-duration:8s;animation-delay:0s;}
.lbm-bubble:nth-child(2){width:12px;height:12px;left:30%;animation-duration:11s;animation-delay:2s;}
.lbm-bubble:nth-child(3){width:6px;height:6px;left:50%;animation-duration:9s;animation-delay:1s;}
.lbm-bubble:nth-child(4){width:10px;height:10px;left:70%;animation-duration:12s;animation-delay:3s;}
.lbm-bubble:nth-child(5){width:7px;height:7px;left:85%;animation-duration:7s;animation-delay:0.5s;}

.lbm-hero-content { position: relative; z-index: 1; max-width: 780px; margin: 0 auto; }
.lbm-hero-badge {
  display: inline-flex; align-items: center; gap: 8px;
  background: rgba(212,160,23,0.2); border: 1px solid rgba(212,160,23,0.5);
  color: var(--or); padding: 6px 18px; border-radius: 50px;
  font-size: 0.78rem; letter-spacing: 0.15em; text-transform: uppercase;
  font-weight: 600; margin-bottom: 28px;
  animation: fadeDown 0.8s ease both;
}
.lbm-hero-title {
  font-family: 'Bebas Neue', sans-serif;
  font-size: clamp(3.5rem, 9vw, 7.5rem); line-height: 0.95;
  color: var(--blanc); margin: 0 0 8px; letter-spacing: 0.02em;
  animation: fadeDown 0.8s 0.15s ease both;
}
.lbm-hero-title em { color: var(--or); font-style: normal; display: block; }
.lbm-hero-subtitle {
  font-family: 'Playfair Display', serif;
  font-size: clamp(1.1rem, 2.5vw, 1.5rem); color: rgba(255,255,255,0.8);
  margin-bottom: 40px; font-style: italic;
  animation: fadeDown 0.8s 0.3s ease both;
}
.lbm-hero-ctas {
  display: flex; gap: 16px; justify-content: center; flex-wrap: wrap;
  animation: fadeDown 0.8s 0.45s ease both;
}
.lbm-hero-stats {
  display: flex; gap: 40px; justify-content: center;
  margin-top: 60px; padding-top: 40px;
  border-top: 1px solid rgba(255,255,255,0.15);
  animation: fadeDown 0.8s 0.6s ease both;
}
.lbm-stat { text-align: center; }
.lbm-stat-number {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 2.8rem; color: var(--or); line-height: 1;
}
.lbm-stat-label {
  font-size: 0.75rem; color: rgba(255,255,255,0.6);
  text-transform: uppercase; letter-spacing: 0.12em; margin-top: 4px;
}

/* ── BOUTONS ────────────────────────────────── */
.lbm-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 14px 32px; border-radius: 50px;
  font-family: 'DM Sans', sans-serif;
  font-weight: 600; font-size: 0.95rem;
  transition: var(--transition); cursor: pointer; border: none;
  text-decoration: none !important;
}
.lbm-btn-primary { background: var(--or); color: var(--brun) !important; box-shadow: var(--shadow-gold); }
.lbm-btn-primary:hover { background: var(--ambre); transform: translateY(-2px); box-shadow: 0 8px 32px rgba(212,160,23,0.35); }
.lbm-btn-outline { background: transparent; color: var(--blanc) !important; border: 2px solid rgba(255,255,255,0.5); }
.lbm-btn-outline:hover { border-color: var(--or); color: var(--or) !important; transform: translateY(-2px); }
.lbm-btn-dark {
  background: var(--brun); color: var(--blanc) !important;
  padding: 14px 28px; border-radius: 50px;
  font-family: 'DM Sans', sans-serif;
  font-weight: 600; font-size: 0.95rem;
  transition: var(--transition); border: none; cursor: pointer;
  text-decoration: none !important;
}
.lbm-btn-dark:hover { background: #2C1A08; transform: translateY(-2px); }

/* =============================================
   SECTIONS COMMUNES
   ============================================= */
.lbm-section { padding: 96px 24px; }
.lbm-section-inner { max-width: 1280px; margin: 0 auto; }
.lbm-section-tag {
  display: inline-flex; align-items: center; gap: 8px;
  color: var(--or); font-size: 0.75rem; font-weight: 600;
  letter-spacing: 0.18em; text-transform: uppercase; margin-bottom: 14px;
}
.lbm-section-tag::before { content:''; width:28px; height:2px; background:var(--or); display:block; }
.lbm-section-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(2rem, 4vw, 3rem); font-weight: 700;
  color: var(--brun); line-height: 1.2; margin: 0 0 16px;
}
.lbm-section-title em { color: var(--or); font-style: normal; }
.lbm-section-lead { font-size: 1.08rem; color: var(--texte-doux); line-height: 1.7; max-width: 560px; margin: 0; }

/* =============================================
   COMMENT ÇA MARCHE
   ============================================= */
.lbm-how { background: var(--creme); }
.lbm-how-grid { display: grid; grid-template-columns: 1fr 2fr; gap: 64px; align-items: start; margin-top: 64px; }
.lbm-how-steps { display: flex; flex-direction: column; gap: 32px; }
.lbm-step {
  display: flex; gap: 20px; align-items: flex-start;
  padding: 24px; background: var(--blanc);
  border-radius: var(--radius); border-left: 4px solid var(--or);
  transition: var(--transition); box-shadow: 0 2px 16px rgba(59,31,10,0.06);
}
.lbm-step:hover { transform: translateX(4px); box-shadow: 0 8px 32px rgba(59,31,10,0.1); }
.lbm-step-num {
  width: 40px; height: 40px; background: var(--or); color: var(--brun);
  border-radius: 50%; display: flex; align-items: center; justify-content: center;
  font-family: 'Bebas Neue', sans-serif; font-size: 1.3rem; flex-shrink: 0;
}
.lbm-step-title { font-weight: 600; font-size: 1rem; color: var(--brun); margin: 0 0 4px; }
.lbm-step-text { font-size: 0.9rem; color: var(--texte-doux); line-height: 1.6; margin: 0; }

/* =============================================
   PRIX DES PINTES
   ============================================= */
.lbm-prices { background: var(--gris-clair); }
.lbm-prices-header { display: flex; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; gap: 24px; margin-bottom: 48px; }
.lbm-filters { display: flex; gap: 10px; flex-wrap: wrap; }
.lbm-filter-btn {
  padding: 8px 20px; border-radius: 50px;
  border: 2px solid rgba(59,31,10,0.15);
  background: var(--blanc); color: var(--texte-doux);
  font-family: 'DM Sans', sans-serif;
  font-size: 0.85rem; font-weight: 500; cursor: pointer;
  transition: var(--transition);
}
.lbm-filter-btn:hover, .lbm-filter-btn.active { border-color: var(--or); background: var(--or); color: var(--brun); }
.lbm-pubs-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px,1fr)); gap: 24px; margin-bottom: 48px; }
.lbm-pub-card {
  background: var(--blanc); border-radius: var(--radius); overflow: hidden;
  box-shadow: 0 2px 16px rgba(59,31,10,0.07); transition: var(--transition);
  position: relative; border: 1px solid rgba(59,31,10,0.08);
}
.lbm-pub-card:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(59,31,10,0.15); }
.lbm-pub-card-badge {
  position: absolute; top: 14px; right: 14px;
  background: var(--vert-hop); color: var(--blanc);
  font-size: 0.7rem; font-weight: 600; padding: 4px 10px;
  border-radius: 50px; letter-spacing: 0.08em; text-transform: uppercase; z-index: 2;
}
.lbm-pub-card-badge.--promo { background: var(--rouge-ale); }
.lbm-pub-card-badge.--new   { background: var(--or); color: var(--brun); }
.lbm-pub-card-img {
  height: 180px;
  background: linear-gradient(135deg, var(--brun) 0%, var(--ambre) 100%);
  display: flex; align-items: center; justify-content: center; font-size: 4rem;
}
.lbm-pub-card-body { padding: 20px; }
.lbm-pub-card-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 8px; }
.lbm-pub-name { font-family:'Playfair Display',serif; font-size:1.1rem; font-weight:700; color:var(--brun); line-height:1.3; margin:0; }
.lbm-pub-rating { display:flex; align-items:center; gap:4px; font-size:0.82rem; font-weight:600; color:var(--or); }
.lbm-pub-location { font-size:0.82rem; color:var(--texte-doux); margin:0 0 16px; display:flex; align-items:center; gap:6px; }
.lbm-beer-list { display:flex; flex-direction:column; gap:8px; }
.lbm-beer-item {
  display:flex; justify-content:space-between; align-items:center;
  padding:8px 12px; background:var(--gris-clair); border-radius:var(--radius-sm);
  transition:var(--transition);
}
.lbm-beer-item:hover { background:rgba(212,160,23,0.12); }
.lbm-beer-name { font-size:0.88rem; color:var(--texte); font-weight:500; display:flex; align-items:center; gap:6px; margin:0; }
.lbm-beer-price { font-family:'Bebas Neue',sans-serif; font-size:1.3rem; color:var(--ambre); letter-spacing:0.02em; }
.lbm-beer-price span { font-family:'DM Sans',sans-serif; font-size:0.7rem; font-weight:400; color:var(--texte-doux); }
.lbm-pub-card-footer { padding: 0 20px 20px; }
.lbm-pub-cta {
  display:block; text-align:center; padding:10px;
  background:transparent; border:1.5px solid var(--or);
  border-radius:var(--radius-sm); color:var(--ambre) !important;
  font-size:0.85rem; font-weight:600; margin-top:14px;
  transition:var(--transition); text-decoration:none !important;
}
.lbm-pub-cta:hover { background:var(--or); color:var(--brun) !important; }

/* =============================================
   SECTION CARTE
   ============================================= */
.lbm-map-section { background: var(--brun); padding: 96px 24px; }
.lbm-map-layout { display: grid; grid-template-columns: 1fr 2fr; gap: 48px; align-items: start; margin-top: 56px; }
.lbm-map-legend { display:flex; flex-direction:column; gap:16px; margin-top:32px; }
.lbm-legend-item {
  display:flex; align-items:center; gap:14px;
  padding:14px 18px; background:rgba(255,255,255,0.07);
  border-radius:var(--radius-sm); border:1px solid rgba(212,160,23,0.2);
}
.lbm-legend-dot { width:12px; height:12px; border-radius:50%; flex-shrink:0; }
.lbm-legend-dot.--or    { background:var(--or); }
.lbm-legend-dot.--vert  { background:var(--vert-hop); }
.lbm-legend-dot.--rouge { background:var(--rouge-ale); }
.lbm-legend-text { font-size:0.88rem; color:rgba(255,255,255,0.75); margin:0; }
.lbm-map-container {
  border-radius: var(--radius); overflow: hidden;
  box-shadow: 0 16px 64px rgba(0,0,0,0.4);
  border: 2px solid rgba(212,160,23,0.3);
  min-height: 480px;
}
/* Styles pour WP Go Maps dans ce conteneur */
.lbm-map-container .wpgmza-map-wrapper,
.lbm-map-container #wpgmza_map { width:100% !important; border-radius: var(--radius) !important; }

/* =============================================
   TÉMOIGNAGES
   ============================================= */
.lbm-reviews { background: var(--creme); }
.lbm-reviews-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:24px; margin-top:48px; }
.lbm-review-card {
  background:var(--blanc); border-radius:var(--radius); padding:28px;
  box-shadow:0 2px 16px rgba(59,31,10,0.06); border:1px solid rgba(59,31,10,0.07);
  transition:var(--transition);
}
.lbm-review-card:hover { transform:translateY(-4px); box-shadow:0 12px 40px rgba(59,31,10,0.12); }
.lbm-review-stars { color:var(--or); font-size:1rem; margin:0 0 14px; letter-spacing:2px; }
.lbm-review-text { font-size:0.95rem; line-height:1.7; color:var(--texte); font-style:italic; margin:0 0 20px; }
.lbm-review-author { display:flex; align-items:center; gap:12px; }
.lbm-review-avatar {
  width:40px; height:40px; border-radius:50%;
  background:linear-gradient(135deg,var(--or),var(--ambre));
  display:flex; align-items:center; justify-content:center;
  font-weight:700; font-size:1rem; color:var(--brun); flex-shrink:0;
}
.lbm-review-name { font-weight:600; font-size:0.9rem; color:var(--brun); margin:0; }
.lbm-review-city { font-size:0.78rem; color:var(--texte-doux); margin:0; }

/* =============================================
   NEWSLETTER / CTA
   ============================================= */
.lbm-cta-section {
  background: linear-gradient(135deg, var(--or) 0%, var(--ambre) 100%);
  padding: 80px 24px; text-align: center; position: relative; overflow: hidden;
}
.lbm-cta-section::before {
  content:'🍺'; position:absolute; font-size:18rem; opacity:0.06;
  top:-40px; right:-40px; line-height:1; pointer-events:none;
}
.lbm-cta-inner { position:relative; z-index:1; max-width: 700px; margin: 0 auto; }
.lbm-newsletter-form { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; max-width:520px; margin:32px auto 0; }
.lbm-newsletter-form input[type="email"] {
  flex:1; min-width:240px; padding:14px 20px; border-radius:50px;
  border:none; font-size:0.95rem; background:rgba(255,255,255,0.95);
  color:var(--texte); outline:none; box-shadow:0 4px 16px rgba(59,31,10,0.15);
  font-family:'DM Sans',sans-serif;
}
.lbm-newsletter-form input::placeholder { color: var(--texte-doux); }

/* =============================================
   FOOTER
   ============================================= */
.lbm-site-footer { background:#1E0D02; color:rgba(255,255,255,0.7); padding:72px 24px 0; }
.lbm-footer-inner {
  max-width:1280px; margin:0 auto;
  display:grid; grid-template-columns:1.5fr repeat(3,1fr);
  gap:48px; padding-bottom:56px;
  border-bottom:1px solid rgba(255,255,255,0.08);
}
.lbm-footer-desc { font-size:0.88rem; line-height:1.7; color:rgba(255,255,255,0.5); margin:16px 0 24px; }
.lbm-footer-social { display:flex; gap:10px; }
.lbm-social-link {
  width:38px; height:38px; border-radius:50%;
  border:1px solid rgba(255,255,255,0.15);
  display:flex; align-items:center; justify-content:center;
  font-size:0.9rem; color:rgba(255,255,255,0.6);
  transition:var(--transition); text-decoration:none !important;
}
.lbm-social-link:hover { border-color:var(--or); color:var(--or) !important; }
.lbm-footer-col h4 {
  font-size:0.8rem; font-weight:600; letter-spacing:0.14em;
  text-transform:uppercase; color:rgba(255,255,255,0.4); margin:0 0 20px;
}
.lbm-footer-nav ul, .lbm-footer-nav .menu { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; }
.lbm-footer-nav a { font-size:0.9rem; color:rgba(255,255,255,0.6) !important; transition:var(--transition); display:flex; align-items:center; gap:6px; text-decoration:none !important; }
.lbm-footer-nav a::before { content:'→'; color:var(--or); }
.lbm-footer-nav a:hover { color:var(--or) !important; }
.lbm-footer-contact p { font-size:0.88rem; color:rgba(255,255,255,0.55); line-height:1.8; display:flex; align-items:flex-start; gap:8px; margin:0 0 8px; }
.lbm-footer-bottom {
  max-width:1280px; margin:0 auto; padding:24px 0;
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px;
}
.lbm-footer-copy { font-size:0.8rem; color:rgba(255,255,255,0.3); }
.lbm-footer-legal { display:flex; gap:20px; }
.lbm-footer-legal a { font-size:0.8rem; color:rgba(255,255,255,0.3) !important; transition:var(--transition); text-decoration:none !important; }
.lbm-footer-legal a:hover { color:var(--or) !important; }

/* =============================================
   RESPONSIVE
   ============================================= */
@media (max-width: 1024px) {
  .lbm-how-grid     { grid-template-columns: 1fr; }
  .lbm-map-layout   { grid-template-columns: 1fr; }
  .lbm-footer-inner { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 768px) {
  .lbm-nav    { display: none; }
  .lbm-burger { display: flex; }
  .lbm-section { padding: 64px 20px; }
  .lbm-map-section { padding: 64px 20px; }
  .lbm-prices-header { flex-direction: column; align-items: flex-start; }
  .lbm-footer-inner  { grid-template-columns: 1fr; gap: 32px; }
  .lbm-footer-bottom { flex-direction: column; text-align: center; }
  .lbm-footer-legal  { flex-wrap: wrap; justify-content: center; }
  .lbm-hero-stats    { gap: 24px; }
  .lbm-stat-number   { font-size: 2rem; }
}
@media (max-width: 480px) {
  .lbm-hero         { padding: 100px 20px 60px; }
  .lbm-hero-ctas    { flex-direction: column; align-items: center; }
  .lbm-hero-stats   { flex-direction: column; gap: 16px; }
  .lbm-pubs-grid    { grid-template-columns: 1fr; }
  .lbm-reviews-grid { grid-template-columns: 1fr; }
  .lbm-footer-inner { grid-template-columns: 1fr; }
}
