:root {
    --rouge:          #C62828;
    --rouge-hover:    #8E0000;
    --rouge-pale:     #FEF2F2;
    --rouge-border:   rgba(198,40,40,0.18);
    --rouge-shadow:   rgba(198,40,40,0.28);
    --or:             #C9A84C;
    --or-clair:       #FDF5E4;
    --noir:           #111827;
    --gris-900:       #1F2937;
    --gris-700:       #374151;
    --gris-600:       #4B5563;
    --gris-500:       #6B7280;
    --gris-400:       #9CA3AF;
    --gris-300:       #D1D5DB;
    --gris-200:       #E5E7EB;
    --gris-100:       #F3F4F6;
    --gris-50:        #F9FAFB;
    --blanc:          #FFFFFF;
    --vert-halal:     #2D7A3A;
    --vert-pale:      #ECFDF5;

    --shadow-xs:  0 1px 2px rgba(0,0,0,0.06);
    --shadow-sm:  0 1px 4px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.05);
    --shadow:     0 4px 16px rgba(0,0,0,0.08);
    --shadow-md:  0 8px 28px rgba(0,0,0,0.10);
    --shadow-lg:  0 16px 48px rgba(0,0,0,0.12);
    --shadow-rouge: 0 6px 24px var(--rouge-shadow);

    --radius-xs:  6px;
    --radius-sm:  8px;
    --radius:     12px;
    --radius-lg:  16px;
    --radius-xl:  24px;
    --radius-full:9999px;

    --ease:       cubic-bezier(0.4,0,0.2,1);
    --ease-out:   cubic-bezier(0,0,0.2,1);
    --transition: all 0.25s var(--ease);

    --font-titre: 'Playfair Display', Georgia, 'Times New Roman', serif;
    --font-corps: 'DM Sans', system-ui, -apple-system, sans-serif;

    --max-width:     1280px;
    --header-height: 72px;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
    font-family: var(--font-corps);
    font-size: 15px;
    line-height: 1.6;
    color: var(--gris-700);
    background: var(--blanc);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    min-height: 100dvh;
}

#main-content { flex: 1 0 auto; }
#site-footer   { flex-shrink: 0; }

img   { max-width: 100%; height: auto; display: block; }
a     { color: inherit; text-decoration: none; }
ul, ol{ list-style: none; }
button{ cursor: pointer; font-family: var(--font-corps); border: none; background: none; }
input, textarea, select { font-family: var(--font-corps); }
::selection { background: var(--rouge-pale); color: var(--rouge-hover); }


/* ── SKIP LINK ──────────────────────────────────────────────────────────── */

.skip-link {
    position: absolute;
    top: -72px;
    left: 24px;
    z-index: 10000;
    background: var(--rouge);
    color: var(--blanc);
    padding: 10px 18px;
    border-radius: var(--radius-sm);
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition: top 0.2s var(--ease-out);
}
.skip-link:focus { top: 12px; outline: 3px solid var(--blanc); outline-offset: 2px; }


/* ── LOGO ────────────────────────────────────────────────────────────────── */

.logo-m    { font-family: var(--font-titre); font-size: 28px; font-weight: 900; color: var(--rouge); line-height: 1; letter-spacing: -1px; }
.logo-rest { font-family: var(--font-titre); font-size: 28px; font-weight: 900; color: var(--noir); line-height: 1; letter-spacing: -1px; }
.logo-dot  { font-family: var(--font-titre); font-size: 28px; font-weight: 900; color: var(--rouge); line-height: 1; }
.logo-com  { font-family: var(--font-corps); font-size: 11px; font-weight: 600; color: var(--gris-400); letter-spacing: 0.5px; align-self: flex-end; margin-bottom: 3px; margin-left: 1px; }

.mp-logo .logo-m, .mp-logo .logo-rest, .mp-logo .logo-dot { font-size: 22px; }


/* ── HEADER ─────────────────────────────────────────────────────────────── */

#site-header {
    position: sticky;
    top: 0;
    background: var(--blanc);
    z-index: 990;
    height: var(--header-height);
    border-bottom: 1px solid var(--gris-100);
    transition: box-shadow 0.3s var(--ease);
}
#site-header.scrolled { box-shadow: var(--shadow-md); border-bottom-color: transparent; }

.header-inner {
    display: flex;
    align-items: center;
    height: 100%;
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 0 24px;
    position: relative;
}

.header-left {
    flex: 1;
    display: flex;
    align-items: center;
    max-width: 340px;
}

.header-logo {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
}

.header-logo a, .mp-logo a { display: flex; align-items: baseline; gap: 0; text-decoration: none; }

.header-right {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 20px;
}

.header-nav-link {
    font-size: 14px;
    font-weight: 500;
    color: var(--gris-600);
    text-decoration: none;
    white-space: nowrap;
    padding: 4px 0;
    position: relative;
    transition: color 0.2s;
}
.header-nav-link::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0;
    width: 0; height: 1.5px;
    background: var(--rouge);
    transition: width 0.25s var(--ease);
}
.header-nav-link:hover { color: var(--rouge); }
.header-nav-link:hover::after { width: 100%; }


/* ── BUTTONS ─────────────────────────────────────────────────────────────── */

.btn-inscription-pro {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--rouge);
    color: var(--blanc) !important;
    font-size: 13.5px;
    font-weight: 600;
    padding: 9px 20px;
    border-radius: var(--radius-full);
    text-decoration: none !important;
    letter-spacing: 0.2px;
    white-space: nowrap;
    transition: var(--transition);
}
.btn-inscription-pro:hover { background: var(--rouge-hover); color: var(--blanc) !important; transform: translateY(-1px); box-shadow: var(--shadow-rouge); }
.btn-inscription-pro i { font-size: 13px; }

.btn-mon-espace {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--gris-700);
    background: var(--gris-100);
    padding: 9px 18px;
    border-radius: var(--radius-full);
    text-decoration: none;
    transition: var(--transition);
    white-space: nowrap;
}
.btn-mon-espace:hover { background: var(--gris-200); color: var(--noir); }

.btn-deconnexion {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 500;
    color: var(--gris-600);
    padding: 8px 14px;
    border-radius: var(--radius-full);
    border: 1.5px solid var(--gris-200);
    text-decoration: none;
    transition: var(--transition);
    white-space: nowrap;
}
.btn-deconnexion:hover { background: var(--gris-50); color: var(--noir); border-color: var(--gris-300); }

.btn-rouge {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    background: var(--rouge); color: var(--blanc) !important;
    font-size: 14px; font-weight: 600; padding: 10px 24px;
    border-radius: var(--radius-full); border: none; text-decoration: none;
    transition: var(--transition); white-space: nowrap; cursor: pointer;
}
.btn-rouge:hover { background: var(--rouge-hover); color: var(--blanc) !important; transform: translateY(-1px); box-shadow: var(--shadow-rouge); }

.btn-rouge-outline {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    background: transparent; color: var(--rouge) !important;
    font-size: 14px; font-weight: 600; padding: 9px 24px;
    border-radius: var(--radius-full); border: 2px solid var(--rouge);
    text-decoration: none; transition: var(--transition); white-space: nowrap; cursor: pointer;
}
.btn-rouge-outline:hover { background: var(--rouge); color: var(--blanc) !important; transform: translateY(-1px); box-shadow: var(--shadow-rouge); }

.btn-ghost {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    background: transparent; color: var(--gris-700) !important;
    font-size: 14px; font-weight: 500; padding: 9px 20px;
    border-radius: var(--radius-full); border: 1.5px solid var(--gris-200);
    text-decoration: none; transition: var(--transition); white-space: nowrap; cursor: pointer;
}
.btn-ghost:hover { background: var(--gris-50); border-color: var(--gris-300); color: var(--noir) !important; }


/* ── SEARCH BAR ──────────────────────────────────────────────────────────── */

.search-form { width: 100%; }

.search-input-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
    background: var(--gris-50);
    border: 1.5px solid var(--gris-200);
    border-radius: var(--radius-full);
    padding: 8px 14px 8px 12px;
    width: 100%;
    transition: var(--transition);
}
.search-input-wrap:focus-within { border-color: var(--rouge); background: var(--blanc); box-shadow: 0 0 0 3px var(--rouge-border); }
.search-input-wrap .si { display: flex; align-items: center; color: var(--gris-400); flex-shrink: 0; transition: color 0.2s; }
.search-input-wrap:focus-within .si { color: var(--rouge); }
.search-input-wrap input {
    border: none; background: transparent; outline: none;
    font-size: 13.5px; color: var(--noir); width: 100%; min-width: 0; padding: 0; line-height: 1;
}
.search-input-wrap input::placeholder { color: var(--gris-400); font-weight: 400; }

.search-submit-btn {
    display: flex;
    background: var(--rouge);
    border: none;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 11px;
    flex-shrink: 0;
    transition: var(--transition);
}

.search-submit-btn:hover {
    background: var(--rouge-hover);
}


/* ── BURGER ──────────────────────────────────────────────────────────────── */

.burger-btn {
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    width: 40px; height: 40px;
    background: none; border: 1.5px solid var(--gris-200);
    border-radius: var(--radius-sm);
    cursor: pointer; padding: 0; transition: var(--transition); flex-shrink: 0;
}
.burger-btn:hover { background: var(--gris-50); border-color: var(--gris-300); }
.burger-btn span {
    display: block; width: 18px; height: 1.5px;
    background: var(--gris-700); border-radius: 2px;
    transition: all 0.32s var(--ease); transform-origin: center;
}
.burger-btn.open { border-color: var(--rouge-border); background: var(--rouge-pale); }
.burger-btn.open span { background: var(--rouge); }
.burger-btn.open span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.burger-btn.open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.burger-btn.open span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }


/* ── MOBILE OVERLAY ──────────────────────────────────────────────────────── */

.mobile-overlay {
    position: fixed; inset: 0;
    background: rgba(0,0,0,0.55);
    z-index: 1040;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.32s var(--ease);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
}
.mobile-overlay.active { opacity: 1; pointer-events: auto; }


/* ── MOBILE PANEL ────────────────────────────────────────────────────────── */

.mobile-panel {
    position: fixed; top: 0; left: -320px;
    width: 300px; max-width: 88vw; height: 100dvh;
    background: var(--blanc); z-index: 1050;
    overflow-y: auto; overflow-x: hidden;
    transition: left 0.35s var(--ease-out);
    display: flex; flex-direction: column;
    box-shadow: var(--shadow-lg);
    overscroll-behavior: contain;
}
.mobile-panel.open { left: 0; }

.mp-header {
    display: flex; align-items: center; justify-content: space-between;
    padding: 18px 20px; border-bottom: 1px solid var(--gris-100); flex-shrink: 0;
}
.mp-close {
    width: 34px; height: 34px;
    display: flex; align-items: center; justify-content: center;
    border: none; background: var(--gris-100); border-radius: 50%;
    cursor: pointer; transition: var(--transition); color: var(--gris-600); font-size: 15px;
}
.mp-close:hover { background: var(--rouge-pale); color: var(--rouge); }

.mp-body { padding: 24px 20px; flex: 1; overflow-y: auto; }
.mp-search { margin-bottom: 28px; }
.mp-search .search-input-wrap { width: 100%; }

.mp-section-title {
    font-size: 10px; font-weight: 700; letter-spacing: 1.5px;
    text-transform: uppercase; color: var(--gris-400); margin-bottom: 8px; padding: 0 4px;
}
.mp-nav { margin-bottom: 24px; }
.mp-nav li + li { border-top: 1px solid var(--gris-100); }
.mp-nav a {
    display: flex; align-items: center; gap: 12px;
    padding: 13px 4px; font-size: 15px; font-weight: 500;
    color: var(--gris-700); text-decoration: none; transition: color 0.2s;
}
.mp-nav a:hover { color: var(--rouge); }
.mp-nav a i { width: 22px; font-size: 16px; color: var(--gris-400); flex-shrink: 0; text-align: center; }
.mp-nav a:hover i { color: var(--rouge); }

.mp-footer { padding: 20px; border-top: 1px solid var(--gris-100); flex-shrink: 0; }
.mp-cta {
    display: flex; align-items: center; justify-content: center; gap: 8px;
    background: var(--rouge); color: var(--blanc) !important;
    font-size: 14px; font-weight: 600; padding: 13px 20px;
    border-radius: var(--radius-full); text-decoration: none !important;
    transition: var(--transition); margin-bottom: 10px;
}
.mp-cta:hover { background: var(--rouge-hover); color: var(--blanc) !important; }
.mp-legal { display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; }
.mp-legal a { font-size: 12px; color: var(--gris-400); text-decoration: none; transition: color 0.2s; }
.mp-legal a:hover { color: var(--gris-600); }


/* ── FOOTER ──────────────────────────────────────────────────────────────── */



#site-footer .logo-rest { color: #fff; }
#site-footer .logo-com  { color: rgba(255,255,255,0.3); }

.footer-main {
    max-width: var(--max-width); margin: 0 auto;
    padding: 0 24px 64px;
}
.footer-grid {
    display: grid;
    grid-template-columns: 2.2fr 1fr 1.6fr 1fr 1.2fr;
    gap: 40px 48px;
}
.footer-col-title {
    font-size: 10.5px; font-weight: 700; letter-spacing: 1.6px;
    text-transform: uppercase; color: rgba(255,255,255,0.4);
    margin-bottom: 22px; padding-bottom: 14px;
    position: relative; display: block;
}
.footer-col-title::after {
    content: ''; position: absolute; bottom: 0; left: 0;
    width: 20px; height: 2px; background: var(--rouge); border-radius: 2px;
}
.footer-col a {
    display: block; font-size: 13.5px; color: rgba(255,255,255,0.55);
    text-decoration: none; margin-bottom: 11px; transition: color 0.2s; line-height: 1.4;
}
.footer-col a:hover { color: rgba(255,255,255,0.95); }

.footer-brand-logo { display: inline-flex; align-items: baseline; text-decoration: none; margin-bottom: 18px; }
.footer-brand-desc { font-size: 13.5px; line-height: 1.75; color: rgba(255,255,255,0.45); margin-bottom: 24px; max-width: 270px; }

.footer-social-links { display: flex; gap: 10px; flex-wrap: wrap; }
.footer-social-icon {
    display: flex; align-items: center; justify-content: center;
    width: 36px; height: 36px;
    background: rgba(255,255,255,0.07); border-radius: var(--radius-sm);
    color: rgba(255,255,255,0.55); font-size: 16px; text-decoration: none;
    transition: var(--transition); border: 1px solid rgba(255,255,255,0.08);
}
.footer-social-icon:hover { background: var(--rouge); border-color: var(--rouge); color: white; transform: translateY(-2px); }

.footer-seo-band {
    border-top: 1px solid rgba(255,255,255,0.07);
    padding: 32px 24px;
    max-width: var(--max-width); margin: 0 auto;
}
.footer-seo-band p { font-size: 12.5px; color: rgba(255,255,255,0.25); line-height: 1.75; max-width: 860px; }

.footer-bottom { background: #050505; padding: 16px 24px; }
.footer-bottom-inner {
    display: flex; align-items: center; justify-content: space-between;
    max-width: var(--max-width); margin: 0 auto; gap: 16px; flex-wrap: wrap;
}
.footer-copyright { font-size: 12.5px; color: rgba(255,255,255,0.25); }
.footer-copyright span { color: rgba(255,255,255,0.15); }
.footer-legal-links { display: flex; gap: 20px; flex-wrap: wrap; }
.footer-legal-links a { font-size: 12.5px; color: rgba(255,255,255,0.25); text-decoration: none; transition: color 0.2s; }
.footer-legal-links a:hover { color: rgba(255,255,255,0.55); }


/* ── BADGES ──────────────────────────────────────────────────────────────── */

.badge-halal {
    display: inline-flex; align-items: center; gap: 5px;
    background: var(--vert-pale); color: var(--vert-halal);
    font-size: 12px; font-weight: 600; padding: 4px 10px;
    border-radius: var(--radius-full); border: 1px solid rgba(45,122,58,0.2); white-space: nowrap;
}
.badge-plan { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; font-weight: 700; padding: 3px 9px; border-radius: var(--radius-full); white-space: nowrap; letter-spacing: 0.3px; }
.badge-plan.premium  { background: var(--or-clair); color: #7A5E1A; border: 1px solid rgba(201,168,76,0.3); }
.badge-plan.standard { background: #EEF2FF; color: #3730A3; border: 1px solid rgba(99,102,241,0.2); }
.badge-plan.gratuit  { background: var(--gris-100); color: var(--gris-600); border: 1px solid var(--gris-200); }
.badge-ouvert { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 600; padding: 3px 10px; border-radius: var(--radius-full); }
.badge-ouvert.ouvert { background: var(--vert-pale); color: var(--vert-halal); border: 1px solid rgba(45,122,58,0.2); }
.badge-ouvert.ferme  { background: var(--rouge-pale); color: var(--rouge); border: 1px solid var(--rouge-border); }
.badge-ouvert .dot   { width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0; }
.badge-ouvert.ouvert .dot { background: var(--vert-halal); animation: pulseGreen 2s infinite; }
.badge-ouvert.ferme  .dot { background: var(--rouge); }

@keyframes pulseGreen {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.7; transform: scale(1.2); }
}


/* ── CARD COMMERCE ───────────────────────────────────────────────────────── */

.card-commerce {
    background: var(--blanc); border-radius: var(--radius-lg);
    border: 1px solid var(--gris-100); overflow: hidden;
    transition: var(--transition); display: flex; flex-direction: column;
    height: 100%; text-decoration: none; color: inherit;
}
.card-commerce:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); border-color: var(--gris-200); }
.card-commerce-img { position: relative; width: 100%; aspect-ratio: 16/10; overflow: hidden; background: var(--gris-100); flex-shrink: 0; }
.card-commerce-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s var(--ease); }
.card-commerce:hover .card-commerce-img img { transform: scale(1.05); }
.card-commerce-img-overlay { position: absolute; top: 10px; left: 10px; display: flex; flex-direction: column; gap: 5px; }
.card-commerce-body { padding: 16px; display: flex; flex-direction: column; flex: 1; }
.card-commerce-type { font-size: 11px; font-weight: 600; letter-spacing: 0.8px; text-transform: uppercase; color: var(--rouge); margin-bottom: 5px; }
.card-commerce-name { font-family: var(--font-titre); font-size: 17px; font-weight: 700; color: var(--noir); line-height: 1.3; margin-bottom: 8px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.card-commerce-ville { display: flex; align-items: center; gap: 5px; font-size: 13px; color: var(--gris-500); margin-bottom: 12px; }
.card-commerce-footer { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding-top: 12px; border-top: 1px solid var(--gris-100); }


/* ── SECTION HEADINGS ────────────────────────────────────────────────────── */

.section-eyebrow {
    display: inline-flex; align-items: center; gap: 8px;
    font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--rouge); margin-bottom: 12px;
}
.section-eyebrow::before { content: ''; display: block; width: 20px; height: 2px; background: var(--rouge); border-radius: 2px; }
.section-title { font-family: var(--font-titre); font-size: clamp(24px,4vw,38px); font-weight: 800; color: var(--noir); line-height: 1.2; letter-spacing: -0.5px; }
.section-subtitle { font-size: 16px; color: var(--gris-500); line-height: 1.65; max-width: 540px; }


/* ── FLASH MESSAGES ──────────────────────────────────────────────────────── */

.flash-container {
    position: fixed; top: calc(var(--header-height) + 16px); right: 16px;
    z-index: 1100; display: flex; flex-direction: column; gap: 10px;
    max-width: 380px; pointer-events: none;
}
.flash-msg {
    background: white; border-radius: var(--radius); padding: 14px 16px;
    box-shadow: var(--shadow-md); border-left: 3px solid;
    display: flex; align-items: flex-start; gap: 12px;
    pointer-events: all; animation: slideInRight 0.3s var(--ease-out);
}
.flash-msg.success { border-color: var(--vert-halal); }
.flash-msg.error   { border-color: var(--rouge); }
.flash-msg.info    { border-color: #3B82F6; }
.flash-msg.warning { border-color: #F59E0B; }
@keyframes slideInRight { from { transform: translateX(110%); opacity: 0; } to { transform: translateX(0); opacity: 1; } }
.flash-msg { transition: opacity 0.3s ease, transform 0.3s ease; }
.flash-msg.flash-leaving { opacity: 0; transform: translateX(110%); pointer-events: none; }
.flash-dismiss-btn { margin-left: auto; background: none; border: none; cursor: pointer; opacity: .45; font-size: 18px; line-height: 1; padding: 0 0 0 10px; color: currentColor; flex-shrink: 0; transition: opacity 0.2s; }
.flash-dismiss-btn:hover { opacity: .8; }



html { overflow-x: hidden; scroll-behavior: smooth; }
body.page-home { overflow-x: hidden; background: #fafbfc; color: #111827; }
.page-home * { box-sizing: border-box; }

/* ─── SECTIONS ──────────────────────────────────────────── */
.hs { position: relative; padding: 5rem 0; }
.hs-soft { background: #f7f8fb; }

.hs-head {
    max-width: 620px;
    margin: 0 auto 2.5rem;
    text-align: center;
}
.hs-head h2 {
    margin: 0 0 .5rem;
    font-family: var(--font-titre);
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 900;
    letter-spacing: -.055em;
    line-height: 1;
    color: #111827;
    text-wrap: balance;
}
.hs-head p { margin: 0; color: #6b7280; font-size: .95rem; line-height: 1.7; }

/* ─── SEARCH OVERLAP ────────────────────────────────────── */
.search-overlap {
    position: relative;
    z-index: 10;
    margin-top: -3rem;
}
.search-card {
    width: min(1020px, calc(100% - 1.5rem));
    margin: 0 auto;
    padding: 1rem;
    border-radius: 1.4rem;
    background: rgba(255,255,255,.97);
    border: 1px solid rgba(17,24,39,.06);
    box-shadow: 0 24px 64px rgba(17,24,39,.12);
    backdrop-filter: blur(16px);
}
.search-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(210px, .9fr) auto;
    gap: .75rem;
}
.search-card .form-control,
.search-card .form-select {
    min-height: 56px;
    border-radius: 1rem;
    border: 1.5px solid rgba(17,24,39,.09);
    box-shadow: none;
    padding-inline: 1rem;
    font-size: .95rem;
    transition: border-color .18s;
}
.search-card .form-control:focus,
.search-card .form-select:focus {
    border-color: rgba(198,40,40,.4);
    box-shadow: 0 0 0 3px rgba(198,40,40,.08);
}

/* ─── HERO ──────────────────────────────────────────────── */
.home-hero {
    position: relative;
    overflow: hidden;
    background: #0a0c10;
    isolation: isolate;
}

.hero-media {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
}

.hero-media .hero-bg-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transform: scale(1);
    transform-origin: center;
    opacity: 0;
    transition: opacity .65s ease;
    will-change: transform, opacity;
    pointer-events: none;
    user-select: none;
}

.hero-media .hero-bg-img.is-animated {
    animation: heroZoomInOut 8s ease-in-out infinite;
}

.hero-media .hero-bg-img.is-active {
    opacity: 1;
}

@keyframes heroZoomInOut {
    0%   { transform: scale(1); }
    50%  { transform: scale(1.10); }
    100% { transform: scale(1); }
}

.hero-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(180deg, rgba(10, 12, 16, 0.20) 0%, rgba(10, 12, 16, 0.78) 100%),
        radial-gradient(ellipse at 50% 60%, rgba(198, 40, 40, 0.16), transparent 48%);
}

.hero-content {
    position: relative;
    z-index: 2;
    margin: 0 auto;
    padding: 7rem 0 13rem;
    text-align: center;
}

.hero-title {
    margin: 0 auto 0.9rem;
    max-width: 18ch;
    font-family: var(--font-titre);
    font-size: clamp(3rem, 5vw, 6rem);
    font-weight: 900;
    line-height: 0.9;
    color: #fff;
    text-wrap: balance;
}

.hero-sub {
    max-width: 44ch;
    margin: 0 auto 0;
    color: rgba(255, 255, 255, 0.8);
    font-size: 1rem;
    line-height: 1.8;
}

.hero-actions {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.85rem;
}

/* ─── BUTTONS ────────────────────────────────────────────── */
.h-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    min-height: 52px;
    min-width: 180px;
    padding: .85rem 1.3rem;
    border-radius: 999px;
    font-weight: 800;
    font-size: .9rem;
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
}
.h-btn:hover { transform: translateY(-2px); }
.h-btn-primary {
    background: linear-gradient(135deg, #c62828 0%, #e53935 100%);
    color: #fff;
    border: none;
    box-shadow: 0 12px 32px rgba(198,40,40,.28);
}
.h-btn-primary:hover { color: #fff; box-shadow: 0 18px 40px rgba(198,40,40,.36); }
.h-btn-ghost {
    background: rgba(255,255,255,.12);
    border: 1.5px solid rgba(255,255,255,.28);
    color: #fff;
    backdrop-filter: blur(8px);
}
.h-btn-ghost:hover { background: rgba(255,255,255,.22); color: #fff; }
.h-btn-light {
    background: #fff;
    border: 1.5px solid rgba(17,24,39,.09);
    color: #111827;
}
.h-btn-light:hover { color: #c62828; border-color: rgba(198,40,40,.28); }

/* ... garde tout le reste de ton CSS inchangé ... */

@media (max-width: 991.98px) {
    .hs { padding: 4rem 0; }
    .search-grid { grid-template-columns: 1fr; }
    .concept-grid { grid-template-columns: 1fr; gap: .85rem; }
    .pro-content { padding: 1.5rem; }
}

@media (max-width: 767.98px) {
    .hero-content { padding: 5rem 0 11rem; }
    .search-overlap { margin-top: -6rem; }
    .search-card { padding: .9rem; border-radius: 1.15rem; }
    .h-btn { min-width: 0; width: 100%; }
    .hero-actions { flex-direction: column; align-items: center; }
    .hc-shell { padding: 0 50px; }
    .hc-arrow { width: 42px; height: 42px; font-size: .9rem; }
    .partner-logo-card { width: 150px; height: 84px; }
    .pro-image img { min-height: 240px; }
    .to-top-btn { width: 46px; height: 46px; right: 14px; bottom: 14px; }
}


/* ── ROUTER STUB ─────────────────────────────────────────────────────────── */

.router-stub { padding: 96px 0; text-align: center; }
.router-stub-inner { max-width: 600px; margin: 0 auto; padding: 0 24px; }


/* ── PAGINATION ──────────────────────────────────────────────────────────── */

.pagination .page-link { font-size: 14px; font-weight: 500; color: var(--gris-700); border-color: var(--gris-200); border-radius: var(--radius-sm) !important; margin: 0 2px; padding: 8px 14px; transition: var(--transition); }
.pagination .page-link:hover { background: var(--rouge-pale); border-color: var(--rouge-border); color: var(--rouge); }
.pagination .page-item.active .page-link { background: var(--rouge); border-color: var(--rouge); color: white; }
.pagination .page-item.disabled .page-link { color: var(--gris-300); background: var(--gris-50); }


/* ── RESPONSIVE ──────────────────────────────────────────────────────────── */

@media (max-width: 1100px) {
    .footer-grid { grid-template-columns: 1fr 1fr 1fr; gap: 40px 32px; }
    .footer-col:first-child { grid-column: 1 / -1; }
    .footer-brand-desc { max-width: 100%; }
    .home-cat-grid { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 992px) {
    .header-left { display: none; }
    .header-logo { position: static; transform: none; }
    .header-inner { justify-content: space-between; }
    .header-nav-link, .btn-inscription-pro, .btn-mon-espace, .btn-deconnexion { display: none; }
    .burger-btn { display: flex; }
}

@media (max-width: 768px) {
    :root { --header-height: 62px; }
    .logo-m, .logo-rest, .logo-dot { font-size: 24px; }
    .footer-grid { grid-template-columns: 1fr 1fr; gap: 32px 24px; }
    .footer-col:first-child { grid-column: 1 / -1; }
    .footer-main { padding-bottom: 48px; }
    .footer-bottom-inner { flex-direction: column; align-items: flex-start; gap: 10px; }
    .home-hero { padding: 64px 0 56px; }
}

@media (max-width: 480px) {
    .footer-grid { grid-template-columns: 1fr; }
    .footer-legal-links { gap: 12px; }
    .home-cat-grid { grid-template-columns: 1fr 1fr; }
}

.logout-form,
.logout-form-mobile {
    margin: 0;
}

.logout-form .btn-deconnexion {
    appearance: none;
    -webkit-appearance: none;
}

.mp-nav-btn {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 13px 4px;
    font-size: 15px;
    font-weight: 500;
    color: var(--gris-700);
    background: transparent;
    border: none;
    text-align: left;
    cursor: pointer;
    transition: color 0.2s;
}

.mp-nav-btn i {
    width: 22px;
    font-size: 16px;
    color: var(--gris-400);
    flex-shrink: 0;
    text-align: center;
}

.mp-nav-btn:hover {
    color: var(--rouge);
}

.mp-nav-btn:hover i {
    color: var(--rouge);
}

/* ─── BASE ─────────────────────────────────────────────── */
html { overflow-x: hidden; scroll-behavior: smooth; }
body.page-home { overflow-x: hidden; background: #fafbfc; color: #111827; }
.page-home * { box-sizing: border-box; }

/* ─── SECTIONS ──────────────────────────────────────────── */
.hs { position: relative; padding: 5rem 0; }
.hs-soft { background: #f7f8fb; }

.hs-head {
    max-width: 620px;
    margin: 0 auto 2.5rem;
    text-align: center;
}
.hs-head h2 {
    margin: 0 0 .5rem;
    font-family: var(--font-titre);
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 900;
    letter-spacing: -.055em;
    line-height: 1;
    color: #111827;
    text-wrap: balance;
}
.hs-head p { margin: 0; color: #6b7280; font-size: .95rem; line-height: 1.7; }



/* ─── SEARCH OVERLAP ────────────────────────────────────── */
.search-overlap {
    position: relative;
    z-index: 10;
    margin-top: -3rem;
}
.search-card {
    width: min(1020px, calc(100% - 1.5rem));
    margin: 0 auto;
    padding: 1rem;
    border-radius: 1.4rem;
    background: rgba(255,255,255,.97);
    border: 1px solid rgba(17,24,39,.06);
    box-shadow: 0 24px 64px rgba(17,24,39,.12);
    backdrop-filter: blur(16px);
}
.search-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(210px, .9fr) auto;
    gap: .75rem;
}
.search-card .form-control,
.search-card .form-select {
    min-height: 56px;
    border-radius: 1rem;
    border: 1.5px solid rgba(17,24,39,.09);
    box-shadow: none;
    padding-inline: 1rem;
    font-size: .95rem;
    transition: border-color .18s;
}
.search-card .form-control:focus,
.search-card .form-select:focus {
    border-color: rgba(198,40,40,.4);
    box-shadow: 0 0 0 3px rgba(198,40,40,.08);
}

/* ─── BUTTONS ────────────────────────────────────────────── */
.h-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    min-height: 52px;
    min-width: 180px;
    padding: .85rem 1.3rem;
    border-radius: 999px;
    font-weight: 800;
    font-size: .9rem;
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
}
.h-btn:hover { transform: translateY(-2px); }
.h-btn-primary {
    background: linear-gradient(135deg, #c62828 0%, #e53935 100%);
    color: #fff;
    border: none;
    box-shadow: 0 12px 32px rgba(198,40,40,.28);
}
.h-btn-primary:hover { color: #fff; box-shadow: 0 18px 40px rgba(198,40,40,.36); }
.h-btn-ghost {
    background: rgba(255,255,255,.12);
    border: 1.5px solid rgba(255,255,255,.28);
    color: #fff;
    backdrop-filter: blur(8px);
}
.h-btn-ghost:hover { background: rgba(255,255,255,.22); color: #fff; }
.h-btn-light {
    background: #fff;
    border: 1.5px solid rgba(17,24,39,.09);
    color: #111827;
}
.h-btn-light:hover { color: #c62828; border-color: rgba(198,40,40,.28); }

/* ─── CAROUSEL ───────────────────────────────────────────── */
.hc-shell {
    position: relative;
    padding: 0 64px;
}
.hc-outer {
    overflow: hidden;
    border-radius: .5rem;
}
/* carousel arrows */
.hc-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    border: 1.5px solid rgba(17,24,39,.10);
    background: #fff;
    color: #374151;
    box-shadow: 0 8px 28px rgba(17,24,39,.10);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background .22s ease, color .22s ease, border-color .22s ease, transform .22s ease, box-shadow .22s ease;
    font-size: 1.05rem;
    padding: 0;
}
.hc-arrow:hover {
    background: #c62828;
    color: #fff;
    border-color: #c62828;
    transform: translateY(-50%) scale(1.08);
    box-shadow: 0 14px 32px rgba(198,40,40,.28);
}
.hc-arrow:active {
    background: #a51c1c;
    border-color: #a51c1c;
    transform: translateY(-50%) scale(.97);
}
.hc-prev { left: 0; }
.hc-next { right: 0; }

/* ─── MERCHANT CARD (hmc) ───────────────────────────────── */
.hmc {
    background: #fff;
    transition: transform .25s ease, box-shadow .25s ease;
}
.hmc:hover {
    transform: translateY(-5px);
}
.hmc-media {
    aspect-ratio: 16 / 10;
    background: #f3f4f6;
}
.hmc-img { transition: transform .48s ease; }
.hmc:hover .hmc-img { transform: scale(1.06); }
.hmc-overlay {
    position: absolute;
    inset: auto 0 0 0;
    padding: .6rem .85rem;
    background: linear-gradient(180deg, transparent, rgba(0,0,0,.68));
    color: #fff;
    font-size: .78rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: .35rem;
}
.hmc-body { background: #fff; }
.hmc-title {
    font-size: .95rem;
    font-weight: 900;
    line-height: 1.25;
}
.hmc-title a { color: #111827; }
.hmc-title a:hover { color: #c62828; }
.hmc-type { color: #9ca3af; font-size: .78rem; font-weight: 700; }
.hmc-rating {
    display: inline-flex;
    align-items: center;
    gap: .32rem;
    font-size: .78rem;
    font-weight: 800;
    color: #374151;
}
.hmc-rating i { color: #f59e0b; font-size: .75rem; }
/* "Voir" button – redesigned */
.hmc-btn {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .42rem .9rem;
    border-radius: 999px;
    background: linear-gradient(135deg, #c62828 0%, #e53935 100%);
    color: #fff;
    font-size: .74rem;
    font-weight: 800;
    text-decoration: none;
    box-shadow: 0 5px 16px rgba(198,40,40,.22);
    transition: transform .18s ease, box-shadow .18s ease;
    white-space: nowrap;
}
.hmc-btn i { font-size: .72rem; transition: transform .18s ease; }
.hmc-btn:hover {
    color: #fff;
    transform: translateY(-1px);
}
.hmc-btn:hover i { transform: translateX(3px); }

/* ─── CONCEPT SECTION ───────────────────────────────────── */
.home-concept {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}
.concept-bg-wrap {
    position: absolute;
    inset: -25% 0;
    z-index: 0;
}
.concept-bg-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    will-change: transform;
}
.concept-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        radial-gradient(ellipse at top, rgba(198,40,40,.18), transparent 32%),
        linear-gradient(180deg, rgba(10,12,16,.38), rgba(10,12,16,.82));
}
.home-concept .container { position: relative; z-index: 2; }
.home-concept .hs-head h2 { color: #fff; }
.home-concept .hs-head p  { color: rgba(255,255,255,.75); }

.concept-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
}
.concept-card {
    padding: 1.6rem 1.2rem;
    border-radius: 1.4rem;
    background: rgba(255,255,255,.09);
    border: 1px solid rgba(255,255,255,.14);
    backdrop-filter: blur(14px);
    text-align: center;
    transition: background .25s ease, transform .25s ease;
}
.concept-card:hover {
    background: rgba(255,255,255,.14);
    transform: translateY(-4px);
}
.concept-icon {
    width: 56px;
    height: 56px;
    margin: 0 auto 1rem;
    border-radius: 1rem;
    background: rgba(255,255,255,.14);
    display: grid;
    place-items: center;
    font-size: 1.15rem;
    color: #fff;
}
.concept-card h3 { margin: 0 0 .4rem; color: #fff; font-size: 1rem; font-weight: 900; }
.concept-card p  { margin: 0; color: rgba(255,255,255,.75); font-size: .88rem; line-height: 1.65; }

/* ─── BLOG ───────────────────────────────────────────────── */
.blog-card {
    background: #fff;
    transition: transform .25s ease, box-shadow .25s ease;
}
.blog-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 1.2rem 2.4rem rgba(17,24,39,.10) !important;
}
.blog-media {
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: #f3f4f6;
}
.blog-media img { transition: transform .48s ease; }
.blog-card:hover .blog-media img { transform: scale(1.06); }
.blog-title {
    margin: 0 0 .4rem;
    font-size: 1rem;
    font-weight: 900;
    line-height: 1.35;
    color: #111827;
}
.blog-excerpt { margin: 0 0 .8rem; color: #6b7280; font-size: .88rem; line-height: 1.65; }
.blog-meta { display: flex; align-items: center; justify-content: space-between; color: #9ca3af; font-size: .8rem; font-weight: 700; }
.blog-read { color: #c62828; font-weight: 800; font-size: .82rem; display: flex; align-items: center; gap: .3rem; }

/* ─── PARTNERS MARQUEE ───────────────────────────────────── */
.partner-showcase {
    position: relative;
    overflow: hidden;
}

.partner-carousel-wrap {
    position: relative;
    width: min(1240px, calc(100% - 1.5rem));
    margin: 0 auto;
    padding: 0 64px;
}

.partner-carousel-viewport {
    overflow: hidden;
    border-radius: 1.4rem;
}

.partner-carousel-track {
    display: flex;
    gap: 1rem;
    width: max-content;
    will-change: transform;
    touch-action: pan-y;
}

.partner-card {
    position: relative;
    flex: 0 0 auto;
    width: 230px;
    height: 160px;
    border-radius: 1.25rem;
    overflow: hidden;
    text-decoration: none;
    background: #ffffff;
    border: 1.5px solid rgba(17,24,39,.08);
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.partner-card:hover {
    transform: translateY(-4px);
}

.partner-card img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover; /* l'image remplit toute la boite */
    user-select: none;
    -webkit-user-drag: none;
    transition: transform .28s ease;
}

.partner-card:hover img {
    transform: scale(1.04);
}

.partner-card-fallback {
    width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
    background: linear-gradient(135deg, #c62828 0%, #ef4444 100%);
    color: #fff;
    font-size: 1.1rem;
    font-weight: 900;
    letter-spacing: -.04em;
}

.partner-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 20;
    width: 50px;
    height: 50px;
    border: 1.5px solid rgba(17,24,39,.10);
    border-radius: 50%;
    background: #fff;
    color: #374151;
    box-shadow: 0 10px 28px rgba(17,24,39,.12);
    display: none;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background .22s ease, color .22s ease, border-color .22s ease, transform .22s ease, box-shadow .22s ease;
    padding: 0;
}

.partner-arrow:hover {
    background: #c62828;
    color: #fff;
    border-color: #c62828;
    transform: translateY(-50%) scale(1.08);
    box-shadow: 0 16px 34px rgba(198,40,40,.28);
}

.partner-arrow.prev { left: 0; }
.partner-arrow.next { right: 0; }

.partner-hint {
    margin-top: 1rem;
    text-align: center;
    color: #9ca3af;
    font-size: .82rem;
    font-weight: 700;
}

@media (min-width: 768px) {
    .partner-arrow {
        display: flex; /* flèches uniquement sur PC/tablette */
    }
}

@media (max-width: 767.98px) {
    .partner-carousel-wrap {
        padding: 0;
    }

    .partner-card {
        width: 180px;
        height: 104px;
        border-radius: 1rem;
    }

    .partner-hint {
        font-size: .78rem;
    }
}



/* ─── PRO SECTION ────────────────────────────────────────── */
.pro-shell {
    padding: 1.1rem;
    border-radius: 1.8rem;
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
    border: 1px solid rgba(17,24,39,.06);
    box-shadow: 0 22px 56px rgba(17,24,39,.07);
}
.pro-tabs {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: .65rem;
    margin-bottom: 1rem;
}
.pro-tabs .nav-link {
    min-height: 42px;
    padding: .65rem 1.1rem;
    border-radius: 999px;
    border: 1.5px solid rgba(17,24,39,.09);
    background: #fff;
    color: #374151;
    font-size: .85rem;
    font-weight: 800;
    transition: background .2s, color .2s, border-color .2s, box-shadow .2s;
}
.pro-tabs .nav-link.active {
    background: #c62828;
    border-color: #c62828;
    color: #fff;
    box-shadow: 0 10px 28px rgba(198,40,40,.22);
}
.pro-pane-inner {
    overflow: hidden;
    border-radius: 1.4rem;
    background: #fff;
    border: 1px solid rgba(17,24,39,.06);
}
.pro-image { position: relative; background: #111827; min-height: 100%; }
.pro-image img { width: 100%; height: 100%; min-height: 380px; object-fit: cover; display: block; }
.pro-image::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(17,24,39,.06), rgba(17,24,39,.44));
}
.pro-content { padding: 2rem 1.8rem; }
.pro-title {
    margin: 0 0 .6rem;
    font-family: var(--font-titre);
    font-size: clamp(1.8rem, 3.2vw, 2.6rem);
    font-weight: 900;
    letter-spacing: -.05em;
    line-height: 1;
    color: #111827;
}
.pro-text { margin: 0 0 1.1rem; color: #6b7280; line-height: 1.75; }
.pro-list {
    list-style: none;
    padding: 0;
    margin: 0 0 1.4rem;
    display: grid;
    gap: .7rem;
}
.pro-list li { display: flex; align-items: center; gap: .65rem; color: #374151; font-weight: 700; font-size: .91rem; }
.pro-list i { color: #c62828; font-size: 1rem; }
.pro-actions { display: flex; flex-wrap: wrap; gap: .85rem; }

/* ─── BACK TO TOP ────────────────────────────────────────── */
.to-top-btn {
    position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 1035;
    width: 50px;
    height: 50px;
    border: none;
    border-radius: 50%;
    background: linear-gradient(135deg, #c62828, #e53935);
    color: #fff;
    box-shadow: 0 12px 32px rgba(198,40,40,.30);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transform: translateY(12px) scale(.9);
    transition: opacity .24s ease, transform .24s ease, visibility .24s ease, box-shadow .22s ease;
}
.to-top-btn.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0) scale(1);
}
.to-top-btn:hover { box-shadow: 0 18px 42px rgba(198,40,40,.38); transform: translateY(-2px) scale(1.05); }
.to-top-btn i { animation: arrowBounce 1.3s ease-in-out infinite; }
@keyframes arrowBounce {
    0%, 100% { transform: translateY(0); }
    50%       { transform: translateY(-5px); }
}

/* ─── REVEAL ─────────────────────────────────────────────── */
.reveal { opacity: 0; transform: translateY(22px); transition: opacity .56s ease, transform .56s ease; }
.reveal.is-visible { opacity: 1; transform: translateY(0); }

/* ─── EMPTY STATE ────────────────────────────────────────── */
.h-empty {
    padding: 1.5rem;
    text-align: center;
    color: #9ca3af;
    border: 1.5px dashed rgba(17,24,39,.10);
    border-radius: 1.2rem;
    background: #fff;
}

/* ─── RESPONSIVE ─────────────────────────────────────────── */
@media (max-width: 991.98px) {
    .hs { padding: 4rem 0; }
    .search-grid { grid-template-columns: 1fr; }
    .concept-grid { grid-template-columns: 1fr; gap: .85rem; }
    .pro-content { padding: 1.5rem; }
}

@media (max-width: 767.98px) {
    .hero-content { padding: 5rem 0 8rem; }
    .search-overlap { margin-top: -6rem; }
    .search-card { padding: .9rem; border-radius: 1.15rem; }
    .h-btn { min-width: 0; width: 100%; }
    .hero-actions { flex-direction: column; align-items: center; }
	    .hc-shell { padding: 0px; }
    .hc-arrow { width: 42px; height: 42px; font-size: .9rem; }
    .partner-logo-card { width: 150px; height: 84px; }
    .pro-image img { min-height: 240px; }
    .to-top-btn { width: 46px; height: 46px; right: 14px; bottom: 14px; }
}

.header-logo{
  width:auto;
  max-width:190px;
  height:52px;
  object-fit:contain;
  display:block;
}

@media (max-width: 767px){
  .header-logo{
    max-width:150px;
    height:42px;
  }
}

.footer-sunset{
  position:relative;
  overflow:hidden;
  border-top:1px solid rgba(15,23,42,.06);
}

.footer-sunset-layer{
  position:absolute;
  inset:auto;
  pointer-events:none;
  border-radius:999px;
  filter:blur(24px);
  opacity:.95;
}

.footer-sunset-layer-1{
  width:520px;
  height:520px;
  left:-120px;
  bottom:-180px;
  background:radial-gradient(circle, rgba(239,68,68,.16) 0%, rgba(239,68,68,.04) 34%, rgba(239,68,68,0) 72%);
}

.footer-sunset-layer-2{
  width:620px;
  height:620px;
  right:-180px;
  bottom:-240px;
  background:radial-gradient(circle, rgba(251,146,60,.18) 0%, rgba(251,146,60,.06) 30%, rgba(251,146,60,0) 72%);
}

.footer-sunset-wrap{
  position:relative;
  z-index:2;
  width:100%;
  max-width:none;
  padding:38px 34px 24px;
}

.footer-sunset-grid{
  display:grid;
  grid-template-columns:1.4fr 1.6fr;
  gap:40px;
  align-items:start;
}

.footer-sunset-left,
.footer-sunset-right{
  min-width:0;
}

.footer-sunset-logo-link{
  display:inline-flex;
  align-items:center;
  text-decoration:none;
}

.footer-sunset-logo{
  width:auto;
  max-width:220px;
  height:58px;
  object-fit:contain;
  display:block;
}

.footer-sunset-desc{
  margin:14px 0 0;
  color:#4b5563;
  line-height:1.82;
  max-width:620px;
}

.footer-sunset-news{
  margin-top:20px;
  max-width:720px;
}

.footer-sunset-news-head{
  margin-bottom:12px;
}

.footer-sunset-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:32px;
  padding:0 12px;
  border-radius:999px;
  background:rgba(255,255,255,.7);
  color:#b91c1c;
  border:1px solid rgba(239,68,68,.10);
  font-size:.8rem;
  font-weight:800;
  margin-bottom:10px;
}

.footer-sunset-news-head h3{
  margin:0;
  font-size:1.08rem;
  font-weight:500;
  color:#111827;
}

.footer-sunset-form{
  margin:0;
}

.footer-sunset-form-grid{
  display:grid;
  grid-template-columns:1fr 1.15fr auto;
  gap:10px;
  align-items:center;
}

.footer-sunset-form .form-control{
  min-height:50px;
  border-radius:14px;
  border:1px solid #e5e7eb;
  background:rgba(255,255,255,.88);
  box-shadow:none;
  padding:0 14px;
  color:#111827;
}

.footer-sunset-form .form-control:focus{
  border-color:#fca5a5;
  box-shadow:0 0 0 .2rem rgba(239,68,68,.10);
}

.footer-sunset-btn{
  min-height:50px;
  padding:0 20px;
  border:0;
  border-radius:14px;
  font-weight:900;
  font-size:.94rem;
  color:#fff;
  white-space:nowrap;
  background:linear-gradient(135deg,#991b1b 0%,#dc2626 55%,#ef4444 100%);
  box-shadow:0 14px 24px rgba(220,38,38,.18);
  transition:transform .18s ease, box-shadow .18s ease;
}

.footer-sunset-btn:hover{
  transform:translateY(-1px);
  box-shadow:0 18px 28px rgba(220,38,38,.24);
}

.footer-sunset-socials{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}

.footer-sunset-social{
  width:44px;
  height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:14px;
  background:rgba(255,255,255,.88);
  border:1px solid rgba(15,23,42,.08);
  color:#111827;
  text-decoration:none;
  transition:transform .18s ease, color .18s ease, border-color .18s ease;
}

.footer-sunset-social:hover{
  transform:translateY(-2px);
  color:#dc2626;
  border-color:rgba(220,38,38,.16);
}

.footer-sunset-links{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
}

.footer-sunset-col{
  display:flex;
  flex-direction:column;
  gap:10px;
}

.footer-sunset-col h3{
  margin:0 0 6px;
  font-size:1rem;
  font-weight:900;
  color:#111827;
}

.footer-sunset-col a{
  color:#4b5563;
  text-decoration:none;
  line-height:1.55;
  transition:color .15s ease, transform .15s ease;
}

.footer-sunset-col a:hover{
  color:#dc2626;
  transform:translateX(2px);
}

.footer-sunset-bottom{
  margin-top:28px;
  padding-top:18px;
  border-top:1px solid rgba(15,23,42,.08);
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  align-items:center;
  gap:14px;
}

.footer-sunset-copy{
  margin:0;
  color:#6b7280;
}

.footer-sunset-bottom-links{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
}

.footer-sunset-bottom-links a{
  color:#6b7280;
  text-decoration:none;
  font-weight:600;
}

.footer-sunset-bottom-links a:hover{
  color:#dc2626;
}

@media (max-width: 1199px){
  .footer-sunset-grid{
    grid-template-columns:1fr;
    gap:28px;
  }

  .footer-sunset-links{
    grid-template-columns:repeat(3,1fr);
  }
}

@media (max-width: 991px){
  .footer-sunset-wrap{
    padding:30px 20px 22px;
  }

  .footer-sunset-links{
    grid-template-columns:1fr 1fr;
    gap:22px;
  }

  .footer-sunset-logo{
    max-width:200px;
    height:52px;
  }
}

@media (max-width: 767px){
  .footer-sunset-wrap{
    padding:26px 14px 20px;
  }

  .footer-sunset-grid,
  .footer-sunset-links,
  .footer-sunset-form-grid{
    grid-template-columns:1fr;
  }

  .footer-sunset{
    text-align:center;
  }

  .footer-sunset-logo-link,
  .footer-sunset-socials{
    justify-content:center;
  }

  .footer-sunset-desc{
    margin-left:auto;
    margin-right:auto;
  }

  .footer-sunset-news{
    margin-left:auto;
    margin-right:auto;
  }

  .footer-sunset-bottom{
    flex-direction:column;
    align-items:center;
    text-align:center;
  }

  .footer-sunset-bottom-links{
    justify-content:center;
  }

  .footer-sunset-logo{
    max-width:180px;
    height:48px;
  }

  .footer-sunset-btn{
    width:100%;
  }
}

.fp-title{
    text-align:center;
    margin:0 auto 34px;
    max-width:760px;
}
.fp-kicker{
    display:inline-flex;
    align-items:center;
    gap:8px;
    margin-bottom:10px;
    color:#C62828;
    font-size:.78rem;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.fp-title h2{
    font-family:var(--font-titre, var(--font-t, 'Playfair Display', Georgia, serif));
    font-size:clamp(1.95rem,4vw,2.8rem);
    line-height:1.05;
    font-weight:900;
    letter-spacing:-.04em;
    margin:0;
    color:#111827;
}

.fp-div{
    position:relative;
    overflow:hidden;
    width:84px;
    height:4px;
    border-radius:999px;
    background:linear-gradient(90deg,#c62828 0%, #d94a4a 100%);
    margin:15px auto 0;
}

.fp-div::after{
    content:"";
    position:absolute;
    top:0;
    left:-40%;
    width:40%;
    height:100%;
    border-radius:999px;
    background:linear-gradient(
        90deg,
        rgba(255,255,255,0) 0%,
        rgba(255,255,255,.18) 20%,
        rgba(255,255,255,.9) 50%,
        rgba(255,255,255,.18) 80%,
        rgba(255,255,255,0) 100%
    );
    animation:fpDivShine 2.8s ease-in-out infinite;
}

@keyframes fpDivShine{
    0%{
        left:-40%;
    }
    100%{
        left:140%;
    }
}

.fp-menu-head{
    display:flex;
    align-items:flex-start;
    justify-content:center;
    gap:18px;
}
.fp-menu-head > div{
    width:100%;
}
.search-overlap{
    position:relative;
    z-index:10;
    margin-top:-56px;
    padding:0 16px;
}
.search-card{
    max-width:1080px;
    margin:0 auto;
    background:rgba(255,255,255,.96);
    border:1px solid rgba(17,24,39,.07);
    border-radius:28px;
    box-shadow:0 30px 80px rgba(17,24,39,.12);
    backdrop-filter:blur(16px);
    padding:18px;
}
.search-grid{
    display:grid;
    grid-template-columns:minmax(0,1.45fr) minmax(190px,.72fr) auto;
    gap:12px;
    align-items:start;
}

.search-address-input{
    min-height:58px;
    padding-left:48px;
    border-radius:18px;
    border:1px solid rgba(17,24,39,.09);
    font-size:.98rem;
    font-weight:500;
    box-shadow:none !important;
}
.search-address-input:focus{
    border-color:rgba(198,40,40,.34);
}
.search-address-icon{
    position:absolute;
    top:50%;
    left:16px;
    transform:translateY(-50%);
    color:#9ca3af;
    font-size:1rem;
    pointer-events:none;
}
.search-address-clear{
    position:absolute;
    top:50%;
    right:12px;
    transform:translateY(-50%);
    width:34px;
    height:34px;
    border:0;
    border-radius:999px;
    background:#f3f4f6;
    color:#6b7280;
    display:inline-flex;
    align-items:center;
    justify-content:center;
}
.search-address-clear:hover{
    background:#e5e7eb;
    color:#111827; 
}
.search-address-suggestions{
    position:absolute;
    top:calc(100% + 10px);
    left:0;
    right:0;
    z-index:25;
    background:#fff;
    border:1px solid rgba(17,24,39,.08);
    border-radius:20px;
    box-shadow:0 24px 56px rgba(17,24,39,.16);
    padding:8px;
}

.search-address-wrap{
    position:relative;
}

.search-address-wrap .search-address-input.form-control{
    padding-left:45px !important;
    border-radius:18px;
    border:1px solid rgba(17,24,39,.09);
    font-size:.98rem;
    font-weight:500;
    box-shadow:none !important;
}

.search-address-wrap .search-address-input.form-control::placeholder{
    color:#9ca3af;
}

.search-address-wrap .search-address-icon{
    position:absolute;
    top:50%;
    left:18px;
    transform:translateY(-50%);
    color:#9ca3af;
    font-size:1rem;
    pointer-events:none;
    z-index:2;
}

.search-address-wrap .search-address-clear{
    position:absolute;
    top:50%;
    right:12px;
    transform:translateY(-50%);
    width:34px;
    height:34px;
    border:0;
    border-radius:999px;
    background:#f3f4f6;
    color:#6b7280;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    z-index:2;
}

.search-address-wrap .search-address-clear:hover{
    background:#e5e7eb;
    color:#111827;
}

.search-address-wrap.is-open .search-address-input.form-control,
.search-address-wrap .search-address-input.form-control:focus{
    border-color:rgba(198,40,40,.34);
    box-shadow:0 0 0 3px rgba(198,40,40,.08) !important;
}


.search-address-suggestion{
    width:100%;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:2px;
    text-align:left;
    border:0;
    background:transparent;
    border-radius:14px;
    padding:11px 12px;
    color:#111827;
}
.search-address-suggestion strong{
    font-size:.93rem;
    font-weight:800;
}
.search-address-suggestion span{
    font-size:.82rem;
    color:#6b7280;
    line-height:1.4;
}
.search-address-suggestion:hover,
.search-address-suggestion.is-active{
    background:#FFF5F5;
}
.search-grid .form-select{
    min-height:58px;
    border-radius:18px;
    border:1px solid rgba(17,24,39,.09);
    font-size:.95rem;
    font-weight:700;
    box-shadow:none !important;
}
.search-grid .h-btn{
    min-height:58px;
    border-radius:18px !important;
    padding-inline:22px;
    white-space:nowrap;
}
.hs .fp-title{
    margin-bottom:34px;
}
.hs .fp-menu-head{
    justify-content:center;
}
.hs .fp-title h2{
    margin:0;
}
.hs .fp-kicker{
    justify-content:center;
}
.hc-mobile-shell{
    display:block;
}
.hc-mobile-nav{
    display:none;
}







@media (max-width: 767.98px){
    .search-overlap{
        margin-top:-75px;
        padding:0 14px;
    }
    .search-card{
        border-radius:22px;
        padding:14px;
    }
    .search-grid{
        grid-template-columns:1fr;
    }
    .search-grid .h-btn{
        width:100%;
    }
    .fp-title{
        margin-bottom:26px;
    }
    .fp-title h2{
        font-size:clamp(1.7rem,7vw,2.1rem);
    }
    .fp-menu-head{
        flex-direction:column;
        align-items:center;
        text-align:center;
    }
    .hc-shell{
        display:block !important;
    }
    .hc-shell > .hc-arrow{
        display:none !important;
    }
    .hc-shell > .hc-outer{
        width:100%;
    }
    .hc-mobile-nav{
        display:flex;
        justify-content:center;
        align-items:center;
        gap:12px;
        margin-top:14px;
    }
    .hc-mobile-nav .hc-arrow{
        position:static;
        transform:none;
        width:42px;
        height:42px;
        display:inline-flex !important;
    }

}

.pro-sheet {
    background: #fafbfc;
}

.pro-sheet-shell {
    max-width: 1120px;
    margin: 0 auto;
}

.pro-sheet-head {
    max-width: 620px;
    margin: 0 auto 2rem;
    text-align: center;
}

.pro-sheet-head h2 {
    margin: 0 0 .55rem;
    font-family: var(--font-titre);
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 900;
    line-height: 1;
    letter-spacing: -.05em;
    color: #111827;
}

.pro-sheet-head p {
    margin: 0;
    color: #6b7280;
    font-size: .97rem;
    line-height: 1.8;
}

.pro-sheet-tabs-wrap {
    display: flex;
    justify-content: center;
    margin-bottom: 1.35rem;
}

.pro-sheet-tabs {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-wrap: nowrap;
    gap: .55rem;
    padding: .45rem;
    border-radius: 999px;
    background: #f3f4f6;
    border: 1px solid rgba(17,24,39,.06);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}

.pro-sheet-tabs .nav-item {
    margin: 0;
}

.pro-sheet-tabs .nav-link {
    min-height: 42px;
    padding: .68rem 1.08rem;
    border-radius: 999px;
    border: 1px solid transparent;
    background: transparent;
    color: #4b5563;
    font-size: .84rem;
    font-weight: 800;
    transition: background .2s ease, color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.pro-sheet-tabs .nav-link:hover {
    background: rgba(255,255,255,.82);
    color: #111827;
}

.pro-sheet-tabs .nav-link.active {
    background: #111827;
    color: #fff;
    box-shadow: 0 10px 24px rgba(17,24,39,.12);
}

.pro-sheet-content .tab-pane.fade {
    transform-origin: left center;
    transform: perspective(1200px) rotateY(-7deg) translateX(18px);
    opacity: 0;
    transition: opacity .38s ease, transform .48s cubic-bezier(.22,.61,.36,1);
}

.pro-sheet-content .tab-pane.fade.show.active {
    opacity: 1;
    transform: perspective(1200px) rotateY(0) translateX(0);
}

.pro-sheet-panel {
    padding: 1rem;
    border-radius: 2rem;
    background: #fff;
    border: 1px solid rgba(17,24,39,.06);
    box-shadow: 0 22px 54px rgba(17,24,39,.06);
}

.pro-sheet-media {
    padding-right: 1rem;
}

.pro-sheet-media img {
    width: 100%;
    height: 100%;
    min-height: 420px;
    display: block;
    object-fit: cover;
    border-radius: 1.7rem;
}

.pro-sheet-copy {
    padding: 2.1rem 1.6rem 2.1rem 2rem;
}

.pro-sheet-title {
    margin: 0 0 .9rem;
    font-family: var(--font-titre);
    font-size: clamp(2rem, 3vw, 2.8rem);
    font-weight: 900;
    line-height: 1.02;
    letter-spacing: -.05em;
    color: #111827;
    text-wrap: balance;
}

.pro-sheet-text {
    margin: 0 0 1rem;
    max-width: 56ch;
    color: #4b5563;
    font-size: 1rem;
    line-height: 1.9;
}

.pro-sheet-subtext {
    margin: 0 0 1.65rem;
    max-width: 56ch;
    color: #6b7280;
    font-size: .93rem;
    line-height: 1.9;
}

.pro-sheet-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .85rem;
}

@media (max-width: 991.98px) {
    .pro-sheet-panel {
        padding: .85rem;
        border-radius: 1.45rem;
    }

    .pro-sheet-media {
        padding-right: 0;
        padding-bottom: 1rem;
    }

    .pro-sheet-media img {
        min-height: 290px;
        border-radius: 1.25rem;
    }

    .pro-sheet-copy {
        padding: .35rem .55rem .75rem;
    }
}

@media (max-width: 767.98px) {
    .pro-sheet-head {
        margin-bottom: 1.5rem;
    }

    .pro-sheet-tabs-wrap {
        margin-bottom: 1rem;
    }

    .pro-sheet-tabs {
        display: flex;
        width: 100%;
        border-radius: 1.1rem;
        padding: .5rem;
    }

    .pro-sheet-tabs .nav-item {
        width: 100%;
    }

    .pro-sheet-tabs .nav-link {
        width: 100%;
    }

    .pro-sheet-title {
        font-size: clamp(1.65rem, 7vw, 2.1rem);
    }

    .pro-sheet-text,
    .pro-sheet-subtext {
        font-size: .94rem;
        line-height: 1.8;
    }

    .pro-sheet-actions,
    .pro-sheet-actions .h-btn {
        width: 100%;
    }
}

.fp-carousel{
  position:relative;
  overflow:visible;
}

.fp-carousel-viewport{
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
  padding:6px 2px 10px;
  cursor:grab;
  scroll-behavior:smooth;
  overscroll-behavior-x:contain;
}

.fp-carousel-viewport::-webkit-scrollbar{
  display:none;
}

.fp-carousel-viewport.is-dragging{
  cursor:grabbing;
  scroll-snap-type:none;
  scroll-behavior:auto;
}

.fp-carousel-viewport.is-dragging *{
  user-select:none;
}

.fp-carousel-viewport.is-dragging img{
  pointer-events:none;
}

.fp-carousel-track{
  display:flex;
  gap:24px;
  align-items:stretch;
}

.fp-carousel-track.is-centered{
  justify-content:center;
}

.fp-slide{
  flex:0 0 calc((100% - 48px) / 3);
  scroll-snap-align:start;
  min-width:0;
}

.fp-carousel-nav{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin-top:20px;
}

.fp-dot{
  width:8px;
  height:8px;
  border-radius:999px;
  border:0;
  background:#D1D5DB;
  padding:0;
  transition:.22s ease;
}

.fp-dot.active{
  width:26px;
  background:var(--rouge);
}

.fp-carousel-arrows{
  pointer-events:none;
  z-index:4;
}

.fp-carr-btn{
  width:52px;
  height:52px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(17,24,39,.10);
  background:rgba(255,255,255,.96);
  color:#1F2937;
  box-shadow:0 14px 34px rgba(17,24,39,.14);
  transition:.22s;
  pointer-events:auto;
}

.fp-carr-btn i{
  font-size:1.2rem;
  line-height:1;
}

.fp-carr-btn:hover{
  background:var(--rouge);
  color:#fff;
  border-color:var(--rouge);
}

@media(min-width:768px){
  .fp-carousel{
    padding-left:72px;
    padding-right:72px;
  }

  .fp-carousel-arrows{
    position:absolute;
    inset:0;
  }

  .fp-carousel-arrows .fp-carr-btn{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
  }

  .fp-carr-btn-prev{
    left:0;
  }

  .fp-carr-btn-next{
    right:0;
  }

  .fp-carousel-arrows .fp-carr-btn:hover{
    transform:translateY(-50%) scale(1.06);
  }
}

@media(max-width:767.98px){
  .fp-slide{
    flex-basis:100%;
  }

  .fp-carousel-track{
    gap:14px;
  }

  .fp-carousel-arrows{
    position:static;
    inset:auto;
    display:flex;
    justify-content:center;
    gap:12px;
    margin-top:12px;
    pointer-events:auto;
  }

  .fp-carr-btn{
    width:44px;
    height:44px;
  }
}


.hero-title-shell{
    position:relative;
    display:inline-block;
    max-width:min(100%, 980px);
    overflow:hidden;
    padding-inline:18px;
}


.hero-spark{
    position:absolute;
    z-index:4;
    display:grid;
    place-items:center;
    color:#ffd7d7;
    filter:drop-shadow(0 0 14px rgba(198,40,40,.55));
    animation:heroSparkle 2.4s ease-in-out infinite;
    pointer-events:none;
}

.hero-spark i{
    line-height:1;
}

.hero-spark-1{
    top:-10px;
    left:-8px;
    font-size:1.2rem;
    animation-delay:0s;
}

.hero-spark-2{
    right:-2px;
    top:20px;
    font-size:1rem;
    animation-delay:1.1s;
}



.hero-sub-animated{
    position:relative;
    display:inline-block;
    color:rgba(255,255,255,.88);
    text-shadow:0 6px 18px rgba(0,0,0,.22);
    animation:heroSubFloat 3.8s ease-in-out infinite;
}

.hero-sub-animated::before,
.hero-sub-animated::after{
    content:"✦";
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    font-size:.76rem;
    color:rgba(255,210,210,.98);
    text-shadow:0 0 14px rgba(198,40,40,.55);
    animation:heroTinySpark 2.2s ease-in-out infinite;
    pointer-events:none;
}

.hero-sub-animated::before{ left:-18px; }
.hero-sub-animated::after{
    right:-18px;
    animation-delay:1s;
}



@keyframes heroSparkle{
    0%,100%{
        transform:translateY(0) scale(.88) rotate(0deg);
        opacity:.38;
    }
    50%{
        transform:translateY(-7px) scale(1.18) rotate(12deg);
        opacity:1;
    }
}

.hero-sep-animated{
    position:relative;
    width:min(190px, 46vw);
    height:22px;
    margin:16px auto 18px;
    overflow:hidden;
    padding-inline:10px;
}

.hero-sep-line{
    position:absolute;
    left:10px;
    right:10px;
    top:50%;
    height:3px;
    transform:translateY(-50%);
    border-radius:999px;
    background:linear-gradient(
        90deg,
        rgba(198,40,40,0) 0%,
        rgba(198,40,40,.85) 20%,
        rgba(255,255,255,.95) 50%,
        rgba(198,40,40,.85) 80%,
        rgba(198,40,40,0) 100%
    );
    box-shadow:
        0 0 14px rgba(198,40,40,.32),
        0 0 24px rgba(198,40,40,.14);
}

.hero-sep-dot{
    position:absolute;
    top:50%;
    left:10px;
    width:8px;
    height:8px;
    border-radius:50%;
    transform:translateY(-50%);
    background:#fff;
    box-shadow:
        0 0 0 3px rgba(198,40,40,.14),
        0 0 14px rgba(198,40,40,.45),
        0 0 22px rgba(255,255,255,.24);
    animation:heroSepMove 4.2s ease-in-out infinite;
}

.hero-sep-glow{
    position:absolute;
    inset:0;
    border-radius:999px;
    background:radial-gradient(circle at center, rgba(198,40,40,.18), transparent 64%);
    animation:heroSepPulse 4.2s ease-in-out infinite;
    pointer-events:none;
}

@keyframes heroSepMove{
    0%{
        left:10px;
    }
    50%{
        left:calc(100% - 18px);
    }
    100%{
        left:10px;
    }
}

@keyframes heroSepPulse{
    0%,100%{
        opacity:.28;
        transform:scaleX(.98);
    }
    50%{
        opacity:.55;
        transform:scaleX(1);
    }
}

@media (max-width: 767.98px){
    .hero-sep-animated{
        width:min(130px, 44vw);
        margin:12px auto 14px;
        padding-inline:8px;
    }

    .hero-sep-line{
        left:8px;
        right:8px;
    }

    .hero-sep-dot{
        left:8px;
        width:7px;
        height:7px;
    }

    @keyframes heroSepMove{
        0%{
            left:8px;
        }
        50%{
            left:calc(100% - 15px);
        }
        100%{
            left:8px;
        }
    }
}

@keyframes heroSubFloat{
    0%,100%{ transform:translateY(0); }
    50%{ transform:translateY(-2px); }
}

@keyframes heroTinySpark{
    0%,100%{
        opacity:.35;
        transform:translateY(-50%) scale(.9);
    }
    50%{
        opacity:1;
        transform:translateY(-50%) scale(1.22);
    }
}

@media (max-width: 767.98px){
    .hero-title-shell{
        padding-inline:10px;
    }

    .hero-title-animated::before{
        width:30%;
        filter:blur(8px);
    }

    .hero-spark-1{
        top:-14px;
        left:0;
        font-size:.9rem;
    }

    .hero-spark-2{
        right:2px;
        top:14px;
        font-size:.78rem;
    }

    .hero-sep-animated{
        width:min(130px, 44vw);
        margin:12px auto 14px;
    }

    .hero-sub-animated::before{ left:-12px; }
    .hero-sub-animated::after{ right:-12px; }
}


.fp-carousel-viewport {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    overscroll-behavior-x: contain;
    touch-action: pan-x pinch-zoom;
    scrollbar-width: none;
}

.fp-carousel-viewport::-webkit-scrollbar {
    display: none;
}

.fp-carousel-track {
    display: flex;
    flex-wrap: nowrap;
    gap: 1rem;
}

.fp-slide {
    flex: 0 0 calc((100% - 2rem) / 3);
    min-width: 0;
    scroll-snap-align: start;
    scroll-snap-stop: always;
}

@media (max-width: 767.98px) {
    .fp-slide {
        flex-basis: 100%;
    }
}

.association-showcase .partner-card.association-card{
    width:170px;
    height:170px;
    min-width:170px;
    border-radius:22px;
    overflow:hidden;
    background:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0;
}

.association-showcase .partner-card.association-card img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

@media (max-width:767.98px){
    .association-showcase .partner-card.association-card{
        width:130px;
        height:130px;
        min-width:130px;
        border-radius:18px;
    }
}