/**
 * ═══════════════════════════════════════════════════════════════
 * KIDZUP - DESIGN SYSTEM V2.0 FINAL
 * Style: Joyful Family Discovery
 * Inspiration: Airbnb x Apple x Lego
 * ═══════════════════════════════════════════════════════════════
 * @package Kidzup
 * @author Inside Web SRL
 * @version 2.0 FINAL - Sans doublons
 */


@font-face{font-family:"Circular-Std";src:url("../fonts/Circular-Std-Book.woff2") format("woff2");font-weight:400;font-display:swap;font-style:normal}
@font-face{font-family:"Circular-Std";src:url("../fonts/CircularStd-Black.woff2") format("woff2");font-weight:700;font-display:swap;font-style:normal}
@font-face{font-family:"Circular-Std";src:url("../fonts/CircularStd-Black.woff2") format("woff2");font-weight:800;font-display:swap;font-style:normal}

:root{
  --color-primary:#0cc0df;
  --color-primary-light:#5FDBF0;
  --color-primary-dark:#0AA3BE;
  --color-primary-alpha:rgba(12,192,223,.1);
  --color-secondary:#FF6B9D;
  --color-secondary-light:#FFB5CF;
  --color-secondary-dark:#E5527D;
  --color-secondary-alpha:rgba(255,107,157,.1);
  --color-accent:#FFA726;
  --color-accent-light:#FFCC80;
  --color-accent-dark:#F57C00;
  --color-accent-alpha:rgba(255,167,38,.1);
  --color-success:#66BB6A;
  --color-warning:#FFCA28;
  --color-error:#EF5350;
  --color-info:#42A5F5;
  --color-text:#1A2332;
  --color-text-secondary:#546576;
  --color-text-tertiary:#8B9AAF;
  --color-bg:#FFFFFF;
  --color-bg-light:#F7F9FC;
  --color-bg-dark:#EFF3F8;
  --color-border:#E1E8ED;
  --color-border-light:#EFF3F8;
  --font-primary:'Circular-Std',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --font-display:'Circular-Std',sans-serif;
  --text-xs:.75rem;
  --text-sm:.875rem;
  --text-base:1rem;
  --text-lg:1.125rem;
  --text-xl:1.25rem;
  --text-2xl:1.5rem;
  --text-3xl:1.875rem;
  --text-4xl:2.5rem;
  --text-5xl:3.5rem;
  --space-1:.25rem;
  --space-2:.5rem;
  --space-3:.75rem;
  --space-4:1rem;
  --space-5:1.25rem;
  --space-6:1.5rem;
  --space-8:2rem;
  --space-10:2.5rem;
  --space-12:3rem;
  --space-16:4rem;
  --space-20:5rem;
  --space-24:6rem;
  --radius-sm:8px;
  --radius-md:12px;
  --radius-lg:16px;
  --radius-xl:24px;
  --radius-2xl:32px;
  --radius-full:9999px;
  --shadow-xs:0 1px 2px rgba(0,0,0,.04);
  --shadow-sm:0 2px 4px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04);
  --shadow-md:0 4px 12px rgba(0,0,0,.08),0 2px 4px rgba(0,0,0,.04);
  --shadow-lg:0 8px 24px rgba(0,0,0,.12),0 4px 8px rgba(0,0,0,.06);
  --shadow-xl:0 16px 48px rgba(0,0,0,.16),0 8px 16px rgba(0,0,0,.08);
  --shadow-2xl:0 24px 64px rgba(0,0,0,.2);
  --shadow-primary:0 8px 24px rgba(12,192,223,.2);
  --shadow-secondary:0 8px 24px rgba(255,107,157,.2);
  --shadow-accent:0 8px 24px rgba(255,167,38,.2);
  --ease-in-out:cubic-bezier(.4,0,.2,1);
  --ease-out:cubic-bezier(0,0,.2,1);
  --ease-in:cubic-bezier(.4,0,1,1);
  --ease-spring:cubic-bezier(.34,1.56,.64,1);
  --duration-fast:150ms;
  --duration-base:250ms;
  --duration-slow:350ms;
  --z-base:1;
  --z-dropdown:1000;
  --z-sticky:1020;
  --z-fixed:1030;
  --z-modal-backdrop:1040;
  --z-modal:1050;
  --z-popover:1060;
  --z-tooltip:1070
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
body{font-family:var(--font-primary);font-size:var(--text-base);font-weight:400;line-height:1.6;color:var(--color-text);background-color:var(--color-bg);overflow-x:hidden}

h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:700;line-height:1.2;color:var(--color-text);letter-spacing:-.02em;margin-bottom:var(--space-4)}
h1{font-size:var(--text-5xl);font-weight:800;line-height:1.1}
h2{font-size:var(--text-4xl)}
h3{font-size:var(--text-3xl)}
h4{font-size:var(--text-2xl)}
h5{font-size:var(--text-xl)}
h6{font-size:var(--text-lg)}
p{margin-bottom:var(--space-4);line-height:1.7}
a{color:var(--color-primary);text-decoration:none;transition:all var(--duration-fast) var(--ease-out)}
a:hover{color:var(--color-primary-dark)}

@media (max-width:768px){
  :root{--text-5xl:2.5rem;--text-4xl:2rem;--text-3xl:1.625rem}
  h1,h2,h3{letter-spacing:-.015em}
}

.site-header{position:sticky;top:0;z-index:var(--z-sticky);background:white;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border-light);transition:all .3s ease;box-shadow:0 2px 8px rgba(0,0,0,.06)}
.site-header.scrolled{box-shadow:0 4px 16px rgba(0,0,0,.1)}

.navbar{padding-top:var(--space-4);padding-bottom:var(--space-4);position:relative;z-index:1001}
.navbar-brand .logo{height:42px;width:auto;transition:transform var(--duration-base) var(--ease-spring)}
.navbar-brand:hover .logo{transform:scale(1.05)}

/* ==========================================================
     BREADCRUMBS GLOBAL STYLE
     ========================================================== */
.breadcrumbs{background:var(--color-bg-light);padding:var(--space-2) 0;margin:0;font-size:var(--text-sm);border-bottom:1px solid var(--color-border-light)}
.breadcrumbs .container{display:flex;flex-wrap:wrap;align-items:center}
.breadcrumb-list{list-style:none;display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0;padding:0}
.breadcrumb-item a{color:var(--color-text-secondary);font-weight:600;text-decoration:none;transition:color var(--duration-fast) var(--ease-out)}
.breadcrumb-item a:hover{color:var(--color-primary)}
.breadcrumb-item.active span.breadcrumb-current{color:var(--color-text);font-weight:700}
.breadcrumb-separator{opacity:.4;font-weight:400;margin:0 var(--space-1);color:var(--color-text-tertiary)}

/* Hero embedded breadcrumb refinement */
.hero-breadcrumb-wrapper .breadcrumbs{background:transparent;padding:0;border:none;margin:0 0 var(--space-4)}
.hero-breadcrumb-wrapper .breadcrumb-item a{color:rgba(255,255,255,.85)}
.hero-breadcrumb-wrapper .breadcrumb-item a:hover{color:#fff}
.hero-breadcrumb-wrapper .breadcrumb-item.active span.breadcrumb-current{color:#fff}
.hero-breadcrumb-wrapper .breadcrumb-separator{color:rgba(255,255,255,.6)}

/* Favorites filter notice */
.favorites-filter-notice{background:var(--color-info);background:linear-gradient(135deg, var(--color-info) 0%, var(--color-primary) 100%);color:#fff;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-4);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-2)}
.favorites-filter-notice i{opacity:.85}
.favorites-filter-notice .btn-outline-secondary{background:rgba(255,255,255,.15);color:#fff;border:1px solid rgba(255,255,255,.3);font-size:var(--text-sm);padding:.35rem .75rem;border-radius:var(--radius-sm);transition:all var(--duration-fast) var(--ease-out)}
.favorites-filter-notice .btn-outline-secondary:hover{background:rgba(255,255,255,.25);border-color:rgba(255,255,255,.5)}

/* Favorites filter checkbox styling */
.filter-group .form-check{display:flex;align-items:center;padding-top:.5rem}
.filter-group .form-check-input{cursor:pointer;width:1.125rem;height:1.125rem;margin-right:.5rem;border:2px solid var(--color-border);transition:all var(--duration-fast) var(--ease-out)}
.filter-group .form-check-input:checked{background-color:var(--color-primary);border-color:var(--color-primary)}
.filter-group .form-check-label{cursor:pointer;font-weight:500;color:var(--color-text-secondary);transition:color var(--duration-fast) var(--ease-out)}
.filter-group .form-check-input:checked + .form-check-label{color:var(--color-primary)}

/* Search Results Page Specific Styles */
.search-results-page .search-hero{background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-secondary) 100%);color:#fff;padding:var(--space-16) 0 var(--space-12);text-align:center;position:relative;overflow:hidden}
.search-results-page .search-hero::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 50%, rgba(255,255,255,.1) 0%, transparent 50%);opacity:.5}
.search-results-page .search-hero .container{position:relative;z-index:1}
.search-results-page .page-title{font-size:var(--text-4xl);font-weight:800;margin-bottom:var(--space-3);line-height:1.2}
.search-results-page .page-title .search-term{color:rgba(255,255,255,.95);border-bottom:3px solid currentColor;padding-bottom:2px}
.search-results-page .search-location{font-size:var(--text-lg);opacity:.9;margin-bottom:var(--space-2)}
.search-results-page .search-count{font-size:var(--text-base);opacity:.85}
.search-results-page .filter-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}
.search-results-page .search-suggestions{text-align:left;max-width:500px;margin:var(--space-4) auto;padding-left:var(--space-6)}
.search-results-page .search-suggestions li{margin-bottom:var(--space-2);color:var(--color-text-secondary)}
.search-results-page .related-suggestions{background:var(--color-bg-light);padding:var(--space-16) 0;margin-top:var(--space-8)}
.search-results-page .related-suggestions .section-title{font-size:var(--text-3xl);font-weight:700;margin-bottom:var(--space-8);text-align:center}

@media (max-width:767.98px){
    .breadcrumbs{font-size:12px}
    .breadcrumb-list{gap:4px}
    .favorites-filter-notice{font-size:var(--text-sm);padding:var(--space-2) var(--space-3)}
    .search-results-page .page-title{font-size:var(--text-2xl)}
    .search-results-page .filter-actions{flex-direction:column;align-items:stretch}
    .search-results-page .filter-actions .btn{width:100%}
}

.nav-link{font-size:var(--text-sm);font-weight:600;color:var(--color-text-secondary);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);transition:all var(--duration-fast) var(--ease-out);position:relative}
.nav-link:hover{color:var(--color-primary);background-color:var(--color-primary-alpha)}
.nav-link i{font-size:1.1em;opacity:.9}

.dropdown-menu{border:none;border-radius:var(--radius-lg);box-shadow:none;padding:var(--space-2);margin-top:var(--space-2);animation:slideDown var(--duration-base) var(--ease-out)}
@keyframes slideDown{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
.dropdown-item{padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);font-size:var(--text-sm);transition:all var(--duration-fast) var(--ease-out)}
.dropdown-item:hover{background-color:var(--color-bg-light);color:var(--color-primary);transform:translateX(4px)}
.dropdown-item i{width:20px;text-align:center}

.mega-menu{position:static!important}
.mega-menu-content{position:fixed!important;left:0!important;right:0!important;top:80px!important;width:100vw!important;max-width:100vw!important;height:calc(100vh - 80px)!important;margin:0!important;border:none!important;border-radius:0!important;box-shadow:none!important;overflow-y:auto!important;z-index:1000!important;opacity:0;transform:translateY(-20px);transition:opacity .3s ease,transform .3s ease;pointer-events:none;will-change:opacity,transform;-webkit-transform:translateZ(0);transform:translateZ(0)}
.mega-menu.show .mega-menu-content,.mega-menu-content.show{opacity:1;transform:translateY(0);pointer-events:auto}

.mega-menu-content .container-fluid{max-width:1200px!important;margin:0 auto!important;padding:3rem 15px!important}
.mega-menu-content .row{display:grid!important;grid-template-columns:repeat(5,1fr)!important;gap:2rem!important;align-items:start!important}
.mega-menu-column{width:100%!important;padding:0!important}
.mega-menu-column h6{font-size:1.1rem!important;font-weight:700!important;margin-bottom:1rem!important;padding-bottom:.75rem!important;border-bottom:2px solid currentColor!important;text-transform:uppercase!important;letter-spacing:.5px!important}
.mega-menu-column ul{margin:0!important;padding:0!important}
.mega-menu-column ul li{margin-bottom:.5rem!important}
.mega-menu-column ul li a{display:flex!important;align-items:center!important;padding:.4rem .5rem!important;color:#333!important;text-decoration:none!important;font-size:.95rem!important;border-radius:6px!important;transition:all .2s ease!important}
.mega-menu-column ul li a:hover{background-color:rgba(12,192,223,.1)!important;color:#0cc0df!important;transform:translateX(5px)!important}
.mega-menu-column ul li a i.fa-arrow-right{margin-right:.5rem!important;font-size:.75rem!important;opacity:.7!important}
.mega-menu-column ul li a .text-muted{margin-left:auto!important;font-size:.8rem!important}
.mega-menu .dropdown-menu.show,.mega-menu-content.show{display:block!important;opacity:1!important;visibility:visible!important}

.mega-menu-container{left:0!important;right:0!important;width:100vw!important;max-width:100vw!important;margin:0!important;border:none!important;border-radius:0 0 16px 16px;box-shadow:none;max-height:85vh;overflow-y:auto}
.nav-item.dropdown.position-static{position:static!important}
.mega-menu-wrapper{display:flex;gap:0;padding:2rem 1.5rem 1.5rem;min-height:500px}
.mega-column{flex:1;min-width:0;display:flex;flex-direction:column;padding:0 1rem;border-right:1px solid #e9ecef}
.mega-column:last-child{border-right:none}
.mega-column-header{padding-bottom:1rem;margin-bottom:1rem}
.mega-column-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:white;font-size:1.5rem;margin-bottom:.75rem;box-shadow:none}
.mega-column-title{font-size:1.375rem;font-weight:700;margin:0 0 .25rem 0;line-height:1.2}
.mega-column-count{font-size:.8125rem;color:#6c757d;font-weight:500}
.mega-column-body{flex:1;overflow-y:auto;margin:0 -.5rem;padding:0 .5rem}
.mega-column-body::-webkit-scrollbar{width:4px}
.mega-column-body::-webkit-scrollbar-track{background:transparent}
.mega-column-body::-webkit-scrollbar-thumb{background:#dee2e6;border-radius:10px}
.mega-column-body::-webkit-scrollbar-thumb:hover{background:#adb5bd}
.mega-list{list-style:none;padding:0;margin:0}
.mega-list li{margin-bottom:.375rem}
.mega-list-item{display:flex;align-items:center;gap:.625rem;padding:0 .75rem;border-radius:8px;text-decoration:none;color:#495057;font-size:.9375rem;font-weight:500;transition:all .2s ease;background:transparent}
.mega-list-item:hover{background:#f8f9fa;color:#0cc0df;padding-left:1rem}
.mega-list-item i{flex-shrink:0}
.mega-list-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mega-list-badge{background:#e9ecef;color:#6c757d;font-size:.75rem;padding:.2rem .5rem;border-radius:12px;font-weight:600;flex-shrink:0}
.mega-list-item:hover .mega-list-badge{background:#0cc0df;color:#fff}
.mega-column-footer{padding-top:1rem;margin-top:1rem;border-top:1px solid #e9ecef}
.mega-view-all{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;font-weight:600;font-size:.9375rem;transition:all .2s ease}
.mega-view-all:hover{gap:.75rem}
.mega-menu-footer{text-align:center;padding:1.5rem;border-top:2px solid #e9ecef;background:#f8f9fa}
.user-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0cc0df,#FF6B9D);color:#fff;font-weight:700;font-size:.875rem;background-size:cover;background-position:center;border:2px solid var(--color-border-light);transition:all var(--duration-base) var(--ease-spring)}
.nav-link:hover .user-avatar{border-color:var(--color-primary);transform:scale(1.1)}

.hero-home{position:relative;min-height:680px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(135deg,var(--color-primary) 0%,#4FD1E8 25%,#FF87AB 75%,var(--color-secondary) 100%)}
.hero-home::before{content:"";position:absolute;top:-50%;right:-20%;width:600px;height:600px;background:radial-gradient(circle,rgba(255,255,255,.15) 0%,transparent 70%);border-radius:50%;animation:float 20s ease-in-out infinite}
.hero-home::after{content:"";position:absolute;bottom:-30%;left:-15%;width:500px;height:500px;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 70%);border-radius:50%;animation:float 25s ease-in-out infinite reverse}
@keyframes float{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(50px,-50px) scale(1.1)}}
.hero-content{position:relative;z-index:2;text-align:center;color:white;padding:var(--space-16) var(--space-4);max-width:1000px;margin:0 auto}
.hero-title{font-size:var(--text-5xl);font-weight:800;margin-bottom:var(--space-6);line-height:1.1;text-shadow:0 4px 16px rgba(0,0,0,.15);animation:fadeInUp .8s var(--ease-out)}
.hero-subtitle{font-size:var(--text-xl);margin-bottom:var(--space-12);opacity:.95;font-weight:500;line-height:1.6;animation:fadeInUp .8s var(--ease-out) .2s backwards}
@keyframes fadeInUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
.hero-search-form{max-width:900px;margin:0 auto;animation:fadeInUp .8s var(--ease-out) .4s backwards}
.search-input-group{display:flex;align-items:center;background:white;border-radius:var(--radius-full);padding:var(--space-2);box-shadow:var(--shadow-2xl);gap:var(--space-2);transition:all var(--duration-base) var(--ease-out)}
.search-input-group:hover{box-shadow:0 32px 80px rgba(0,0,0,.25);transform:translateY(-2px)}
.search-input-wrapper,.search-location-wrapper{flex:1;display:flex;align-items:center;padding:var(--space-4) var(--space-6);border-radius:var(--radius-xl);transition:background-color var(--duration-fast) var(--ease-out)}
.search-input-wrapper:hover,.search-location-wrapper:hover{background-color:var(--color-bg-light)}
.search-input-wrapper i,.search-location-wrapper i{color:var(--color-primary);margin-right:var(--space-3);font-size:1.25rem}
.search-input,.search-location{border:none;outline:none;width:100%;font-size:var(--text-base);font-weight:500;color:var(--color-text);background:transparent}
.search-input::placeholder,.search-location::placeholder{color:var(--color-text-tertiary)}
.btn-search{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));color:#fff;border:none;padding:var(--space-5) var(--space-8);border-radius:var(--radius-full);font-weight:700;font-size:var(--text-base);cursor:pointer;transition:all var(--duration-base) var(--ease-spring);white-space:nowrap;box-shadow:var(--shadow-primary);display:flex;align-items:center;gap:var(--space-2)}
.btn-search:hover{transform:scale(1.05);box-shadow:0 12px 32px rgba(12,192,223,.35)}
.btn-search:active{transform:scale(.98)}
.quick-search-filters{display:flex;justify-content:center;gap:var(--space-6);margin-top:var(--space-8);flex-wrap:wrap}
.quick-search-filters label{color:#fff;cursor:pointer;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-weight:500;font-size:var(--text-sm);transition:all var(--duration-fast) var(--ease-out);background:rgba(255,255,255,.1);backdrop-filter:blur(8px)}
.quick-search-filters label:hover{background:rgba(255,255,255,.2);transform:translateY(-2px)}
.quick-search-filters input[type="checkbox"]{width:18px;height:18px;cursor:pointer}

@media (max-width:768px){
  .hero-home{min-height:600px}
  .hero-title{font-size:var(--text-3xl)}
  .hero-subtitle{font-size:var(--text-lg)}
  .search-input-group{flex-direction:column;border-radius:var(--radius-xl);padding:var(--space-4)}
  .btn-search{width:100%;justify-content:center}
}

.home-categories,.home-featured,.home-events,.home-why-kidzup,.home-newsletter{padding:var(--space-20) 0}
.home-categories{background:var(--color-bg-light)}
.home-why-kidzup{background:linear-gradient(135deg,var(--color-bg-light) 0%,#fff 100%)}
.section-header{text-align:center;max-width:700px;margin:0 auto var(--space-16)}
.section-header h2{font-size:var(--text-4xl);margin-bottom:var(--space-4);color:var(--color-text)}
.section-header p{font-size:var(--text-lg);color:var(--color-text-secondary);line-height:1.7}

.categories-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-6)}
.category-card{background:#fff;padding:var(--space-8) var(--space-6);border-radius:var(--radius-xl);text-align:center;text-decoration:none;transition:all var(--duration-base) var(--ease-spring);box-shadow:var(--shadow-sm);border:2px solid var(--color-border-light);position:relative;overflow:hidden}
.category-card::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--color-primary),var(--color-secondary),var(--color-accent));transform:scaleX(0);transition:transform var(--duration-base) var(--ease-out)}
.category-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg);border-color:var(--color-primary)}
.category-card:hover::before{transform:scaleX(1)}
.category-icon{font-size:3.5rem;margin-bottom:var(--space-4);background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;transition:transform var(--duration-base) var(--ease-spring)}
.category-card:hover .category-icon{transform:scale(1.15) rotate(5deg)}
.category-name{font-size:var(--text-xl);font-weight:700;color:var(--color-text);margin-bottom:var(--space-2)}
.category-count{color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:500}
@media (max-width:768px){.categories-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-4)}}

.adresse-card{background:#fff;border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-sm);transition:all var(--duration-base) var(--ease-spring);height:100%;display:flex;flex-direction:column;border:1px solid var(--color-border-light)}
/* Suppression des styles favorites sur les cartes - focus sur pastille uniquement */
.adresse-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-xl);border-color:transparent}
.card-image-wrapper{position:relative;width:100%;aspect-ratio:4/3;overflow:hidden;background:var(--color-bg-light)}
.card-image-link{display:block;width:100%;height:100%}
.card-img{width:100%;height:100%;object-fit:cover;transition:transform var(--duration-slow) var(--ease-out)}
.adresse-card:hover .card-img{transform:scale(1.08)}
.card-image-wrapper::after{content:"";position:absolute;bottom:0;left:0;right:0;height:50%;background:linear-gradient(to top,rgba(0,0,0,.3),transparent);opacity:0;transition:opacity var(--duration-base) var(--ease-out)}
.adresse-card:hover .card-image-wrapper::after{opacity:1}
.card-badge-category{position:absolute;top:var(--space-4);left:var(--space-4);display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:rgba(255,255,255,.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:700;color:var(--color-text);box-shadow:0 2px 8px rgba(0,0,0,.15);z-index:2;transition:all .3s ease}
.card-badge-category i{font-size:1em;color:inherit;margin-right:4px}
.card-favorite-btn{position:absolute;top:var(--space-4);right:var(--space-4);width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-md);transition:all var(--duration-base) var(--ease-spring);z-index:3}
.card-favorite-btn:hover{transform:scale(1.15);background:#fff;box-shadow:var(--shadow-lg)}
.card-favorite-btn i{font-size:1.25rem;color:var(--color-secondary);transition:all var(--duration-base) var(--ease-spring)}
.card-favorite-btn:hover i{transform:scale(1.2)}
.card-favorite-btn.is-favorite{background:var(--color-secondary);box-shadow:0 4px 12px rgba(255,107,157,.4)}
.card-favorite-btn.is-favorite i{color:#fff;transform:scale(1.2);animation:heartBeat .3s var(--ease-spring)}
.card-favorite-btn.is-favorite:hover{background:var(--color-secondary-dark)}
@keyframes heartBeat{0%,100%{transform:scale(1)}25%{transform:scale(1.3)}50%{transform:scale(1.1)}}
.card-body-content{padding:var(--space-6);flex:1;display:flex;flex-direction:column}
.card-title{font-size:var(--text-xl);font-weight:700;color:var(--color-text);margin-bottom:var(--space-3);line-height:1.3}
.favorite-label{display:inline-flex;align-items:center;gap:6px;background:var(--color-secondary-alpha);color:var(--color-secondary-dark);padding:4px 10px;border-radius:9999px;font-size:var(--text-xs);font-weight:700;letter-spacing:.5px;margin-bottom:8px}
.favorite-label i{color:var(--color-secondary-dark);font-size:.85rem}
.card-title a{color:inherit;transition:color var(--duration-fast) var(--ease-out)}
.card-title a:hover{color:var(--color-primary)}
.card-location{display:flex;align-items:center;gap:var(--space-2);color:var(--color-text-secondary);font-size:var(--text-sm);margin-bottom:var(--space-4)}
.card-location i{color:var(--color-primary)}
.card-location .postal-code{color:var(--color-text-tertiary);font-weight:600}
.card-description{color:var(--color-text-secondary);font-size:var(--text-sm);line-height:1.6;margin-bottom:var(--space-4);display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.card-tags{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}
.card-tag{background:var(--color-bg-light);color:var(--color-text-secondary);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600;display:flex;align-items:center;gap:var(--space-1);transition:all var(--duration-fast) var(--ease-out)}
.card-tag:hover{background:var(--color-primary-alpha);color:var(--color-primary)}
.card-tag i{font-size:.9em}
.card-footer-content{display:flex;justify-content:space-between;align-items:center;padding-top:var(--space-4);border-top:1px solid var(--color-border-light);margin-top:auto}
.card-rating{display:flex;align-items:center;gap:var(--space-2)}
.stars-rating{display:flex;gap:2px}
.stars-rating i{color:var(--color-warning);font-size:var(--text-sm)}
.stars-rating i.fa-light{color:var(--color-border)}
.rating-text{font-weight:700;color:var(--color-text)}
.rating-count{color:var(--color-text-tertiary);font-size:var(--text-xs);font-weight:500}
.no-rating{font-size:var(--text-sm);color:var(--color-text-tertiary);font-style:italic}
.card-actions{display:none}
.card-actions .btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));color:#fff;border:none;border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:700;text-decoration:none;white-space:nowrap;transition:all var(--duration-base) var(--ease-spring);box-shadow:var(--shadow-primary)}
.card-actions .btn:hover{transform:translateY(-2px);box-shadow:0 12px 32px rgba(12,192,223,.35);color:#fff;text-decoration:none}

.adresses-grid{display:block}
.adresses-grid .adresse-card{display:flex;flex-direction:column}
.adresses-grid .card-actions{display:none!important}

.adresses-list{display:none}
.adresses-list.active{display:block}
.adresses-list .row{display:block}
.adresses-list .col-lg-4,.adresses-list .col-md-6{width:100%;max-width:100%;padding:0}
.adresse-list-item{margin-bottom:var(--space-6)}
.adresses-list .adresse-card{display:flex!important;flex-direction:row!important;height:auto!important;min-height:220px}
.adresses-list .card-image-wrapper{width:320px!important;min-width:320px!important;max-width:320px!important;height:auto!important;flex-shrink:0;aspect-ratio:4/3}
.adresses-list .card-body-content{flex:1!important;padding:var(--space-6) var(--space-8)!important;display:flex!important;flex-direction:column!important;justify-content:space-between!important}
.adresses-list .card-title{font-size:var(--text-2xl)!important}
.adresses-list .card-location{font-size:var(--text-base)!important}
.adresses-list .card-description{display:-webkit-box!important}
.adresses-list .card-actions{display:flex!important}
.adresses-list .card-footer-content{padding-top:var(--space-5)!important}

/* Liste des stages (horizontal) */
.stages-grid .card-actions{display:none!important}
.stages-list .stage-list-item{margin-bottom:var(--space-6)}
.stages-list .stage-card{display:flex!important;flex-direction:row!important;height:auto!important;min-height:220px}
.stages-list .card-image-wrapper{width:320px!important;min-width:320px!important;max-width:320px!important;height:auto!important;flex-shrink:0;aspect-ratio:4/3}
.stages-list .card-body-content{flex:1!important;padding:var(--space-6) var(--space-8)!important;display:flex!important;flex-direction:column!important;justify-content:space-between!important}
.stages-list .card-title{font-size:var(--text-2xl)!important}
.stages-list .stage-location{font-size:var(--text-base)!important}
.stages-list .stage-description{display:-webkit-box!important}
.stages-list .card-actions{display:flex!important}
.stages-list .stage-meta{margin-bottom:var(--space-4)!important}

/* Liste des événements (horizontal) */
.evenements-grid .card-actions{display:none!important}
.evenements-list .evenement-list-item{margin-bottom:var(--space-6)}
.evenements-list .event-card{display:flex!important;flex-direction:row!important;height:auto!important;min-height:220px}
.evenements-list .event-card-image{width:320px!important;min-width:320px!important;max-width:320px!important;height:auto!important;flex-shrink:0;aspect-ratio:4/3}
.evenements-list .event-card-body{flex:1!important;padding:var(--space-6) var(--space-8)!important;display:flex!important;flex-direction:column!important;justify-content:space-between!important}
.evenements-list .event-title{font-size:var(--text-2xl)!important}
.evenements-list .event-location{font-size:var(--text-base)!important}
.evenements-list .event-excerpt{display:-webkit-box!important}
.evenements-list .card-actions{display:flex!important}
.evenements-list .event-date{margin-bottom:var(--space-4)!important}

/* Liste des anniversaires (horizontal) */
.anniversaires-grid .card-actions{display:none!important}
.anniversaires-list .anniversaire-list-item{margin-bottom:var(--space-6)}
.anniversaires-list .anniversaire-card{display:flex!important;flex-direction:row!important;height:auto!important;min-height:220px}
.anniversaires-list .card-image-wrapper{width:320px!important;min-width:320px!important;max-width:320px!important;height:auto!important;flex-shrink:0;aspect-ratio:4/3}
.anniversaires-list .card-body-content{flex:1!important;padding:var(--space-6) var(--space-8)!important;display:flex!important;flex-direction:column!important;justify-content:space-between!important}
.anniversaires-list .card-title{font-size:var(--text-2xl)!important}
.anniversaires-list .anniversaire-location{font-size:var(--text-base)!important}
.anniversaires-list .anniversaire-description{display:-webkit-box!important}
.anniversaires-list .card-actions{display:flex!important}
.anniversaires-list .anniversaire-meta{margin-bottom:var(--space-4)!important}

/* Liste-only visibility */
.list-only{display:none!important}
.adresses-list .list-only,.stages-list .list-only,.evenements-list .list-only,.anniversaires-list .list-only{display:flex!important}

.adresses-map-view{display:none}
.adresses-map-view.active{display:block}
#archive-map{width:100%;height:600px;border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-lg)}

.archive-hero{background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));color:#fff;padding:var(--space-16) 0;margin-bottom:0;position:relative;overflow:hidden}
.archive-hero::before{content:"";position:absolute;top:-50%;right:-10%;width:400px;height:400px;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 70%);border-radius:50%}
.archive-title{font-size:var(--text-4xl);margin-bottom:var(--space-4);color:#fff;position:relative;z-index:2}
.archive-description{font-size:var(--text-lg);opacity:.95;margin-bottom:var(--space-4);max-width:700px;position:relative;z-index:2}
.archive-count{font-size:var(--text-base);font-weight:600;opacity:.9;margin-bottom:0;display:flex;align-items:center;gap:var(--space-2);position:relative;z-index:2}
.category-hero{text-align:center}
.category-icon-large{width:120px;height:120px;margin:0 auto 2rem;background:rgba(255,255,255,.15);backdrop-filter:blur(8px);border-radius:50%;display:flex;align-items:center;justify-content:center;animation:iconPulse 2s ease-in-out infinite}
@keyframes iconPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}
.category-icon-large i{font-size:4rem;color:#fff}
.subcategories-section{background:#fff;padding:4rem 0;margin-bottom:2rem}
.subcategories-title{font-size:2rem;font-weight:700;color:var(--color-text);margin-bottom:2rem;display:flex;align-items:center;justify-content:center}
.subcategories-title i{color:var(--color-primary)}
.subcategories-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1.5rem}
.subcat-card{background:var(--color-bg-light);padding:2rem 1.5rem;border-radius:16px;text-align:center;text-decoration:none;transition:all .25s cubic-bezier(.34,1.56,.64,1);border:2px solid transparent;display:flex;flex-direction:column;align-items:center}
.subcat-card:hover{transform:translateY(-8px);background:#fff;box-shadow:0 8px 24px rgba(0,0,0,.12);border-color:var(--color-primary)}
.subcat-icon{width:64px;height:64px;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:1rem;transition:all .25s ease}
.subcat-card:hover .subcat-icon{background:var(--color-primary-alpha);transform:scale(1.1)}
.subcat-icon i{font-size:1.75rem;color:var(--color-primary)}
.subcat-name{font-size:1.125rem;font-weight:700;color:var(--color-text);margin-bottom:.5rem}
.subcat-count{font-size:.875rem;color:var(--color-text-tertiary)}

.filters-section{background:#fff;padding:var(--space-8) 0;margin-bottom:var(--space-8);box-shadow:var(--shadow-sm)}
.filters-form{position:relative}
.filter-group{display:flex;flex-direction:column;gap:var(--space-2)}
.filter-group label{font-weight:600;font-size:var(--text-sm);color:var(--color-text);display:flex;align-items:center}
.filter-group label i{color:var(--color-primary);opacity:.8}
.filter-group .form-control,.filter-group .form-select{border:2px solid var(--color-border-light);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);transition:all var(--duration-fast) var(--ease-out);background:#fff}
.filter-group .form-control:focus,.filter-group .form-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-alpha);outline:none}
.filter-group .btn-primary{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-weight:700}
.quick-filters{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--color-border-light)}
.quick-filters-label{font-weight:600;font-size:var(--text-sm);color:var(--color-text);display:flex;align-items:center}
.quick-filter-btn{background:var(--color-bg-light);color:var(--color-text-secondary);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:600;text-decoration:none;transition:all var(--duration-fast) var(--ease-out);display:inline-flex;align-items:center;gap:var(--space-1)}
.quick-filter-btn:hover{background:var(--color-primary);color:#fff;transform:translateY(-2px);box-shadow:var(--shadow-sm)}

.results-section{padding:var(--space-8) 0 var(--space-20)}
.results-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-8);padding-bottom:var(--space-4);border-bottom:2px solid var(--color-border-light)}
.results-info{font-size:var(--text-sm);color:var(--color-text-secondary)}
.results-count{display:inline-block}
.results-count strong{color:var(--color-primary);font-weight:700}
.view-options{display:flex;gap:var(--space-2);background:var(--color-bg-light);padding:var(--space-1);border-radius:var(--radius-md)}
.view-btn{background:transparent;border:none;padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);font-weight:600;font-size:var(--text-sm);color:var(--color-text-secondary);display:flex;align-items:center;gap:var(--space-2)}
.view-btn:hover{background:#fff;color:var(--color-text)}
.view-btn.active{background:#fff;color:var(--color-primary);box-shadow:var(--shadow-sm)}
.view-btn i{font-size:1.1em}
.pagination-wrapper{margin-top:var(--space-12);display:flex;justify-content:center}
.pagination{display:flex;gap:var(--space-2);list-style:none;padding:0;margin:0}
.pagination .page-numbers{display:flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:#fff;color:var(--color-text);text-decoration:none;font-weight:600;font-size:var(--text-sm);transition:all var(--duration-fast) var(--ease-out);border:2px solid var(--color-border-light)}
.pagination .page-numbers:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-alpha)}
.pagination .page-numbers.current{background:var(--color-primary);color:#fff;border-color:var(--color-primary);box-shadow:var(--shadow-primary)}
.pagination .page-numbers.dots{border:none;background:transparent}
.no-results{text-align:center;padding:var(--space-20) var(--space-4)}
.no-results-icon{width:120px;height:120px;margin:0 auto var(--space-8);background:linear-gradient(135deg,var(--color-primary-alpha),var(--color-secondary-alpha));border-radius:50%;display:flex;align-items:center;justify-content:center}
.no-results-icon i{font-size:3rem;background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.no-results h2{font-size:var(--text-3xl);margin-bottom:var(--space-4);color:var(--color-text)}
.no-results p{font-size:var(--text-lg);color:var(--color-text-secondary);margin-bottom:var(--space-8);max-width:500px;margin-left:auto;margin-right:auto}

.single-hero{position:relative;min-height:500px;display:flex;align-items:flex-end;overflow:hidden}
.single-hero .hero-image{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}
.single-hero .hero-image img{width:100%;height:100%;object-fit:cover}
.single-hero .hero-gradient{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(to top,rgba(0,0,0,.7) 0%,transparent 60%);z-index:2}
.single-hero .hero-content{position:relative;z-index:3;width:100%;padding:3rem 0 2rem}
.single-hero .hero-inner{color:#fff}
.breadcrumb-nav{margin-bottom:0}
.breadcrumb{background:rgba(255,255,255,.1);backdrop-filter:blur(8px);padding:.5rem 1rem;border-radius:9999px;margin-bottom:0;display:inline-flex}
.single-title{font-size:3.5rem;font-weight:800;color:#fff;margin-bottom:1.5rem;text-shadow:0 2px 8px rgba(0,0,0,.3)}
.single-content-wrapper{padding:4rem 0 5rem}
.single-section{background:#fff;padding:2rem;border-radius:16px;box-shadow:0 2px 4px rgba(0,0,0,.06);margin-bottom:1.5rem}
.section-title{font-size:1.5rem;font-weight:700;margin-bottom:1.5rem;display:flex;align-items:center}
.sidebar-card{background:#fff;padding:1.5rem;border-radius:16px;box-shadow:0 2px 4px rgba(0,0,0,.06);margin-bottom:1rem}

.home-newsletter{background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));color:#fff;position:relative;overflow:hidden}
.newsletter-form .input-group{display:flex;gap:var(--space-3);margin-top:var(--space-6)}
.newsletter-form .form-control{flex:1;border-radius:var(--radius-full);padding:var(--space-5) var(--space-6);border:2px solid rgba(255,255,255,.3);background:rgba(255,255,255,.1);backdrop-filter:blur(8px);color:#fff;font-size:var(--text-base);font-weight:500;transition:all var(--duration-base) var(--ease-out)}
.newsletter-form .form-control::placeholder{color:rgba(255,255,255,.7)}
.newsletter-form .form-control:focus{outline:none;border-color:#fff;background:rgba(255,255,255,.2)}
.newsletter-form .btn{border-radius:var(--radius-full);padding:var(--space-5) var(--space-10);background:#fff;color:var(--color-primary);font-weight:700;font-size:var(--text-base);border:none;cursor:pointer;transition:all var(--duration-base) var(--ease-spring);box-shadow:var(--shadow-lg);white-space:nowrap}
.newsletter-form .btn:hover{transform:scale(1.05);box-shadow:var(--shadow-xl)}

@media (max-width:991.98px){
  :root{--space-20:3rem;--space-16:2.5rem}
  .mega-menu-content{position:fixed!important;transform:none;width:100%;margin-top:var(--space-2);padding:var(--space-4);max-width:100%}
  .mega-menu-content .row{grid-template-columns:repeat(2,1fr)!important;gap:var(--space-4)}
  .mega-menu-column{margin-bottom:var(--space-3)}
  .mega-menu-column h6{font-size:var(--text-sm);margin-bottom:var(--space-2)}
  .filters-section{position:relative;top:0}
  .results-header{flex-direction:column;gap:var(--space-4);align-items:flex-start}
  .view-options{width:100%;justify-content:center}
  .adresses-list .card-image-wrapper{width:280px!important;min-width:280px!important;max-width:280px!important}
  .adresses-list .card-body-content{padding:var(--space-5) var(--space-6)!important}
  .adresses-list .card-title{font-size:var(--text-xl)!important}
    .adresses-list .card-description{-webkit-line-clamp:2;line-clamp:2}
  .category-icon-large{width:90px;height:90px}
  .category-icon-large i{font-size:3rem}
  .subcategories-grid{grid-template-columns:repeat(2,1fr);gap:1rem}
}

@media (max-width:767.98px){
  .archive-title{font-size:var(--text-3xl)}
  .quick-filters{justify-content:center}
  .quick-filters-label{width:100%;text-align:center;margin-bottom:var(--space-2)}
  .newsletter-form .input-group{flex-direction:column}
  .newsletter-form .btn{width:100%}
  .single-title{font-size:2rem}
  .adresses-list .adresse-card{flex-direction:column!important;min-height:auto!important}
  .adresses-list .card-image-wrapper{width:100%!important;min-width:100%!important;max-width:100%!important;height:240px!important;aspect-ratio:16/9}
  .adresses-list .card-body-content{padding:var(--space-5) var(--space-4)!important}
  .adresses-list .card-footer-content{flex-direction:column;align-items:flex-start!important;gap:var(--space-4)}
  .adresses-list .card-actions{width:100%}
  .adresses-list .card-actions .btn{width:100%;justify-content:center}
  .stages-list .stage-card{flex-direction:column!important;min-height:auto!important}
  .stages-list .card-image-wrapper{width:100%!important;min-width:100%!important;max-width:100%!important;height:240px!important;aspect-ratio:16/9}
  .stages-list .card-body-content{padding:var(--space-5) var(--space-4)!important}
  .stages-list .card-actions{width:100%}
  .stages-list .card-actions .btn{width:100%;justify-content:center}
  .evenements-list .event-card{flex-direction:column!important;min-height:auto!important}
  .evenements-list .event-card-image{width:100%!important;min-width:100%!important;max-width:100%!important;height:240px!important;aspect-ratio:16/9}
  .evenements-list .event-card-body{padding:var(--space-5) var(--space-4)!important}
  .evenements-list .event-actions{width:100%}
  .evenements-list .event-actions .btn{width:100%;justify-content:center}
  .anniversaires-list .anniversaire-card{flex-direction:column!important;min-height:auto!important}
  .anniversaires-list .card-image-wrapper{width:100%!important;min-width:100%!important;max-width:100%!important;height:240px!important;aspect-ratio:16/9}
  .anniversaires-list .card-body-content{padding:var(--space-5) var(--space-4)!important}
  .anniversaires-list .card-actions{width:100%}
  .anniversaires-list .card-actions .btn{width:100%;justify-content:center}
}

@media (max-width:575.98px){
  .mega-menu-content .row{grid-template-columns:1fr!important;gap:var(--space-3)}
  .view-btn span{display:none}
  .adresse-card{border-radius:var(--radius-lg)}
  .card-badge-category{font-size:var(--text-xs);padding:var(--space-1) var(--space-3)}
  .card-favorite-btn{width:44px;height:44px}
  .card-tag{font-size:.7rem;padding:.15rem .5rem}
  .subcategories-grid{grid-template-columns:1fr}
}

@media (max-width:1399px){
  .mega-column-title{font-size:1.25rem}
  .mega-column-icon{width:44px;height:44px;font-size:1.375rem}
  .mega-list-item{font-size:.875rem;padding:.5rem .625rem}
}

@media (max-width:1199px){
  .mega-menu-wrapper{flex-wrap:wrap;padding:1.5rem 1rem}
  .mega-column{flex:0 0 50%;max-width:50%;margin-bottom:1.5rem;border-right:1px solid #e9ecef;border-bottom:1px solid #e9ecef}
  .mega-column:nth-child(2n){border-right:none}
}

@media (max-width:992px){
  .mega-menu-content .row{grid-template-columns:repeat(3,1fr)!important;gap:1.5rem!important}
}

@media (max-width:768px){
  .mega-menu-content{top:60px!important;height:calc(100vh - 60px)!important}
  .mega-menu-content .container-fluid{padding:2rem 15px!important}
  .mega-menu-content .row{grid-template-columns:repeat(2,1fr)!important;gap:1.5rem!important}
  .mega-menu-column h6{font-size:.95rem!important;padding-bottom:.5rem!important}
  .mega-menu-column ul li{margin-bottom:.4rem!important}
  .mega-menu-column ul li a{font-size:.85rem!important;padding:.3rem .4rem!important}
}

@media (max-width:480px){
  .mega-menu-content .row{grid-template-columns:1fr!important;gap:1.5rem!important}
}

.mega-menu-content::-webkit-scrollbar{width:8px}
.mega-menu-content::-webkit-scrollbar-track{background:#f1f1f1}
.mega-menu-content::-webkit-scrollbar-thumb{background:#0cc0df;border-radius:4px}
.mega-menu-content::-webkit-scrollbar-thumb:hover{background:#0aa3c0}

.text-gradient{background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.badge-primary{background:var(--color-primary-alpha);color:var(--color-primary-dark);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:700}
.badge-secondary{background:var(--color-secondary-alpha);color:var(--color-secondary-dark)}
.badge-accent{background:var(--color-accent-alpha);color:var(--color-accent-dark)}
.btn-primary{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));color:#fff;padding:var(--space-4) var(--space-8);border-radius:var(--radius-full);font-weight:700;border:none;cursor:pointer;transition:all var(--duration-base) var(--ease-spring);box-shadow:var(--shadow-primary);display:inline-flex;align-items:center;gap:var(--space-2)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 32px rgba(12,192,223,.35)}
.btn-outline-primary{background:transparent;color:var(--color-primary);border:2px solid var(--color-primary);padding:var(--space-4) var(--space-8);border-radius:var(--radius-full);font-weight:700;cursor:pointer;transition:all var(--duration-base) var(--ease-out)}
.btn-outline-primary:hover{background:var(--color-primary);color:#fff;transform:translateY(-2px)}
.container{max-width:1280px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.sr-only-focusable:not(:focus):not(:focus-within){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

:focus-visible{outline:3px solid var(--color-primary);outline-offset:4px}
.card-favorite-btn:focus,.card-actions .btn:focus,.view-btn:focus{outline:3px solid var(--color-primary);outline-offset:3px}
@media (prefers-contrast:high){
  .adresse-card{border:2px solid var(--color-text)}
  .card-title a:hover{text-decoration:underline}
  .adresses-list .btn-primary{border:2px solid #fff}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
@media print{.site-header,.home-newsletter{display:none}}

.mega-list-item i.fa-arrow-right{flex-shrink:0;color:var(--color-primary);font-size:.75rem;transition:transform .2s ease}
.mega-list-item:hover i.fa-arrow-right{transform:translateX(4px)}
body.mega-menu-open{overflow:hidden!important}
/**
 * KIDZUP - Mega Menu Full Width & Full Height
 * 
 * CSS pour que le mega menu couvre toute la largeur et toute la hauteur
 * À ajouter dans main.css
 * 
 * @version 2.0
 */

/* ============================================================
 * MEGA MENU - FULL WIDTH & FULL HEIGHT
 * ============================================================ */

/* Le parent doit être position static pour le dropdown full width */
.nav-item.position-static {
    position: static !important;
}

/* Le mega menu container prend toute la largeur et hauteur */
.mega-menu-container {
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    top: 80px !important; /* Hauteur du header */
    width: 100vw !important;
    max-width: 100vw !important;
    height: calc(100vh - 80px) !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15) !important;
    overflow-y: auto !important;
    z-index: 1000 !important;
    background: white !important;
    transform: none !important;
}

/* Wrapper des colonnes centré avec padding */
.mega-menu-wrapper {
    max-width: 1400px;
    margin: 0 auto;
    padding: 3rem 2rem;
    min-height: 100%;
    display: flex;
    gap: 2rem;
    align-items: flex-start;
}

/* Chaque colonne prend 1/5 de la largeur */
.mega-column {
    flex: 1;
    min-width: 0;
}

/* Footer du mega menu en bas */
.mega-menu-footer {
    position: sticky;
    bottom: 0;
    left: 0;
    right: 0;
    background: linear-gradient(to top, white 80%, transparent);
    padding: 2rem;
    text-align: center;
    border-top: 1px solid #e9ecef;
    margin-top: auto;
}



/* Empêcher le scroll du body quand le menu est ouvert */
body.mega-menu-open {
    overflow: hidden !important;
}

/* Animation d'ouverture */
.mega-menu-container {
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.mega-menu-container.show {
    opacity: 1 !important;
    visibility: visible !important;
}

/* Scrollbar personnalisée */
.mega-menu-container::-webkit-scrollbar {
    width: 10px;
}

.mega-menu-container::-webkit-scrollbar-track {
    background: #f1f1f1;
}

.mega-menu-container::-webkit-scrollbar-thumb {
    background: #0cc0df;
    border-radius: 5px;
}

.mega-menu-container::-webkit-scrollbar-thumb:hover {
    background: #0aa0bf;
}

/* Performance - GPU Acceleration */
.mega-menu-container {
    will-change: opacity, visibility;
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
}

/* ============================================================
 * RESPONSIVE
 * ============================================================ */

@media (max-width: 1400px) {
    .mega-menu-wrapper {
        max-width: 1200px;
    }
}

@media (max-width: 1200px) {
    .mega-menu-wrapper {
        max-width: 100%;
        padding: 2rem 1.5rem;
    }
}

@media (max-width: 992px) {
    .mega-menu-container {
        top: 70px !important;
        height: calc(100vh - 70px) !important;
    }
    
    .mega-menu-wrapper {
        flex-wrap: wrap;
        padding: 1.5rem 1rem;
    }
    
    .mega-column {
        flex: 0 0 calc(50% - 1rem);
        max-width: calc(50% - 1rem);
    }
}

@media (max-width: 768px) {
    .mega-menu-container {
        top: 60px !important;
        height: calc(100vh - 60px) !important;
    }
    
    .mega-menu-wrapper {
        flex-direction: column;
        padding: 1rem;
    }
    
    .mega-column {
        flex: 1 1 auto;
        max-width: 100%;
        width: 100%;
    }
    
    .mega-menu-footer {
        position: relative;
        margin-top: 2rem;
    }
}

/* ============================================================
 * LIMITATION DES SOUS-CATÉGORIES (déjà présent)
 * ============================================================ */

/* Cacher les sous-catégories après la 5ème */
.mega-list li:nth-child(n+6) {
    display: none !important;
}

/* Quand la colonne est expanded, tout afficher */
.mega-column.expanded .mega-list li {
    display: flex !important;
}

/* Bouton "Voir plus / Voir moins" */
.mega-menu-see-more {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    margin-top: 0.75rem;
    background: rgba(12, 192, 223, 0.1);
    color: #0cc0df;
    border: none;
    border-radius: 9999px;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
    width: 100%;
    justify-content: center;
}

.mega-menu-see-more:hover {
    background: #0cc0df;
    color: white;
    transform: translateY(-2px);
}

.mega-menu-see-more i {
    font-size: 0.75rem;
    transition: transform 0.2s ease;
}

.mega-column.expanded .mega-menu-see-more i {
    transform: rotate(180deg);
}

.mega-menu-see-more .see-more-text {
    display: inline;
}

.mega-menu-see-more .see-less-text {
    display: none;
}

.mega-column.expanded .mega-menu-see-more .see-more-text {
    display: none;
}

.mega-column.expanded .mega-menu-see-more .see-less-text {
    display: inline;
}

.mega-column.has-few-items .mega-menu-see-more {
    display: none;
}

.mega-menu-see-more .count-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 0.4rem;
    background: #0cc0df;
    color: white;
    border-radius: 10px;
    font-size: 0.75rem;
    font-weight: 700;
    margin-left: 0.25rem;
}

.mega-column.expanded .mega-menu-see-more .count-badge {
    background: white;
    color: #0cc0df;
}
/* ============================================================
 * MEGA MENU - PLEIN ÉCRAN SIMPLE
 * ============================================================ */

.nav-item.position-static {
    position: static !important;
}

.mega-menu-container {
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    top: 80px !important;
    width: 100vw !important;
    height: calc(100vh - 80px) !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    border-radius: 0 !important;
    background: white !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1) !important;
    overflow-y: auto !important;
    z-index: 999 !important;
}

.mega-menu-wrapper {
    max-width: 1400px;
    margin: 0 auto;
    padding: 3rem 2rem;
    display: flex;
    gap: 2rem;
}

.mega-column {
    flex: 1;
    min-width: 0;
}

.mega-menu-footer {
    position: sticky;
    bottom: 0;
    background: white;
    padding: 1rem 2rem;
    text-align: center;
    border-top: 1px solid #e9ecef;
}

.mega-menu-footer .btn {
    padding: 0.5rem 1.25rem;
    font-size: 0.9rem;
}

.mega-menu-container::-webkit-scrollbar {
    width: 8px;
}

.mega-menu-container::-webkit-scrollbar-track {
    background: #f1f1f1;
}

.mega-menu-container::-webkit-scrollbar-thumb {
    background: #0cc0df;
    border-radius: 4px;
}

/* LIMITATION 5 ITEMS */
.mega-list li:nth-child(n+6) {
    display: none !important;
}

.mega-column.expanded .mega-list li {
    display: flex !important;
}

.mega-menu-see-more {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    margin-top: 0.75rem;
    background: rgba(12, 192, 223, 0.1);
    color: #0cc0df;
    border: none;
    border-radius: 9999px;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
    width: 100%;
    justify-content: center;
}

.mega-menu-see-more:hover {
    background: #0cc0df;
    color: white;
}

.mega-menu-see-more i {
    transition: transform 0.2s ease;
}

.mega-column.expanded .mega-menu-see-more i {
    transform: rotate(180deg);
}

.mega-menu-see-more .see-more-text { display: inline; }
.mega-menu-see-more .see-less-text { display: none; }
.mega-column.expanded .mega-menu-see-more .see-more-text { display: none; }
.mega-column.expanded .mega-menu-see-more .see-less-text { display: inline; }
.mega-column.has-few-items .mega-menu-see-more { display: none; }

.mega-menu-see-more .count-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 0.4rem;
    background: #0cc0df;
    color: white;
    border-radius: 10px;
    font-size: 0.75rem;
    font-weight: 700;
    margin-left: 0.25rem;
}

.mega-column.expanded .mega-menu-see-more .count-badge {
    background: white;
    color: #0cc0df;
}

/* RESPONSIVE */
@media (max-width: 992px) {
    .mega-menu-wrapper { flex-wrap: wrap; }
    .mega-column { flex: 0 0 calc(50% - 1rem); }
}

@media (max-width: 768px) {
    .mega-menu-container {
        top: 60px !important;
        height: calc(100vh - 60px) !important;
    }
    .mega-menu-wrapper {
        flex-direction: column;
        padding: 1rem;
    }
    .mega-column {
        flex: 1 1 auto;
        width: 100%;
    }
}

/* ==========================================================================
   HOME PAGE SECTIONS
   ========================================================================== */

/* Stages et Anniversaires Section */
.home-stages-anniversaires {
    padding: 4rem 0;
    background: white;
}

/* Stage Cards - Format Grille (comme adresses) */
.stage-card {
    background: white;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    height: 100%;
    display: flex;
    flex-direction: column;
}

/* Anniversaire Cards - même style que stages */
.anniversaire-card {
    background: white;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    height: 100%;
    display: flex;
    flex-direction: column;
}

/* Sur la home page, forcer une hauteur minimale identique */
.home-stages-anniversaires .stage-card,
.home-stages-anniversaires .anniversaire-card {
    min-height: 450px;
}

.stage-card:hover,
.anniversaire-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 12px 32px rgba(0,0,0,0.15);
}

/* Image Container */
.stage-card .card-image-wrapper {
    position: relative;
    width: 100%;
    height: 220px;
    overflow: hidden;
}

.stage-card .card-image-link {
    display: block;
    width: 100%;
    height: 100%;
}

.stage-card .card-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}

.stage-card:hover .card-img {
    transform: scale(1.08);
}

/* Badge Catégorie */
.stage-card .card-badge-category {
    position: absolute;
    top: 12px;
    left: 12px;
    padding: 6px 12px;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 6px;
    z-index: 2;
    backdrop-filter: blur(8px);
}

/* Badge Statut */
.stage-card .card-badge-status {
    position: absolute;
    top: 12px;
    right: 12px;
    padding: 6px 12px;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
    z-index: 2;
    backdrop-filter: blur(8px);
}

.stage-card .card-badge-status.status-open {
    background: rgba(16, 185, 129, 0.9);
    color: white;
}

.stage-card .card-badge-status.status-last {
    background: rgba(245, 158, 11, 0.9);
    color: white;
}

.stage-card .card-badge-status.status-full {
    background: rgba(239, 68, 68, 0.9);
    color: white;
}

/* Bouton Favori */
.stage-card .card-favorite-btn {
    position: absolute;
    bottom: 12px;
    right: 12px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.95);
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    color: #666;
    transition: all 0.3s ease;
    z-index: 2;
    backdrop-filter: blur(8px);
}

.stage-card .card-favorite-btn:hover {
    transform: scale(1.1);
    background: white;
    color: #e74c3c;
}

.stage-card .card-favorite-btn.is-favorite {
    color: #e74c3c;
}

/* Card Body */
.stage-card .card-body-content,
.anniversaire-card .card-body-content {
    padding: 1.25rem;
    flex: 1;
    display: flex;
    flex-direction: column;
}

/* Location (Ville, Province) */
.stage-card .stage-location,
.anniversaire-card .anniversaire-location {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 0.75rem;
    font-size: 0.875rem;
    color: #6b7280;
}

.stage-card .stage-location i,
.anniversaire-card .anniversaire-location i {
    color: #667eea;
    font-size: 0.95rem;
}

.stage-card .stage-location .location-sep,
.anniversaire-card .anniversaire-location .location-sep {
    margin: 0 6px;
    color: #d1d5db;
}

/* Titre */
.stage-card .card-title {
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.4;
    margin-bottom: 0.75rem;
    min-height: 2.8rem;
}

.stage-card .card-title a {
    color: #1a1a1a;
    text-decoration: none;
    transition: color 0.2s ease;
}

.stage-card .card-title a:hover {
    color: #667eea;
}

/* Description courte */
.stage-card .stage-description,
.anniversaire-card .anniversaire-description {
    font-size: 0.875rem;
    line-height: 1.6;
    color: #6b7280;
    margin: 0;
    margin-bottom: 0.75rem;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    line-clamp: 3;
    overflow: hidden;
    flex-grow: 1;
}

/* ================================================
   ANNIVERSAIRE CARDS (hérite de stage-card)
   ================================================ */

/* Badge déplacement */
.anniversaire-card .badge-deplacement {
    position: absolute;
    top: 10px;
    right: 10px;
    background: rgba(34, 197, 94, 0.9);
    color: white;
    padding: 4px 8px;
    border-radius: 6px;
    font-size: 0.75rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 4px;
    z-index: 2;
}

/* Prix en bas de card - deprecated, utiliser .stage-price maintenant */
.anniversaire-prix {
    margin-top: auto;
    padding-top: 0.75rem;
    border-top: 1px solid #e5e7eb;
    font-size: 0.875rem;
    color: #6b7280;
}

.anniversaire-prix i {
    color: #667eea;
}

/* ================================================
   ANCIEN FORMAT HORIZONTAL (pour homepage si besoin)
   ================================================ */

.stage-image, .anniversaire-image {
    position: relative;
    height: 180px;
    flex-shrink: 0;
    overflow: hidden;
}

/* Force height 180px sur la home page pour cohérence */
.home-stages-anniversaires .stage-card .card-image-wrapper,
.home-stages-anniversaires .anniversaire-card .card-image-wrapper {
    height: 180px;
}

.stage-image img, .anniversaire-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}

.stage-card:hover .stage-image img,
.anniversaire-card:hover .anniversaire-image img {
    transform: scale(1.08);
}

/* Badge catégorie sur image */
.stage-category-badge {
    position: absolute;
    top: 10px;
    left: 10px;
    background: rgba(102, 126, 234, 0.95);
    color: white;
    padding: 6px 12px;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    z-index: 2;
    backdrop-filter: blur(8px);
}

.stage-category-badge i {
    font-size: 0.7rem;
}

.stage-content, .anniversaire-content {
    padding: 1rem;
    flex: 1;
    display: flex;
    flex-direction: column;
}

/* Méta-informations (dates, ville, prix) */
.stage-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

.stage-dates, 
.stage-location,
.stage-price,
.anniversaire-age {
    font-size: 0.8rem;
    color: #6b7280;
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.stage-dates i,
.stage-location i,
.stage-price i {
    color: #667eea;
    font-size: 0.85rem;
}

.stage-title, .anniversaire-title {
    font-size: 1.1rem;
    font-weight: 600;
    margin: 0.5rem 0;
    line-height: 1.4;
}

.stage-title a, .anniversaire-title a {
    color: #333;
    text-decoration: none;
    transition: color 0.2s ease;
}

.stage-title a:hover, .anniversaire-title a:hover {
    color: var(--color-primary);
}

.stage-excerpt, .anniversaire-excerpt {
    font-size: 0.875rem;
    color: #6b7280;
    line-height: 1.5;
    margin-top: auto;
}

.stage-excerpt, .anniversaire-excerpt {
    font-size: 0.875rem;
    color: #6c757d;
    margin: 0;
}

/* Events Section */
.home-events {
    padding: 4rem 0;
    background: #f8f9fa;
}

.event-card {
    background: white;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    transition: all 0.3s ease;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.event-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 12px 32px rgba(0,0,0,0.15);
}

.event-image {
    height: 180px;
    overflow: hidden;
}

.event-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.event-card:hover .event-image img {
    transform: scale(1.05);
}

.event-content {
    padding: 1.5rem;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.event-date {
    font-size: 0.875rem;
    color: #6c757d;
    margin-bottom: 0.75rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.event-date i {
    color: var(--color-primary);
}

.event-title {
    font-size: 1.1rem;
    font-weight: 600;
    margin-bottom: 0.75rem;
    line-height: 1.4;
}

.event-title a {
    color: #333;
    text-decoration: none;
}

.event-title a:hover {
    color: var(--color-primary);
}

.event-excerpt {
    font-size: 0.875rem;
    color: #6c757d;
    line-height: 1.6;
    margin: 0;
    flex: 1;
}

/* Blog Section */
.home-blog {
    padding: 4rem 0;
    background: #f8f9fa;
}

.blog-card {
    background: white;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    transition: all 0.3s ease;
    height: 100%;
}

.blog-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 12px 32px rgba(0,0,0,0.15);
}

.blog-image {
    height: 200px;
    overflow: hidden;
}

.blog-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.blog-card:hover .blog-image img {
    transform: scale(1.05);
}

.blog-content {
    padding: 1.5rem;
}

.blog-meta {
    font-size: 0.875rem;
    color: #6c757d;
    margin-bottom: 1rem;
}

.blog-title {
    font-size: 1.25rem;
    font-weight: 600;
    margin-bottom: 1rem;
}

.blog-title a {
    color: #333;
    text-decoration: none;
}

.blog-title a:hover {
    color: var(--color-primary);
}

.blog-excerpt {
    color: #6c757d;
    line-height: 1.6;
    margin-bottom: 1rem;
}

.blog-read-more {
    color: var(--color-primary);
    font-weight: 600;
    text-decoration: none;
    font-size: 0.875rem;
}

.blog-read-more:hover {
    color: var(--color-primary-dark);
}

/* Feature Box Updates */
.feature-box {
    text-align: center;
    padding: 2rem 1rem;
}

.feature-icon {
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.5rem;
    color: white;
    font-size: 2rem;
    transition: all 0.3s ease;
}

.feature-icon.large {
    width: 100px;
    height: 100px;
    font-size: 2.5rem;
}

.feature-box:hover .feature-icon {
    transform: scale(1.1);
    box-shadow: 0 8px 24px rgba(12, 192, 223, 0.3);
}

.feature-box h3 {
    font-size: 1.25rem;
    font-weight: 700;
    margin-bottom: 1rem;
    color: #333;
}

.feature-box p {
    color: #6c757d;
    line-height: 1.6;
}

/* ==========================================================================
   FOOTER STYLES
   ========================================================================== */

.site-footer {
    background: #2c3e50;
    color: white;
}

.footer-newsletter {
    background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));
    padding: 3rem 0;
}

.newsletter-box h3 {
    color: white;
    font-size: 1.5rem;
    margin-bottom: 0.5rem;
}

.newsletter-box p {
    color: rgba(255,255,255,0.9);
    margin-bottom: 0;
}

.newsletter-form .input-group {
    max-width: 400px;
    margin-left: auto;
}

.newsletter-form .form-control {
    border: none;
    border-radius: 25px 0 0 25px;
    padding: 0.75rem 1.25rem;
}

.newsletter-form .btn {
    border-radius: 0 25px 25px 0;
    padding: 0.75rem 1.5rem;
    background: white;
    color: var(--color-primary);
    border: none;
    font-weight: 600;
}

.newsletter-form .btn:hover {
    background: #f8f9fa;
}

.footer-content {
    padding: 3rem 0;
}

.footer-column h4 {
    color: white;
    font-size: 1.25rem;
    margin-bottom: 1.5rem;
    font-weight: 600;
}

.footer-logo img {
    max-height: 60px;
    margin-bottom: 1.5rem;
}

.footer-column p {
    color: #bdc3c7;
    line-height: 1.6;
    margin-bottom: 1rem;
}

.footer-contact p {
    color: #bdc3c7;
    margin-bottom: 1rem;
}

.footer-social {
    display: flex;
    gap: 1rem;
}

.social-link {
    width: 40px;
    height: 40px;
    background: rgba(255,255,255,0.1);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    text-decoration: none;
    transition: all 0.3s ease;
}

.social-link:hover {
    background: var(--color-primary);
    color: white;
    transform: translateY(-2px);
}

.footer-links {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-links li {
    margin-bottom: 0.75rem;
}

.footer-links a {
    color: #bdc3c7;
    text-decoration: none;
    transition: color 0.3s ease;
}

.footer-links a:hover {
    color: var(--color-primary);
}

.footer-copyright {
    background: #1a252f;
    padding: 1.5rem 0;
    border-top: 1px solid rgba(255,255,255,0.1);
}

.footer-copyright p {
    margin: 0;
    color: #bdc3c7;
    font-size: 0.875rem;
}

.footer-copyright a {
    color: var(--color-primary);
    text-decoration: none;
}

.footer-copyright a:hover {
    color: var(--color-primary-dark);
}

@media (max-width: 768px) {
    .footer-copyright .text-right {
        text-align: left !important;
        margin-top: 1rem;
    }
    
    .newsletter-form .input-group {
        flex-direction: column;
    }
    
    .newsletter-form .form-control {
        border-radius: 25px;
        margin-bottom: 1rem;
    }
    
    .newsletter-form .btn {
        border-radius: 25px;
    }
}

/* ==========================================================================
   SINGLE ADRESSE - MODERN DESIGN (Tesla/Apple/Lego/Airbnb/Booking inspired)
   ========================================================================== */

.kidzup-single-adresse-modern {
    background: #f8f9fa;
}

/* Hero Single Image Section - Full Screen */
.adresse-hero {
    position: relative;
    width: 100%;
    height: 70vh;
    min-height: 500px;
    max-height: 800px;
    overflow: hidden;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

.hero-single-image {
    width: 100%;
    height: 100%;
    position: relative;
    overflow: hidden;
}

.hero-single-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

.hero-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    font-size: 8rem;
    color: rgba(255,255,255,0.3);
}

.hero-actions {
    position: absolute;
    top: 1.5rem;
    right: 1.5rem;
    display: flex;
    gap: 0.75rem;
    z-index: 10;
}

.action-btn {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: rgba(255,255,255,0.95);
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

.action-btn:hover {
    transform: scale(1.1);
    background: white;
    box-shadow: 0 8px 24px rgba(0,0,0,0.2);
}

.action-btn i {
    font-size: 1.25rem;
    color: #333;
}

.action-btn.favorite:hover i {
    color: #e74c3c;
}

.action-btn.share:hover i {
    color: #0cc0df;
}

/* Container */
.adresse-container {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 2rem;
    position: relative;
    top: -60px;
}

/* Header Section */
.adresse-header-modern {
    background: white;
    border-radius: 24px;
    padding: 2.5rem;
    box-shadow: 0 8px 32px rgba(0,0,0,0.08);
    margin-bottom: 2rem;
}

.header-content {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 2rem;
}

.header-left {
    display: flex;
    gap: 1.5rem;
    flex: 1;
}

.adresse-logo-badge {
    width: 80px;
    height: 80px;
    border-radius: 16px;
    overflow: hidden;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.adresse-logo-badge img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.header-info {
    flex: 1;
}

.category-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    border-radius: 20px;
    color: white;
    font-size: 0.875rem;
    font-weight: 600;
    margin-bottom: 1rem;
}

.category-badge i {
    font-size: 1rem;
}

.adresse-title-modern {
    font-size: 2.5rem;
    font-weight: 700;
    color: #1a1a1a;
    margin: 0 0 0.75rem 0;
    line-height: 1.2;
}

.adresse-subtitle {
    font-size: 1.125rem;
    color: #6c757d;
    margin: 0 0 1.5rem 0;
    line-height: 1.6;
}

.adresse-stats {
    display: flex;
    gap: 2rem;
    align-items: center;
}

.stat-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: #495057;
    font-size: 0.95rem;
}

.stat-item i {
    color: #0cc0df;
    font-size: 1.125rem;
}

.stat-item span {
    font-weight: 600;
    color: #1a1a1a;
}

.stat-item small {
    color: #6c757d;
}

/* Quick Actions */
.header-right {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.quick-actions {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.btn-action {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.875rem 1.5rem;
    border-radius: 12px;
    font-weight: 600;
    font-size: 0.95rem;
    text-decoration: none;
    transition: all 0.3s ease;
    white-space: nowrap;
    justify-content: center;
}

.btn-action i {
    font-size: 1.125rem;
}

.btn-action.btn-primary {
    background: linear-gradient(135deg, #0cc0df, #0a9fb8);
    color: white;
    border: none;
    box-shadow: 0 4px 12px rgba(12, 192, 223, 0.3);
}

.btn-action.btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(12, 192, 223, 0.4);
}

.btn-action.btn-secondary {
    background: #6c757d;
    color: white;
    border: none;
}

.btn-action.btn-secondary:hover {
    background: #5a6268;
    transform: translateY(-2px);
}

.btn-action.btn-outline {
    background: white;
    color: #333;
    border: 2px solid #dee2e6;
}

.btn-action.btn-outline:hover {
    border-color: #0cc0df;
    color: #0cc0df;
    background: rgba(12, 192, 223, 0.05);
}

/* Age Badges */
.age-badges-container {
    display: flex;
    gap: 0.75rem;
    margin-top: 1.5rem;
    flex-wrap: wrap;
}

.age-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.625rem 1.25rem;
    border-radius: 30px;
    font-weight: 600;
    font-size: 0.875rem;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    border: 1px solid rgba(0,0,0,0.08);
}

.age-badge i {
    font-size: 1rem;
}

/* Content Grid */
.adresse-content-grid {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 2rem;
    align-items: start;
}

.content-main {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

/* Content Sections */
.content-section {
    background: white;
    border-radius: 16px;
    padding: 2rem;
    box-shadow: 0 2px 12px rgba(0,0,0,0.05);
}

.section-title {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 1.5rem;
    font-weight: 700;
    color: #1a1a1a;
    margin: 0 0 1.5rem 0;
    padding-bottom: 1rem;
    border-bottom: 2px solid #f8f9fa;
}

.section-title i {
    color: #0cc0df;
    font-size: 1.375rem;
}

.section-content {
    color: #495057;
    line-height: 1.8;
}

.description-content p {
    margin-bottom: 1rem;
}

/* Info Grid */
.info-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 1.25rem;
}

.info-item {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    background: #f8f9fa;
    border-radius: 12px;
}

.info-icon {
    width: 48px;
    height: 48px;
    background: linear-gradient(135deg, #0cc0df, #0a9fb8);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 1.25rem;
    flex-shrink: 0;
}

.info-text {
    display: flex;
    flex-direction: column;
}

.info-text strong {
    font-size: 0.875rem;
    color: #6c757d;
    margin-bottom: 0.25rem;
}

.info-text span {
    font-size: 1rem;
    font-weight: 600;
    color: #1a1a1a;
}

.info-item.highlight {
    background: linear-gradient(135deg, rgba(12, 192, 223, 0.1), rgba(10, 159, 184, 0.1));
    border: 2px solid rgba(12, 192, 223, 0.2);
    color: #0cc0df;
    font-weight: 600;
}

.info-item.highlight i {
    color: #0cc0df;
    font-size: 1.25rem;
}

/* Photo Gallery Moderne avec LightGallery */
.photo-gallery-modern {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-top: 20px;
}

/* Première image = grande (2x2) */
.gallery-item-featured {
    grid-column: 1 / 3;
    grid-row: 1 / 3;
}

.gallery-item {
    position: relative;
    overflow: hidden;
    border-radius: 12px;
    background: var(--color-bg-light);
    cursor: pointer;
    transition: all 0.3s var(--ease-out);
    display: block;
}

.gallery-item:hover {
    transform: scale(1.02);
    box-shadow: 0 8px 24px rgba(0,0,0,0.15);
}

.gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.3s ease;
}

.gallery-item:hover img {
    transform: scale(1.05);
}

.gallery-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.gallery-item:hover .gallery-overlay {
    opacity: 1;
}

.gallery-overlay i {
    color: white;
    font-size: 2rem;
}

/* Overlay compteur sur la 5e vignette */
.gallery-count-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.55);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-weight: 600;
    font-size: 1.4rem;
    letter-spacing: .5px;
}

.gallery-count-overlay span {
    display: block;
    font-size: .85rem;
    opacity: .85;
    margin-top: 4px;
    font-weight: 400;
}

/* Responsive gallery */
@media (max-width: 768px) {
    .photo-gallery-modern {
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: auto;
    }
    
    .gallery-item-featured {
        grid-column: 1 / 3;
        grid-row: auto;
    }
}

/* Video Player moderne */
.video-player-wrapper {
    position: relative;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 8px 32px rgba(0,0,0,0.1);
}

.video-thumbnail,
.video-thumbnail-static {
    position: relative;
    cursor: pointer;
    overflow: hidden;
    border-radius: 16px;
    display: block;
    text-decoration: none;
}

.video-thumbnail img,
.video-thumbnail-static img {
    width: 100%;
    display: block;
    transition: transform 0.3s ease;
}

.video-thumbnail:hover img,
.video-thumbnail-static:hover img {
    transform: scale(1.05);
}

.video-play-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0,0,0,0.3);
    transition: background 0.3s ease;
    pointer-events: none;
}

.video-thumbnail:hover .video-play-overlay {
    background: rgba(0,0,0,0.5);
}

.video-play-btn {
    width: 80px;
    height: 80px;
    background: rgba(255,0,0,0.9);
    border: none;
    border-radius: 50%;
    color: white;
    font-size: 2rem;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 8px 24px rgba(0,0,0,0.3);
    pointer-events: none;
}

.video-thumbnail:hover .video-play-btn {
    transform: scale(1.1);
    background: rgba(255,0,0,1);
}

.video-play-btn i {
    margin-left: 4px;
}

/* Video Embed Simple - YouTube Direct */
.video-embed,
.video-embed-simple {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
    border-radius: 16px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.1);
}

.video-embed iframe,
.video-embed-simple iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 16px;
}

/* Sidebar */
.content-sidebar {
    position: relative;
}

.sidebar-sticky {
    position: sticky;
    top: 100px;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.info-card {
    background: white;
    border-radius: 16px;
    padding: 1.5rem;
    box-shadow: 0 2px 12px rgba(0,0,0,0.05);
}

.card-title {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    font-size: 1.125rem;
    font-weight: 700;
    color: #1a1a1a;
    margin: 0 0 1.25rem 0;
}

.card-title i {
    color: #0cc0df;
    font-size: 1.25rem;
}

.card-content {
    color: #495057;
    line-height: 1.6;
}

.address-text {
    font-size: 0.95rem;
    margin-top: 1rem;
    margin-bottom: 0;
    padding: 0.75rem;
    background: #f8f9fa;
    border-radius: 8px;
    color: #495057;
    text-align: center;
    font-weight: 500;
}

.mini-map {
    width: 100%;
    height: 200px;
    background: #e9ecef;
    border-radius: 12px;
    margin: 1rem 0;
}

.btn-map-full {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.875rem;
    background: #0cc0df;
    color: white;
    text-decoration: none;
    border: none;
    border-radius: 12px;
    font-weight: 600;
    font-size: 1rem;
    cursor: pointer;
    transition: all 0.3s ease;
}

.btn-map-full:hover {
    background: #0a9fb8;
    color: white;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(12, 192, 223, 0.3);
}

/* Bouton Réclamation de propriété */
.btn-claim-ownership {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.75rem 1.25rem;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    border: none;
    border-radius: 8px;
    font-weight: 600;
    font-size: 0.9rem;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 2px 8px rgba(102, 126, 234, 0.3);
}

.btn-claim-ownership:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(102, 126, 234, 0.4);
    color: white;
}

.claim-ownership-section {
    margin-top: 1rem;
}

/* Boutons de partage social */
.share-buttons {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    justify-content: center;
    margin: 0;
}

.share-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 45px;
    height: 45px;
    border-radius: 50%;
    color: white;
    font-size: 1.2rem;
    transition: all 0.3s ease;
    text-decoration: none;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

.share-btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
    color: white;
}

.share-btn.facebook {
    background: #1877f2;
}

.share-btn.facebook:hover {
    background: #166fe5;
}

.share-btn.whatsapp {
    background: #25d366;
}

.share-btn.whatsapp:hover {
    background: #20bd5a;
}

.share-btn.email {
    background: #ea4335;
}

.share-btn.email:hover {
    background: #d63426;
}

.share-btn.linkedin {
    background: #0077b5;
}

.share-btn.linkedin:hover {
    background: #006399;
}

.share-btn.twitter {
    background: #000000;
}

.share-btn.twitter:hover {
    background: #1a1a1a;
}

/* Contact info dans localisation */
.location-contact {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-top: 1rem;
}

.contact-link {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: #333;
    text-decoration: none;
    font-size: 0.9rem;
    transition: color 0.2s ease;
}

.contact-link:hover {
    color: #667eea;
}

.contact-link i {
    color: #667eea;
    width: 18px;
    font-size: 1rem;
}

.btn-site-web {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.75rem 1.25rem;
    margin-top: 0.75rem;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    text-decoration: none;
    border-radius: 10px;
    font-weight: 600;
    font-size: 0.95rem;
    transition: all 0.3s ease;
    box-shadow: 0 3px 10px rgba(102, 126, 234, 0.3);
    border: none;
}

.btn-site-web:hover {
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(102, 126, 234, 0.5);
    color: white;
}

.btn-site-web i {
    font-size: 1.1rem;
}

.location-socials {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid #e9ecef;
}

/* Anciens styles à supprimer */
.contact-info-location {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid #e9ecef;
}

.contact-info-location .contact-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    color: #333;
    text-decoration: none;
    padding: 0.5rem;
    border-radius: 6px;
    transition: all 0.2s ease;
}

.contact-info-location .contact-item:hover {
    background: #f8f9fa;
    color: #667eea;
}

.contact-info-location .contact-item i {
    font-size: 1.1rem;
    color: #667eea;
    width: 20px;
    text-align: center;
}

.address-social-links {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid #e9ecef;
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

/* Infos pratiques compactes */
.access-info {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 0.75rem;
    margin-top: 1rem;
}

.access-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.9rem;
    color: #555;
    padding: 0.5rem;
    background: #f8f9fa;
    border-radius: 6px;
}

.access-item i {
    color: #667eea;
    font-size: 1rem;
    flex-shrink: 0;
}

/* Réseaux sociaux mini de l'adresse */
.social-link-mini {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    color: white;
    font-size: 1rem;
    transition: all 0.3s ease;
    text-decoration: none;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
}

.social-link-mini:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
    color: white;
}

.social-link-mini.facebook {
    background: #1877f2;
}

.social-link-mini.instagram {
    background: linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);
}

.social-link-mini.linkedin {
    background: #0077b5;
}

.social-link-mini.youtube {
    background: #ff0000;
}

/* Modal Carte plein écran */
#map-fullscreen-modal .modal-body {
    padding: 0;
    height: calc(100vh - 56px); /* 56px = hauteur du header */
}

#map-fullscreen-modal #fullscreen-map {
    width: 100%;
    height: 100%;
}

#map-fullscreen-modal .modal-header {
    border-bottom: 1px solid #e5e7eb;
    background: white;
    padding: 1rem 1.5rem;
}

#map-fullscreen-modal .modal-title {
    font-size: 1.25rem;
    font-weight: 600;
    color: #1f2937;
}

#map-fullscreen-modal .btn-close {
    font-size: 1.5rem;
}

.access-info {
    margin-top: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.access-item {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    font-size: 0.9rem;
}

.access-item i {
    color: #0cc0df;
    font-size: 1.125rem;
    margin-top: 2px;
    flex-shrink: 0;
}

.horaires-list {
    font-size: 0.9rem;
    line-height: 1.8;
}

.horaire-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.5rem 0;
    border-bottom: 1px solid #f0f0f0;
}

.horaire-item:last-child {
    border-bottom: none;
}

.horaire-item strong {
    color: #1a1a1a;
    font-weight: 600;
}

.horaire-item span {
    color: #666;
}

/* Services List */
.services-list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.service-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.625rem;
    background: #f8f9fa;
    border-radius: 8px;
    font-size: 0.9rem;
}

.service-item i {
    color: #0cc0df;
    font-size: 1.125rem;
    width: 24px;
    text-align: center;
    flex-shrink: 0;
}

/* Payment Methods */
.payment-methods {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 0.75rem;
}

.payment-method-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem;
    background: white;
    border: 2px solid #e9ecef;
    border-radius: 8px;
    font-size: 0.9rem;
    font-weight: 500;
    transition: all 0.2s ease;
}

.payment-method-item:hover {
    border-color: #667eea;
    background: #f8f9fa;
}

.payment-method-item i {
    font-size: 1.5rem;
    flex-shrink: 0;
}

/* Icônes de marques avec couleurs spécifiques */
.payment-method-item .fa-cc-visa {
    color: #1434CB;
}

.payment-method-item .fa-cc-mastercard {
    color: #EB001B;
}

.payment-method-item .fa-cc-amex {
    color: #006FCF;
}

.payment-method-item .fa-cc-paypal {
    color: #003087;
}

.payment-method-item .fa-cc-apple-pay {
    color: #000000;
}

.payment-method-item .fa-google-pay {
    color: #4285F4;
}

.payment-method-item .fa-money-bill-wave {
    color: #28a745;
}

.payment-method-item .fa-credit-card,
.payment-method-item .fa-mobile-alt,
.payment-method-item .fa-ticket-alt {
    color: #667eea;
}

/* Anciens styles à supprimer */
.paiements-list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.paiement-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.625rem;
    background: #f8f9fa;
    border-radius: 8px;
    font-size: 0.9rem;
}

.paiement-item i {
    color: #0cc0df;
    font-size: 1.125rem;
    width: 24px;
    text-align: center;
    flex-shrink: 0;
}

/* Bouton réservation */
.btn-reservation {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 1rem;
    padding: 0.75rem 1.5rem;
    background: #0cc0df;
    color: white !important;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 600;
    transition: all 0.3s;
}

.btn-reservation:hover {
    background: #0aa9c7;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(12, 192, 223, 0.3);
}

.gratuit-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem 1.5rem;
    background: linear-gradient(135deg, #52c234, #47a82e);
    color: white;
    border-radius: 12px;
    font-weight: 700;
    font-size: 1rem;
}

.gratuit-badge i {
    font-size: 1.5rem;
}

.tarifs-content {
    font-size: 0.95rem;
}

.contact-item {
    display: flex;
    align-items: center;
    gap: 0.875rem;
    padding: 0.875rem;
    background: #f8f9fa;
    border-radius: 10px;
    text-decoration: none;
    color: #333;
    margin-bottom: 0.75rem;
    transition: all 0.3s ease;
}

.contact-item:hover {
    background: #e9ecef;
    transform: translateX(4px);
}

.contact-item i {
    width: 32px;
    height: 32px;
    background: #0cc0df;
    color: white;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

/* Languages List */
.languages-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.language-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    background: var(--color-primary-alpha);
    color: var(--color-primary);
    border-radius: 8px;
    font-size: 0.9rem;
    font-weight: 500;
}

.language-badge i {
    font-size: 0.85rem;
}

/* Social Media Links */
.social-links-modern {
    display: flex;
    gap: 0.75rem;
    margin-top: 1rem;
    flex-wrap: wrap;
}

.social-btn {
    width: 50px;
    height: 50px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    transition: all 0.3s ease;
    color: white !important;
    font-size: 1.5rem;
}

.social-btn i {
    font-size: 1.5rem;
    color: white !important;
}

.social-btn.facebook {
    background: #1877f2;
}

.social-btn.facebook:hover {
    background: #145dbf;
}

.social-btn.instagram {
    background: linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);
}

.social-btn.instagram:hover {
    filter: brightness(1.1);
}

.social-btn.linkedin {
    background: #0077b5;
}

.social-btn.linkedin:hover {
    background: #005885;
}

.social-btn.youtube {
    background: #ff0000;
}

.social-btn.youtube:hover {
    background: #cc0000;
}

.social-btn:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 16px rgba(0,0,0,0.2);
}

/* Responsive */
@media (max-width: 1200px) {
    .adresse-content-grid {
        grid-template-columns: 1fr 320px;
    }
}

@media (max-width: 992px) {
    .adresse-content-grid {
        grid-template-columns: 1fr;
    }
    
    .sidebar-sticky {
        position: static;
    }
    
    .header-content {
        flex-direction: column;
    }
    
    .quick-actions {
        flex-direction: row;
        width: 100%;
    }
    
    .btn-action {
        flex: 1;
    }
}

@media (max-width: 768px) {
    .adresse-hero {
        height: 50vh;
        min-height: 300px;
    }
    
    .hero-gallery {
        grid-template-columns: 1fr;
        grid-template-rows: 1fr;
    }
    
    .hero-gallery-item:not(.main-image) {
        display: none;
    }
    
    .adresse-container {
        padding: 0 1rem;
        top: -40px;
    }
    
    .adresse-header-modern {
        padding: 1.5rem;
    }
    
    .header-left {
        flex-direction: column;
    }
    
    .adresse-title-modern {
        font-size: 1.75rem;
    }
    
    .adresse-stats {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.75rem;
    }
    
    .quick-actions {
        flex-direction: column;
    }
    
    .content-section, .info-card {
        padding: 1.5rem;
    }
    
    .info-grid {
        grid-template-columns: 1fr;
    }
}
.search-links a.search-advanced-link {
    color:white
}
/* Page recherche - Vue carte par défaut */
.page-recherche .search-results[data-view="grid"] {
    display: none;
}

.page-recherche .search-map-wrapper[data-view="map"].active {
    display: block;
}

.page-recherche .search-results[data-view="grid"].active {
    display: block;
}

/* ================================================
   TOOLBAR & VIEW SWITCHER (Archives)
   ================================================ */

.toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 1.5rem;
}

.sort-controls {
    display: flex;
    align-items: center;
}

.sort-controls label {
    margin: 0;
    margin-right: 0.5rem;
    font-size: 14px;
    color: #6c757d;
    font-weight: 500;
}

.sort-controls .form-select {
    width: auto;
    min-width: 180px;
}

.view-switcher {
    display: flex;
    gap: 0.25rem;
}

.view-switcher .btn {
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    transition: all 0.2s ease;
}

.view-switcher .btn i {
    font-size: 16px;
}

.view-switcher .btn-primary {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    border-color: #667eea;
    color: white;
}

.view-switcher .btn-outline-secondary {
    background: white;
    border-color: #dee2e6;
    color: #6c757d;
}

.view-switcher .btn-outline-secondary:hover {
    background: #f8f9fa;
    border-color: #adb5bd;
    color: #495057;
}

.results-info {
    font-size: 14px;
    color: #6c757d;
}

@media (max-width: 768px) {
    .toolbar {
        flex-direction: column;
        gap: 1rem;
        align-items: stretch;
    }
    
    .sort-controls {
        justify-content: space-between;
    }
    
    .view-switcher {
        justify-content: center;
    }
}

.page-recherche .search-map-wrapper[data-view="map"]:not(.active) {
    display: none;
}
