/* Reset & Base */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root {
    --primary-color: #2563eb;
    --primary-dark: #1e40af;
    --secondary-color: #10b981;
    --text-dark: #1f2937;
    --text-light: #6b7280;
    --bg-light: #f9fafb;
    --bg-white: #ffffff;
    --border-color: #e5e7eb;
    --shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1);
    --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1);
    --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1);
    --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    line-height: 1.6;
    color: var(--text-dark);
    background: var(--bg-white);
    overflow-x: hidden;
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

/* Navigation */
.navbar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(10px);
    box-shadow: var(--shadow);
    transition: var(--transition);
}

.navbar.scrolled {
    box-shadow: var(--shadow-md);
}

.navbar .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 20px;
}

.logo {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--primary-color);
    text-decoration: none;
}

.logo-img {
    height: 50px;
    width: auto;
    transition: var(--transition);
}

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

.nav-menu {
    display: flex;
    align-items: center;
    gap: 2rem;
    list-style: none;
}

.nav-link {
    color: var(--text-dark);
    text-decoration: none;
    font-weight: 500;
    transition: var(--transition);
    position: relative;
}

.nav-link:hover,
.nav-link.active {
    color: var(--primary-color);
}

.nav-link.active::after {
    content: '';
    position: absolute;
    bottom: -5px;
    left: 0;
    right: 0;
    height: 2px;
    background: var(--primary-color);
}

.nav-toggle {
    display: none;
    flex-direction: column;
    gap: 4px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.5rem;
}

.nav-toggle span {
    width: 25px;
    height: 3px;
    background: var(--text-dark);
    transition: var(--transition);
}

/* Buttons */
.btn {
    display: inline-block;
    padding: 0.75rem 1.5rem;
    border-radius: 8px;
    font-weight: 600;
    text-decoration: none;
    transition: var(--transition);
    border: none;
    cursor: pointer;
    font-size: 1rem;
}

.btn-primary {
    background: var(--primary-color);
    color: white;
}

.btn-primary:hover {
    background: var(--primary-dark);
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.btn-secondary {
    background: transparent;
    color: var(--primary-color);
    border: 2px solid var(--primary-color);
}

.btn-secondary:hover {
    background: var(--primary-color);
    color: white;
}

.btn-lg {
    padding: 1rem 2rem;
    font-size: 1.125rem;
}

/* Hero Section */
.hero {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 120px 20px 60px;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    position: relative;
    overflow: hidden;
}

.hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: url('data:image/svg+xml,<svg width="60" height="60" xmlns="http://www.w3.org/2000/svg"><path d="M30 0l30 30-30 30L0 30z" fill="rgba(255,255,255,0.05)"/></svg>');
    opacity: 0.3;
}

.hero-content {
    position: relative;
    z-index: 1;
    max-width: 800px;
    margin: 0 auto 3rem;
}

.hero-title {
    font-size: 3.5rem;
    font-weight: 700;
    margin-bottom: 1.5rem;
    line-height: 1.2;
}

.hero-subtitle {
    font-size: 1.25rem;
    margin-bottom: 2rem;
    opacity: 0.95;
}

.hero-buttons {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
}

.hero-stats {
    display: flex;
    gap: 3rem;
    justify-content: center;
    flex-wrap: wrap;
    position: relative;
    z-index: 1;
}

.stat {
    text-align: center;
}

.stat-number {
    font-size: 3rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
}

.stat-label {
    font-size: 1rem;
    opacity: 0.9;
}

/* Section */
.section {
    padding: 80px 20px;
}

.section-header {
    text-align: center;
    margin-bottom: 4rem;
}

.section-title {
    font-size: 2.5rem;
    font-weight: 700;
    margin-bottom: 1rem;
    color: var(--text-dark);
}

.section-subtitle {
    font-size: 1.125rem;
    color: var(--text-light);
}

/* Services */
.services {
    background: var(--bg-light);
}

.services-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
}

.service-card {
    background: white;
    padding: 2rem;
    border-radius: 12px;
    box-shadow: var(--shadow);
    transition: var(--transition);
    opacity: 0;
    transform: translateY(20px);
}

.service-card.animate-in {
    opacity: 1;
    transform: translateY(0);
}

.service-card:hover {
    transform: translateY(-8px);
    box-shadow: var(--shadow-lg);
}

.service-icon {
    width: 64px;
    height: 64px;
    background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.5rem;
}

.service-icon svg {
    color: white;
}

.service-card h3 {
    font-size: 1.5rem;
    margin-bottom: 1rem;
    color: var(--text-dark);
}

.service-card p {
    color: var(--text-light);
    line-height: 1.7;
}

/* Team */
.team-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 2rem;
}

.team-card {
    text-align: center;
    padding: 2rem;
    background: white;
    border-radius: 12px;
    box-shadow: var(--shadow);
    transition: var(--transition);
    opacity: 0;
    transform: translateY(20px);
}

.team-card.animate-in {
    opacity: 1;
    transform: translateY(0);
}

.team-card:hover {
    transform: translateY(-8px);
    box-shadow: var(--shadow-lg);
}

.team-photo {
    width: 150px;
    height: 150px;
    margin: 0 auto 1.5rem;
    border-radius: 50%;
    overflow: hidden;
    border: 4px solid var(--primary-color);
}

.team-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.team-card h3 {
    font-size: 1.5rem;
    margin-bottom: 0.5rem;
    color: var(--text-dark);
}

.team-role {
    color: var(--primary-color);
    font-weight: 600;
    margin-bottom: 1rem;
}

.team-bio {
    color: var(--text-light);
    line-height: 1.7;
}

/* Gallery */
.gallery {
    background: var(--bg-light);
}

.gallery-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 2rem;
}

.gallery-item {
    background: white;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: var(--shadow);
    transition: var(--transition);
    opacity: 0;
    transform: translateY(20px);
}

.gallery-item.animate-in {
    opacity: 1;
    transform: translateY(0);
}

.gallery-item:hover {
    transform: translateY(-8px);
    box-shadow: var(--shadow-lg);
}

.gallery-images {
    display: grid;
    grid-template-columns: 1fr 1fr;
    position: relative;
}

.gallery-before,
.gallery-after {
    position: relative;
    overflow: hidden;
}

.gallery-before img,
.gallery-after img {
    width: 100%;
    height: 250px;
    object-fit: cover;
    transition: var(--transition);
}

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

.gallery-label {
    position: absolute;
    top: 10px;
    left: 10px;
    background: rgba(0, 0, 0, 0.7);
    color: white;
    padding: 0.25rem 0.75rem;
    border-radius: 4px;
    font-size: 0.875rem;
    font-weight: 600;
}

.gallery-item h4 {
    padding: 1rem 1.5rem 0.5rem;
    font-size: 1.25rem;
    color: var(--text-dark);
}

.gallery-item p {
    padding: 0 1.5rem 1.5rem;
    color: var(--text-light);
}

/* Contact */
.contact-wrapper {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 3rem;
    align-items: start;
}

.contact-info {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.info-item {
    display: flex;
    gap: 1rem;
    align-items: start;
}

.info-item svg {
    flex-shrink: 0;
    color: var(--primary-color);
}

.info-item h4 {
    font-size: 1.125rem;
    margin-bottom: 0.5rem;
    color: var(--text-dark);
}

.info-item p {
    color: var(--text-light);
    line-height: 1.7;
}

.contact-form {
    background: white;
    padding: 2rem;
    border-radius: 12px;
    box-shadow: var(--shadow-md);
}

.form-group {
    margin-bottom: 1.5rem;
}

.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.form-group label {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: 600;
    color: var(--text-dark);
}

.form-group input,
.form-group textarea {
    width: 100%;
    padding: 0.75rem;
    border: 2px solid var(--border-color);
    border-radius: 8px;
    font-family: inherit;
    font-size: 1rem;
    transition: var(--transition);
}

.form-group input:focus,
.form-group textarea:focus {
    outline: none;
    border-color: var(--primary-color);
}

.contact-form button {
    width: 100%;
}

/* Footer */
.footer {
    background: var(--text-dark);
    color: white;
    padding: 3rem 20px 1rem;
}

.footer-content {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 2rem;
    margin-bottom: 2rem;
}

.footer-section h3,
.footer-section h4 {
    margin-bottom: 1rem;
}

.footer-section ul {
    list-style: none;
}

.footer-section ul li {
    margin-bottom: 0.5rem;
}

.footer-section a {
    color: rgba(255, 255, 255, 0.8);
    text-decoration: none;
    transition: var(--transition);
}

.footer-section a:hover {
    color: white;
}

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

.social-links a {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 50%;
    transition: var(--transition);
}

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

.footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    padding-top: 2rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
}

.footer-links {
    display: flex;
    gap: 1.5rem;
}

/* Responsive */
@media (max-width: 768px) {
    .nav-toggle {
        display: flex;
    }

    .nav-menu {
        position: fixed;
        top: 70px;
        left: 0;
        right: 0;
        background: white;
        flex-direction: column;
        padding: 2rem;
        box-shadow: var(--shadow-lg);
        transform: translateY(-100%);
        opacity: 0;
        visibility: hidden;
        transition: var(--transition);
    }

    .nav-menu.active {
        transform: translateY(0);
        opacity: 1;
        visibility: visible;
    }

    .hero-title {
        font-size: 2.5rem;
    }

    .hero-subtitle {
        font-size: 1rem;
    }

    .section-title {
        font-size: 2rem;
    }

    .contact-wrapper {
        grid-template-columns: 1fr;
    }

    .form-row {
        grid-template-columns: 1fr;
    }

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

@media (max-width: 480px) {
    .hero-title {
        font-size: 2rem;
    }

    .stat-number {
        font-size: 2rem;
    }

    .hero-stats {
        gap: 2rem;
    }

    .logo-img {
        height: 40px;
    }
}

/* Page Hero */
.page-hero {
    padding: 140px 20px 80px;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    text-align: center;
}

.page-hero h1 {
    font-size: 3rem;
    font-weight: 700;
    margin-bottom: 1rem;
}

.page-hero p {
    font-size: 1.25rem;
    opacity: 0.95;
    max-width: 700px;
    margin: 0 auto;
}

/* Treatment Detail */
.treatment-detail {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    align-items: center;
    max-width: 1200px;
    margin: 0 auto;
}

.treatment-detail.reverse {
    direction: rtl;
}

.treatment-detail.reverse > * {
    direction: ltr;
}

.treatment-content h2 {
    font-size: 2rem;
    margin-bottom: 0.5rem;
    color: var(--text-dark);
}

.treatment-content .subtitle {
    font-size: 1.125rem;
    color: var(--primary-color);
    font-weight: 600;
    margin-bottom: 1.5rem;
}

.treatment-content p {
    color: var(--text-light);
    line-height: 1.8;
    margin-bottom: 1rem;
}

.treatment-content ul {
    list-style: none;
    margin: 1.5rem 0;
}

.treatment-content ul li {
    padding-left: 1.5rem;
    position: relative;
    margin-bottom: 0.75rem;
    color: var(--text-light);
}

.treatment-content ul li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: var(--secondary-color);
    font-weight: bold;
}

.treatment-image {
    border-radius: 12px;
    overflow: hidden;
    box-shadow: var(--shadow-lg);
}

.treatment-image img {
    width: 100%;
    height: 400px;
    object-fit: cover;
    transition: var(--transition);
}

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

/* Google Maps */
.map-container {
    width: 100%;
    height: 450px;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: var(--shadow-lg);
    margin-top: 2rem;
}

.map-container iframe {
    width: 100%;
    height: 100%;
    border: none;
}

@media (max-width: 768px) {
    .page-hero h1 {
        font-size: 2rem;
    }

    .page-hero p {
        font-size: 1rem;
    }

    .treatment-detail,
    .treatment-detail.reverse {
        grid-template-columns: 1fr;
        gap: 2rem;
        direction: ltr;
    }

    .treatment-image img {
        height: 300px;
    }

    .map-container {
        height: 300px;
    }
}

/* Page Content */
.content-wrapper {
    max-width: 900px;
    margin: 0 auto;
}

.content-card {
    background: white;
    padding: 2.5rem;
    border-radius: 12px;
    box-shadow: var(--shadow);
    margin-bottom: 2rem;
}

.content-card h2 {
    font-size: 1.75rem;
    margin-bottom: 1.5rem;
    color: var(--text-dark);
}

.content-card h3 {
    font-size: 1.25rem;
    margin-bottom: 1rem;
    color: var(--text-dark);
}

.content-card h4 {
    font-size: 1.125rem;
    margin-bottom: 0.5rem;
    color: var(--text-dark);
    font-weight: 600;
}

.content-card p {
    color: var(--text-light);
    line-height: 1.8;
    margin-bottom: 1rem;
}

.content-card ul {
    margin: 1.5rem 0;
}

.styled-list {
    list-style: none;
    margin-left: 0;
}

.styled-list li {
    padding-left: 1.5rem;
    position: relative;
    margin-bottom: 1rem;
    color: var(--text-light);
    line-height: 1.7;
}

.styled-list li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: var(--secondary-color);
    font-weight: bold;
    font-size: 1.2rem;
}

.step {
    padding: 1.5rem;
    background: var(--bg-light);
    border-radius: 8px;
    margin-bottom: 1.5rem;
    border-left: 4px solid var(--primary-color);
}

.step h3 {
    margin-bottom: 0.75rem;
}

.step p {
    margin: 0;
}

.info-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1.5rem;
    margin-top: 1.5rem;
}

.info-grid .info-item {
    background: var(--bg-light);
    padding: 1.5rem;
    border-radius: 8px;
    text-align: center;
}

.info-grid .info-item h4 {
    margin-bottom: 0.5rem;
    color: var(--primary-color);
}

.info-grid .info-item p {
    margin: 0;
    color: var(--text-light);
}

.highlight-card {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    text-align: center;
}

.highlight-card h2 {
    color: white;
}

.highlight-card p {
    color: rgba(255, 255, 255, 0.95);
}

/* FAQ Styles */
.faq-wrapper {
    max-width: 900px;
    margin: 0 auto;
}

.faq-category {
    margin-bottom: 3rem;
}

.faq-category h2 {
    font-size: 1.75rem;
    margin-bottom: 1.5rem;
    color: var(--text-dark);
}

.faq-item {
    background: white;
    border-radius: 8px;
    margin-bottom: 1rem;
    box-shadow: var(--shadow);
    overflow: hidden;
    transition: var(--transition);
}

.faq-item:hover {
    box-shadow: var(--shadow-md);
}

.faq-question {
    width: 100%;
    padding: 1.5rem;
    background: none;
    border: none;
    text-align: left;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    cursor: pointer;
    font-family: inherit;
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--text-dark);
    transition: var(--transition);
}

.faq-question:hover {
    color: var(--primary-color);
}

.faq-question svg {
    flex-shrink: 0;
    color: var(--primary-color);
    transition: var(--transition);
}

.faq-item.active .faq-question svg {
    transform: rotate(180deg);
}

.faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
}

.faq-item.active .faq-answer {
    max-height: 500px;
}

.faq-answer p {
    padding: 0 1.5rem 1.5rem;
    color: var(--text-light);
    line-height: 1.8;
    margin: 0;
}

@media (max-width: 768px) {
    .content-card {
        padding: 1.5rem;
    }

    .content-card h2 {
        font-size: 1.5rem;
    }

    .faq-question {
        font-size: 1rem;
        padding: 1rem;
    }

    .faq-answer p {
        padding: 0 1rem 1rem;
    }

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

.header-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.page-hero{position:relative;background-size:cover;background-position:center}.header-overlay{position:relative;z-index:2}.team-principal{max-width:360px;margin:0 auto 2rem}.team-secondary{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}.editable-section{position:relative}.custom-block{max-width:1000px;margin:1.5rem auto;padding:2rem}.custom-block img,.custom-block video{max-width:100%;height:auto}.contact-status{margin-top:1rem}.badge-notif{background:#ef4444;color:#fff;border-radius:999px;padding:.15rem .45rem;font-size:.75rem}#edit-toolbar{position:fixed;left:0;right:0;bottom:0;z-index:20000;background:#111827;color:#fff;padding:.7rem 1rem;display:flex;gap:.7rem;align-items:center;box-shadow:0 -4px 15px #0003}#edit-toolbar button,#edit-toolbar a{background:#2563eb;color:#fff;border:0;padding:.55rem .8rem;border-radius:6px;text-decoration:none;cursor:pointer}[data-edit-key][contenteditable=true]{outline:2px dashed #2563eb;outline-offset:3px;cursor:text}.editor-section-controls{position:absolute;right:10px;top:10px;z-index:20;display:flex;gap:4px}.editor-section-controls button{border:0;background:#111827;color:white;padding:4px 8px;border-radius:4px}@media(max-width:768px){.team-secondary{grid-template-columns:1fr}.team-principal{max-width:none}}
/* Éditeur visuel */
#edit-toolbar{position:fixed;left:16px;right:16px;bottom:16px;z-index:20000;background:#111827;color:#fff;padding:10px 14px;border-radius:12px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;box-shadow:0 14px 40px rgba(0,0,0,.28)}
#edit-toolbar button,#edit-toolbar a{border:0;border-radius:7px;padding:.55rem .75rem;background:#fff;color:#111827;text-decoration:none;cursor:pointer;font:inherit}
[contenteditable=true]{outline:2px dashed transparent;transition:.2s}[contenteditable=true]:hover,[contenteditable=true]:focus{outline-color:#2563eb;background:rgba(37,99,235,.06)}
.editable-section{position:relative}body.edit-mode .editor-section-controls{position:absolute;z-index:1500;right:10px;top:10px;display:flex;gap:5px;opacity:0;transition:.2s}body.edit-mode .editable-section:hover>.editor-section-controls{opacity:1}.editor-section-controls button{border:0;background:#111827;color:#fff;border-radius:6px;padding:.4rem .55rem;cursor:pointer}
body.edit-mode .editable-image{cursor:pointer;outline:3px dashed transparent}body.edit-mode .editable-image:hover{outline-color:#2563eb}body.edit-mode .editable-header{cursor:pointer}body.edit-mode .editable-header:after{content:'Double-cliquer pour modifier l’en-tête';position:absolute;left:50%;bottom:12px;transform:translateX(-50%);background:rgba(0,0,0,.72);padding:.4rem .7rem;border-radius:6px;font-size:.8rem;opacity:0}body.edit-mode .editable-header:hover:after{opacity:1}
.editor-modal{position:fixed;inset:0;background:rgba(15,23,42,.7);z-index:30000;display:flex;align-items:center;justify-content:center;padding:20px}.editor-modal-card{background:#fff;color:#111827;width:min(540px,100%);max-height:90vh;overflow:auto;border-radius:14px;padding:24px;position:relative}.editor-modal-card.wide{width:min(760px,100%)}.modal-close{position:absolute;right:12px;top:8px;border:0;background:none;font-size:2rem;cursor:pointer}.editor-modal-card label{display:block;margin:1rem 0}.editor-modal-card input,.editor-modal-card textarea,.editor-modal-card select{width:100%;padding:.75rem;border:1px solid #cbd5e1;border-radius:8px}.block-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin:1rem 0}.block-options button,.choose-media,.upload-btn,.btn-confirm{padding:.8rem;border:1px solid #cbd5e1;border-radius:9px;background:#f8fafc;cursor:pointer;text-align:center}.block-options button.selected{border-color:#2563eb;background:#eff6ff;color:#1d4ed8}.btn-confirm{background:#2563eb;color:#fff;border:0;width:100%;margin-top:1rem}.btn-confirm:disabled{opacity:.5}.or{text-align:center;color:#64748b;margin:.5rem}.editor-two-col{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:center}.content-image{max-width:100%;height:auto;border-radius:12px}.video-wrap{position:relative;padding-top:56.25%}.video-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.custom-block{min-height:80px}
@media(max-width:768px){.editor-two-col{grid-template-columns:1fr}#edit-toolbar{left:5px;right:5px;bottom:5px;font-size:.8rem}}
.header-video-frame{border:0;pointer-events:none;transform:scale(1.25)}

.setup-link{display:block;text-align:center;margin-top:1rem;color:#2563eb;text-decoration:none}.legal-content h2{margin-top:2rem}.legal-content ul{padding-left:1.3rem}.legal-content p,.legal-content li{line-height:1.75}.faq-admin-actions{display:flex;gap:.5rem;flex-wrap:wrap}


/* Amélioration des actions et du formulaire de contact */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;line-height:1.2;margin:0;vertical-align:middle}
.hero-buttons,.form-actions,.section-header>.btn{margin-top:1.75rem}
.hero-buttons .btn{margin:0}
.section-header>.btn+.btn{margin-left:.75rem}
.contact{background:var(--bg-light)}
.contact-wrapper{gap:3.5rem}
.contact-form{border:1px solid #d9e0ea;box-shadow:0 12px 32px rgb(15 23 42 / .12);padding:2.25rem;background:#fff}
.contact-form .form-group{margin-bottom:1.35rem}
.contact-form label{line-height:1.45}
.contact-form input,.contact-form textarea{background:#fff;border-color:#cbd5e1}
.contact-form input:hover,.contact-form textarea:hover{border-color:#94a3b8}
.contact-form input:focus,.contact-form textarea:focus{border-color:var(--primary-color);box-shadow:0 0 0 4px rgb(37 99 235 / .12)}
.required-note{text-align:right;font-size:.86rem;color:var(--text-light);margin:0 0 1.2rem}
.required-star{color:#dc2626;font-weight:800}
.consent-check{display:flex!important;gap:.75rem;align-items:flex-start;font-size:.92rem;font-weight:400!important;color:var(--text-light);margin:1rem 0 0;cursor:pointer}
.consent-check input{width:18px!important;height:18px;margin:.15rem 0 0;flex:0 0 auto;accent-color:var(--primary-color)}
.consent-check a{color:var(--primary-color);font-weight:600}
.form-actions{display:flex;align-items:center;gap:1rem;margin-top:1.6rem}
.contact-status{min-height:1.5rem;margin:1rem 0 0;font-weight:600}
@media(max-width:768px){.contact-form{padding:1.35rem}.form-actions .btn{width:100%}.section-header>.btn+.btn{margin-left:0;margin-top:.75rem}}

/* Réseaux sociaux et vidéos de première visite */
.social-links svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8}.social-links a[aria-label="TikTok"] svg{fill:currentColor;stroke:none}
.visit-videos{margin-top:3rem}.presentation-video-card{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);gap:2rem;align-items:center}.presentation-video-card .video-wrap{border-radius:12px;overflow:hidden;background:#0f172a;box-shadow:var(--shadow-md)}.presentation-video-card video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000}
@media(max-width:768px){.presentation-video-card{grid-template-columns:1fr}}

/* Réseaux sociaux flottants */
.floating-socials{
    position:fixed;
    left:14px;
    top:50%;
    transform:translateY(-50%);
    z-index:950;
    display:flex;
    flex-direction:column;
    gap:.7rem;
    padding:.55rem;
    border:1px solid rgba(226,232,240,.95);
    border-radius:16px;
    background:rgba(255,255,255,.92);
    box-shadow:0 12px 32px rgba(15,23,42,.16);
    backdrop-filter:blur(12px);
}
.floating-socials a,.floating-socials .social-placeholder{
    width:46px;height:46px;border-radius:13px;display:flex;align-items:center;justify-content:center;
    color:var(--text-dark);background:#fff;border:1px solid var(--border-color);transition:var(--transition);
    position:relative;text-decoration:none;
}
.floating-socials a:hover{color:var(--primary-color);transform:translateX(4px);box-shadow:var(--shadow-md)}
.floating-socials .social-placeholder{opacity:.55;cursor:default}
.floating-socials svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8}
.floating-socials [aria-label^="TikTok"] svg{fill:currentColor;stroke:none}
.floating-socials span span,.floating-socials a span{position:absolute;left:58px;white-space:nowrap;background:#111827;color:#fff;border-radius:6px;padding:.3rem .55rem;font-size:.78rem;opacity:0;pointer-events:none;transform:translateX(-4px);transition:.2s}
.floating-socials a:hover span,.floating-socials .social-placeholder:hover span{opacity:1;transform:translateX(0)}

/* Page Première visite : vidéos et carte */
.visit-cabinet-intro{padding-bottom:40px}
.visit-cabinet-intro .container{max-width:1050px}
.presentation-media{position:relative;aspect-ratio:16/9;border-radius:16px;overflow:hidden;background:#0f172a;box-shadow:var(--shadow-lg)}
.presentation-media iframe,.presentation-media video{position:absolute;inset:0;width:100%;height:100%;border:0;object-fit:contain;background:#000}
.video-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem;color:#e2e8f0;background:linear-gradient(135deg,#0f172a,#334155)}
.video-placeholder-icon{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.12);font-size:1.7rem;margin-bottom:1rem;padding-left:4px}
.video-placeholder strong{font-size:1.1rem;margin-bottom:.45rem}.video-placeholder small{max-width:480px;color:#cbd5e1}
.visit-bottom{background:var(--bg-light)}
.visit-bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:stretch}
.visit-panel{margin:0;display:flex;flex-direction:column;gap:1.25rem}
.visit-panel-heading h2{margin-bottom:.55rem}.visit-panel-heading p{margin:0}
.visit-panel .presentation-media,.visit-panel .map-container{margin-top:auto;aspect-ratio:16/10;height:auto;min-height:300px}
.visit-panel .map-container{width:100%;border-radius:16px;overflow:hidden;box-shadow:var(--shadow-lg)}
.visit-panel .map-container iframe{width:100%;height:100%;border:0}

/* Les contenus natifs sont clairement éditables uniquement en mode édition */
body.edit-mode [data-edit-key]{outline:2px dashed transparent;outline-offset:4px;cursor:text}
body.edit-mode [data-edit-key]:hover{outline-color:#2563eb;background:rgba(37,99,235,.05)}

@media(max-width:900px){
    .visit-bottom-grid{grid-template-columns:1fr}
    .floating-socials{left:8px;top:auto;bottom:18px;transform:none;flex-direction:row}
    .floating-socials span span,.floating-socials a span{display:none}
}
@media(max-width:600px){
    .floating-socials{left:50%;transform:translateX(-50%);bottom:12px}
    body{padding-bottom:72px}
}

/* Thème dynamique, médias automatiques et accès flottants */
h1,h2,h3,h4,h5,h6{color:var(--heading-color,var(--text-dark))}.service-card,.team-card,.content-card,.contact-form{border-color:var(--theme-100);box-shadow:0 10px 30px color-mix(in srgb,var(--primary-color) 10%,transparent)}.btn-primary{background:var(--primary-color)}.page-hero{isolation:isolate}.header-video,.header-media-overlay{position:absolute;inset:0;width:100%;height:100%}.header-video{object-fit:cover;border:0;z-index:-2}.header-media-overlay{z-index:-1;pointer-events:none}.video-wrap video{width:100%;height:100%;object-fit:cover}.floating-socials.pos-left{left:14px;right:auto;top:var(--social-offset);bottom:auto;transform:translateY(-50%)}.floating-socials.pos-right{right:14px;left:auto;top:var(--social-offset);bottom:auto;transform:translateY(-50%)}.floating-socials.pos-right a:hover{transform:translateX(-4px)}.floating-socials.pos-bottom{left:50%;right:auto;top:auto;bottom:18px;transform:translateX(-50%);flex-direction:row}.social-preview-modal{position:fixed;inset:0;background:rgb(15 23 42/.62);z-index:12000;display:grid;place-items:center;padding:1rem}.social-preview-modal[hidden]{display:none}.social-preview-card{position:relative;width:min(420px,100%);background:#fff;border-radius:22px;padding:2rem;text-align:center;box-shadow:0 28px 80px rgb(15 23 42/.35)}.social-preview-card>img{width:110px;height:110px;border-radius:50%;object-fit:cover}.social-preview-avatar{width:92px;height:92px;margin:auto;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#f59e0b,#ec4899,#7c3aed);color:#fff}.social-preview-avatar svg{width:46px;height:46px;fill:none;stroke:currentColor;stroke-width:1.8}.social-preview-close{position:absolute;right:14px;top:10px;border:0;background:none;font-size:2rem;cursor:pointer}.theme-preview{display:flex;height:52px;border-radius:10px;overflow:hidden;margin:1rem 0 2rem}.theme-preview span{flex:1}.social-checks{display:flex;flex-wrap:wrap;gap:1rem;margin:1rem 0}.social-checks label{display:flex;align-items:center;gap:.4rem}.form-grid .full{grid-column:1/-1}
.element-style-panel{position:fixed;z-index:15000;width:min(320px,calc(100vw - 16px));background:#fff;color:#1f2937;border:1px solid #cbd5e1;border-radius:12px;padding:1rem;box-shadow:0 20px 55px rgba(15,23,42,.28)}
.element-style-panel>strong{display:block;margin-bottom:.75rem}.element-style-panel label{display:grid;grid-template-columns:78px 1fr;align-items:center;gap:.65rem;margin:.55rem 0;font-size:.9rem}.element-style-panel input,.element-style-panel select{width:100%;padding:.45rem;border:1px solid #cbd5e1;border-radius:7px}.element-style-panel input[type=color]{height:38px;padding:3px}.element-style-panel>div{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.85rem}.element-style-panel button{border:0;border-radius:7px;padding:.55rem .75rem;cursor:pointer;background:#e2e8f0}.element-style-panel button[data-apply]{background:#2563eb;color:#fff}
.edit-mode [data-edit-key]{cursor:text}.edit-mode [data-edit-key]:hover{outline:2px dashed rgba(37,99,235,.5);outline-offset:3px}

/* Images de fond des encarts Technologies */
.service-card.editable-tech-card{position:relative;overflow:hidden;isolation:isolate;background:var(--bg-white)}
.service-card.editable-tech-card.has-tech-bg::before{content:"";position:absolute;inset:0;background-image:var(--tech-bg-image);background-size:cover;background-position:center;opacity:var(--tech-bg-opacity,.28);z-index:-1;transition:opacity .25s ease,transform .35s ease}
.service-card.editable-tech-card.has-tech-bg:hover::before{transform:scale(1.035)}
.service-card-content{position:relative;z-index:1}
body.edit-mode .tech-bg-edit{position:absolute;right:10px;bottom:10px;z-index:20;border:0;border-radius:999px;padding:.48rem .7rem;background:rgba(15,23,42,.88);color:#fff;cursor:pointer;font-size:.78rem;box-shadow:0 4px 15px rgba(0,0,0,.22)}
body:not(.edit-mode) .tech-bg-edit{display:none}
.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;flex-wrap:wrap;margin-top:1rem}
@media(max-width:900px){body.edit-mode #edit-toolbar{display:none!important}}
.instagram-live-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-height:65vh;overflow:auto;margin:1rem 0}.instagram-live-grid .instagram-media{min-width:0!important;width:100%!important;margin:0!important}.instagram-preview-note{font-size:.85rem;color:#64748b}.social-preview-card.instagram-wide{width:min(900px,96vw);max-width:96vw}.instagram-profile-head{display:flex;align-items:center;gap:12px;text-align:left}.instagram-profile-head .social-preview-avatar{flex:0 0 auto}.instagram-profile-head h3{margin:0}.instagram-profile-head p{margin:.2rem 0 0}
@media(max-width:700px){.instagram-live-grid{grid-template-columns:1fr}}

/* V14 — édition des fonds Technologies et aperçus sociaux */
body.edit-mode .editable-tech-card{min-height:210px;padding-bottom:4.5rem;outline:1px solid color-mix(in srgb,var(--primary-color) 28%,transparent)}
body.edit-mode .editable-tech-card:hover{outline:3px solid color-mix(in srgb,var(--primary-color) 55%,transparent);outline-offset:2px}
body.edit-mode .tech-bg-edit{display:inline-flex!important;align-items:center;gap:.38rem;right:12px;bottom:12px;padding:.65rem .9rem;font-size:.86rem;font-weight:700;background:#111827;color:#fff;border:2px solid #fff;box-shadow:0 8px 24px rgba(0,0,0,.3)}
body.edit-mode .tech-bg-edit:hover{transform:translateY(-2px);background:#000}
body.edit-mode .tech-bg-edit:disabled{opacity:.65;cursor:wait}
.tech-preview{height:170px;border-radius:12px;background:#eef2f7 center/cover no-repeat;display:grid;place-items:center;margin:1rem 0;border:1px solid #cbd5e1;overflow:hidden;transition:opacity .2s ease}
.tech-preview span{background:rgba(15,23,42,.76);color:#fff;padding:.4rem .7rem;border-radius:999px;font-size:.82rem}

.social-live-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-height:65vh;overflow:auto;margin:1rem 0;padding:.25rem}
.social-live-grid>*{min-width:0!important;max-width:100%!important;margin:0 auto!important}
.social-live-grid .social-video-embed{width:100%;aspect-ratio:16/9;border:0;border-radius:12px;background:#000}
.social-live-grid .facebook-post-embed{width:100%!important;min-height:480px;border-radius:12px;background:#fff}
.social-live-grid.network-tiktok .tiktok-embed{width:100%!important;min-width:0!important}
.social-preview-avatar.network-tiktok{background:#111}
.social-preview-avatar.network-facebook{background:#1877f2}
.social-preview-avatar.network-youtube{background:#ff0000}
body.modal-open{overflow:hidden}
.social-preview-settings{margin:1rem 0;border:1px solid #dbe2ea;border-radius:10px;padding:.8rem 1rem;background:#fafcfe}
.social-preview-settings summary{cursor:pointer;font-weight:700}
@media(max-width:760px){.social-live-grid{grid-template-columns:1fr}.social-live-grid .facebook-post-embed{min-height:420px}}

/* Transition homogène entre les pages */
html { scroll-behavior: smooth; scroll-padding-top: 88px; }
.page-transition {
    position: fixed;
    inset: 0;
    z-index: 20000;
    display: grid;
    place-items: center;
    background: linear-gradient(135deg, var(--banner-start, var(--theme-100)), var(--banner-end, var(--theme-300)));
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity var(--transition-in-duration,.38s) ease, visibility var(--transition-in-duration,.38s) ease;
}
.page-transition::before {
    content: '';
    position: absolute;
    inset: 0;
    background: color-mix(in srgb, var(--nav-bg, white) 74%, transparent);
    backdrop-filter: blur(8px);
}
.page-transition.active {
    opacity: 1;
    visibility: visible;
    pointer-events: all;
}
.page-transition.hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}
.page-transition-inner {
    position: relative;
    z-index: 1;
    width: min(180px, 42vw);
    padding: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    transform: translateY(8px) scale(.96);
    opacity: 0;
    transition: transform var(--transition-in-duration,.38s) ease, opacity var(--transition-in-duration,.38s) ease;
}
.page-transition.active .page-transition-inner {
    transform: translateY(0) scale(1);
    opacity: 1;
}
.page-transition-logo {
    display: block;
    width: 100%;
    height: auto;
    max-height: 110px;
    object-fit: contain;
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .page-transition, .page-transition-inner { transition-duration: .01ms; }
}

.page-transition.leaving{transition-duration:var(--transition-in-duration,.38s)}
.page-transition.revealing{transition-duration:var(--transition-out-duration,.38s)}
.page-transition.revealing .page-transition-inner{transition-duration:var(--transition-out-duration,.38s)}

/* Gestion des cookies */
.cookie-banner{position:fixed;inset:0;z-index:25000;display:grid;place-items:end center;padding:1.25rem;background:rgba(20,20,20,.28);backdrop-filter:blur(3px)}.cookie-banner[hidden]{display:none}.cookie-card{width:min(920px,100%);background:var(--bg-white);color:var(--text-dark);border:1px solid color-mix(in srgb,var(--primary-color) 24%,transparent);border-radius:18px;box-shadow:0 20px 60px rgba(0,0,0,.18);padding:1.25rem 1.4rem;display:grid;grid-template-columns:1fr auto;gap:1rem 1.5rem;align-items:center}.cookie-card strong{font-size:1.08rem;color:var(--heading-color)}.cookie-card p{margin:.35rem 0 0}.cookie-card>a{font-size:.9rem}.cookie-actions{display:flex;gap:.7rem;flex-wrap:wrap}.cookie-settings-button{position:fixed;right:14px;bottom:14px;z-index:9000;border:1px solid color-mix(in srgb,var(--primary-color) 35%,transparent);background:var(--bg-white);color:var(--text-dark);border-radius:999px;padding:.6rem .9rem;box-shadow:0 8px 24px rgba(0,0,0,.12);cursor:pointer;font-weight:700}.external-consent-placeholder{padding:1.5rem;border:1px dashed color-mix(in srgb,var(--primary-color) 45%,transparent);border-radius:12px;background:var(--bg-light);text-align:center}.external-consent-placeholder p{margin:0 0 .8rem}@media(max-width:760px){.cookie-card{grid-template-columns:1fr}.cookie-actions{width:100%}.cookie-actions .btn{flex:1}.cookie-settings-button{font-size:.8rem}}

/* V20 — annonces publiques */
.site-announcement.banner{position:relative;z-index:900;margin-top:78px;padding:.8rem 3.5rem .8rem 1rem;display:flex;justify-content:center;gap:.7rem;align-items:center;background:color-mix(in srgb,var(--primary-color) 82%,transparent);color:#fff;backdrop-filter:blur(12px);box-shadow:0 8px 24px #0002}.site-announcement button{position:absolute;right:1rem;top:50%;transform:translateY(-50%);border:0;background:transparent;color:inherit;font-size:1.5rem;cursor:pointer}.site-announcement-modal{position:fixed;inset:0;z-index:20000;background:#0f172a88;display:grid;place-items:center;padding:1rem}.site-announcement.modal-card{position:relative;width:min(560px,96vw);padding:2rem 3.5rem 2rem 2rem;border-radius:18px;background:color-mix(in srgb,var(--bg-white) 94%,var(--primary-color));color:var(--text-dark);box-shadow:0 30px 80px #0005}.site-announcement.modal-card strong{display:block;font-size:1.35rem;margin-bottom:.55rem}.site-announcement.modal-card button{color:var(--text-dark)}@media(max-width:700px){.site-announcement.banner{margin-top:70px;display:block;padding-right:3rem}.site-announcement.banner strong{display:block}}


/* V21 — barre flottante, pied de page et annonces */
.floating-socials.pos-left,.floating-socials.pos-right{flex-direction:column!important}
.floating-socials.pos-bottom{flex-direction:row!important}
@media(max-width:900px){
  .floating-socials.pos-left{left:8px!important;right:auto!important;top:var(--social-offset)!important;bottom:auto!important;transform:translateY(-50%)!important;flex-direction:column!important}
  .floating-socials.pos-right{right:8px!important;left:auto!important;top:var(--social-offset)!important;bottom:auto!important;transform:translateY(-50%)!important;flex-direction:column!important}
  .floating-socials.pos-bottom{left:50%!important;right:auto!important;top:auto!important;bottom:12px!important;transform:translateX(-50%)!important;flex-direction:row!important}
}
@media(max-width:600px){body{padding-bottom:0}.floating-socials.pos-bottom~*{} }
.footer-links{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}
.footer-links a,.footer-cookie-button{appearance:none;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);color:#fff!important;text-decoration:none;border-radius:999px;padding:.58rem .9rem;font:inherit;font-size:.9rem;cursor:pointer;transition:.2s ease}
.footer-links a:hover,.footer-cookie-button:hover{background:rgba(255,255,255,.17);transform:translateY(-1px)}
.cookie-settings-button{display:none!important}
.site-announcement.banner{position:sticky;top:78px;z-index:980;margin-top:78px;border-bottom:1px solid rgba(255,255,255,.22)}
.site-announcement-modal{backdrop-filter:blur(8px);background:rgba(15,23,42,.66)}
.site-announcement.modal-card{overflow:hidden;width:min(620px,94vw);padding:0;border-radius:24px;background:var(--bg-white);box-shadow:0 36px 100px rgba(0,0,0,.38);border:1px solid color-mix(in srgb,var(--primary-color) 22%,transparent)}
.site-announcement.modal-card::before{content:"";display:block;height:10px;background:linear-gradient(90deg,var(--primary-color),var(--secondary-color))}
.site-announcement.modal-card strong{display:block;padding:1.7rem 4rem .35rem 1.8rem;font-size:1.55rem;line-height:1.25;color:var(--heading-color)}
.site-announcement.modal-card span{display:block;padding:0 1.8rem 1.8rem;font-size:1.03rem;line-height:1.75;color:var(--text-dark)}
.site-announcement.modal-card button{right:1rem;top:1rem;transform:none;width:40px;height:40px;border-radius:50%;background:color-mix(in srgb,var(--primary-color) 10%,transparent);display:grid;place-items:center;font-size:1.55rem}
@media(max-width:700px){.site-announcement.banner{top:70px;margin-top:70px}.site-announcement.modal-card strong{padding:1.4rem 3.6rem .35rem 1.3rem}.site-announcement.modal-card span{padding:0 1.3rem 1.4rem}}
/* Annonces fixes et visibles sous le menu */
:root{--announcement-height:0px}
.site-announcement.banner{position:fixed!important;top:78px!important;left:0;right:0;z-index:1200!important;margin:0!important;min-height:58px;padding:.85rem 4rem .85rem 1.25rem;display:flex!important;align-items:center;justify-content:center;background:color-mix(in srgb,var(--primary-color) 88%,transparent);color:#fff;backdrop-filter:blur(16px);box-shadow:0 10px 28px rgba(0,0,0,.18)}
.site-announcement.banner .announcement-copy{text-align:center;display:flex;gap:.65rem;align-items:center;justify-content:center;flex-wrap:wrap}.site-announcement.banner strong{font-size:1rem}.site-announcement.banner span{line-height:1.45}.announcement-spacer{height:var(--announcement-height)}
.site-announcement-modal{position:fixed;inset:0;z-index:22000;display:grid;place-items:center;padding:1rem;background:rgba(32,28,24,.58);backdrop-filter:blur(10px)}
.site-announcement.modal-card{position:relative;width:min(620px,94vw);padding:2.2rem 2rem 2rem 7.2rem!important;border-radius:28px!important;background:linear-gradient(145deg,#fff,var(--surface-color));color:var(--text-dark);box-shadow:0 38px 110px rgba(0,0,0,.38);border:1px solid color-mix(in srgb,var(--primary-color) 24%,transparent);overflow:visible!important}
.site-announcement.modal-card::before{display:none!important}.announcement-icon{position:absolute;left:2rem;top:2rem;width:70px;height:70px;border-radius:22px;display:grid;place-items:center;background:linear-gradient(145deg,var(--primary-color),var(--secondary-color));color:#fff;font:700 2rem/1 var(--font-secondary);box-shadow:0 12px 28px color-mix(in srgb,var(--primary-color) 35%,transparent)}
.site-announcement.modal-card .announcement-copy strong{display:block;padding:0!important;margin:0 0 .65rem;font-size:1.6rem;color:var(--heading-color)}.site-announcement.modal-card .announcement-copy span{display:block;padding:0!important;font-size:1.05rem;line-height:1.75;color:var(--text-dark)}
.site-announcement.modal-card button{right:1rem;top:1rem;transform:none;width:42px;height:42px;border-radius:50%;background:color-mix(in srgb,var(--primary-color) 11%,transparent);color:var(--text-dark)}
@media(max-width:700px){.site-announcement.banner{top:70px!important;min-height:54px;padding:.75rem 3.4rem .75rem 1rem}.site-announcement.banner .announcement-copy{display:block;text-align:left}.site-announcement.banner strong{display:block;margin-bottom:.15rem}.site-announcement.modal-card{padding:5.8rem 1.35rem 1.5rem!important}.announcement-icon{left:1.35rem;top:1.25rem;width:54px;height:54px;border-radius:17px}}

/* V23 — Annonces et navigation mobile */
.navbar{z-index:1800!important}
.site-announcement.banner{z-index:1700!important}
@media(max-width:768px){
  .nav-menu{z-index:1900!important;top:70px!important}
  .nav-menu.active{z-index:1900!important}
  .site-announcement.banner{top:70px!important;z-index:1700!important}
}

/* V24 — modal d’annonce plus clair tout en conservant le flou */
.site-announcement-modal{
  background:rgba(45,39,33,.38)!important;
  backdrop-filter:blur(10px) saturate(105%)!important;
  -webkit-backdrop-filter:blur(10px) saturate(105%)!important;
}
.site-announcement.modal-card{
  background:linear-gradient(145deg,rgba(255,255,255,.98),color-mix(in srgb,var(--surface-color) 82%,white))!important;
  color:#302b27!important;
  border-color:color-mix(in srgb,var(--primary-color) 18%,#fff)!important;
  box-shadow:0 34px 100px rgba(35,29,24,.28)!important;
}
.site-announcement.modal-card .announcement-copy strong{color:#332d28!important}
.site-announcement.modal-card .announcement-copy span{color:#514941!important}
.site-announcement.modal-card button{background:rgba(255,255,255,.78)!important;color:#332d28!important;border:1px solid rgba(70,58,48,.12)!important}

/* V32 — médias recadrables, transition et fiches technologies */
.page-transition-logo{width:clamp(180px,24vw,320px)!important;max-height:46vh;object-fit:contain;filter:none!important;box-shadow:none!important;background:transparent!important;border:0!important}
@media(max-width:600px){.page-transition-logo{width:min(62vw,240px)!important}}

.page-hero{overflow:hidden;background-position:var(--header-pos-x,50%) var(--header-pos-y,50%);background-repeat:no-repeat}
.page-hero .header-video{object-position:var(--header-pos-x,50%) var(--header-pos-y,50%);transform:scale(var(--header-zoom,1));transform-origin:var(--header-pos-x,50%) var(--header-pos-y,50%)}
.page-hero .header-video-frame{width:100%;height:100%;transform:scale(calc(var(--header-zoom,1) * 1.02));transform-origin:var(--header-pos-x,50%) var(--header-pos-y,50%)}

.service-card.editable-tech-card.has-tech-bg::before{background-position:var(--tech-bg-x,50%) var(--tech-bg-y,50%);transform:scale(var(--tech-bg-zoom,1));transform-origin:var(--tech-bg-x,50%) var(--tech-bg-y,50%)}
.service-card.editable-tech-card.has-tech-bg:hover::before{transform:scale(calc(var(--tech-bg-zoom,1) * 1.035))}
.service-card.editable-tech-card{cursor:pointer}
.service-card.editable-tech-card:focus-visible{outline:3px solid var(--primary-color);outline-offset:4px}
.tech-more-hint{display:inline-flex;margin-top:1rem;font-size:.82rem;font-weight:700;color:var(--primary-dark);align-items:center;gap:.35rem}
.tech-more-hint::after{content:'→';transition:transform .2s ease}.service-card:hover .tech-more-hint::after{transform:translateX(4px)}
body.edit-mode .tech-more-hint{display:none}

.crop-enabled{object-position:var(--image-x,50%) var(--image-y,50%)!important;transform:scale(var(--image-zoom,1));transform-origin:var(--image-x,50%) var(--image-y,50%)}
.treatment-image{overflow:hidden}

.tech-preview{position:relative;overflow:hidden;background-size:calc(100% * var(--preview-zoom,1));background-position:var(--preview-x,50%) var(--preview-y,50%);background-repeat:no-repeat}
.tech-preview::before{content:'';position:absolute;inset:0;background:inherit;opacity:var(--preview-opacity,1);pointer-events:none}
.tech-preview>span{position:relative;z-index:1}
.crop-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1rem 0}
.crop-grid label{margin:0}.crop-grid input[type=range]{width:100%}
.image-crop-preview{height:260px;overflow:hidden;border-radius:14px;background:#eee;margin:1rem 0;display:grid;place-items:center}
.image-crop-preview img{width:100%;height:100%;object-fit:cover;transition:transform .15s ease,object-position .15s ease}
@media(max-width:700px){.crop-grid{grid-template-columns:1fr}}

.technology-detail-modal{position:fixed;inset:0;z-index:13000;background:rgb(25 22 19/.58);backdrop-filter:blur(12px);display:grid;place-items:center;padding:1.25rem}
.technology-detail-modal[hidden]{display:none}
.technology-detail-card{position:relative;width:min(980px,100%);max-height:min(86vh,760px);overflow:auto;display:grid;grid-template-columns:minmax(300px,.9fr) minmax(340px,1.1fr);background:color-mix(in srgb,var(--bg-white) 96%,white);border:1px solid color-mix(in srgb,var(--primary-color) 18%,transparent);border-radius:28px;box-shadow:0 30px 90px rgb(0 0 0/.28)}
.technology-detail-media{min-height:480px;overflow:hidden;background:var(--bg-light)}
.technology-detail-media[hidden]{display:none}
.technology-detail-media img{width:100%;height:100%;min-height:480px;object-fit:cover;transition:transform .25s ease}
.technology-detail-content{padding:clamp(2rem,5vw,4rem);display:flex;flex-direction:column;justify-content:center}
.technology-detail-kicker{margin:0 0 .6rem;text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;font-weight:800;color:var(--primary-dark)}
.technology-detail-content h2{margin:.2rem 0 1rem;font-size:clamp(1.8rem,4vw,3rem)}
.technology-detail-summary{font-size:1.12rem;font-weight:650;color:var(--primary-dark);line-height:1.6}
.technology-detail-description{white-space:pre-line;line-height:1.8;color:var(--text-dark)}
.technology-detail-close{position:absolute;right:16px;top:14px;z-index:2;width:44px;height:44px;border:0;border-radius:50%;background:rgb(255 255 255/.9);font-size:2rem;line-height:1;cursor:pointer;box-shadow:0 8px 25px rgb(0 0 0/.15)}
@media(max-width:760px){.technology-detail-card{grid-template-columns:1fr}.technology-detail-media,.technology-detail-media img{min-height:260px;max-height:310px}.technology-detail-content{padding:1.6rem}}

/* Icônes sociales : thème ou couleurs officielles */
.floating-socials.icon-style-brand a[data-track-social="instagram"],.floating-socials.icon-style-brand .social-placeholder:has(svg){color:#fff}
.floating-socials.icon-style-brand a[data-track-social="instagram"]{background:radial-gradient(circle at 30% 105%,#fdf497 0 5%,#fd5949 38%,#d6249f 62%,#285AEB 100%);border-color:transparent}
.floating-socials.icon-style-brand a[data-track-social="tiktok"]{background:#111;color:#fff;border-color:#111;box-shadow:3px 0 0 #25f4ee,-3px 0 0 #fe2c55}
.floating-socials.icon-style-brand a[data-track-social="facebook"]{background:#1877f2;color:#fff;border-color:#1877f2}
.floating-socials.icon-style-brand a[data-track-social="youtube"]{background:#ff0000;color:#fff;border-color:#ff0000}
.floating-socials.icon-style-brand a[data-track-social="calendar"],.floating-socials.icon-style-brand a[data-track-social="phone"],.floating-socials.icon-style-brand a[data-track-social="maps"]{background:#fff;color:var(--primary-dark)}

/* Adresse compacte et lisible */
.contact-info .info-item p,.footer .footer-section p[data-edit-key="site.address"]{line-height:1.45!important;margin:0!important;white-space:normal}
.footer .footer-section p[data-edit-key="site.address"] br,.contact-info .info-item p br{content:'';display:block;margin:.08rem 0}

/* Informations pratiques */
.practical-doc-icons{display:flex;justify-content:center;align-items:flex-start;gap:.85rem;margin:0 0 1rem;flex-wrap:wrap}
.practical-doc-card{margin:0;width:min(132px,46%);text-align:center}
.practical-doc-card img{display:block;width:100%;height:78px;object-fit:contain;background:#fff;border:1px solid color-mix(in srgb,var(--primary-color) 20%,#ddd);border-radius:10px;padding:4px;box-shadow:0 5px 14px rgba(0,0,0,.08)}
.practical-doc-card figcaption{margin-top:.38rem;font-size:.78rem;font-weight:600;line-height:1.2;color:var(--text-light)}
.info-grid .info-item.documents-item{display:block}
@media (max-width:480px){.practical-doc-card{width:min(118px,46%)}.practical-doc-card img{height:70px}}

/* V33 — recadrage visuel direct et adresses compactes */
.address-lines{display:flex!important;flex-direction:column!important;gap:.12rem!important;line-height:1.35!important;margin:0!important;padding:0!important}
.address-line{display:block!important;margin:0!important;padding:0!important;min-height:0!important}
.contact-info .info-item p:has(.address-lines),.footer .footer-section p:has(.address-lines){margin:0!important;padding:0!important;line-height:1.35!important}

.live-crop-stage{position:relative;height:min(48vh,420px);min-height:300px;overflow:hidden;border-radius:18px;background:repeating-conic-gradient(#eee 0 25%,#f8f8f8 0 50%) 50%/24px 24px;border:1px solid rgba(0,0,0,.12);margin:1rem 0;touch-action:none;cursor:grab;user-select:none}
.live-crop-stage.is-dragging{cursor:grabbing}
.live-crop-stage img,.live-crop-stage video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;transform-origin:50% 50%;max-width:none;pointer-events:none;will-change:transform}
.live-crop-stage .crop-overlay{position:absolute;inset:0;pointer-events:none;background:rgba(0,0,0,var(--crop-overlay,0));z-index:2}
.live-crop-stage .crop-help{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);z-index:4;background:rgba(20,20,20,.72);color:white;padding:.48rem .75rem;border-radius:999px;font-size:.78rem;white-space:nowrap;backdrop-filter:blur(8px)}
.live-crop-stage .crop-empty{position:absolute;inset:0;display:grid;place-items:center;color:#666;font-weight:700;z-index:1}
.editor-modal-card.crop-workspace{width:min(980px,calc(100vw - 2rem))!important}
.crop-toolbar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;align-items:end}
.crop-toolbar label{margin:0}.crop-toolbar input[type=range]{width:100%}
.crop-quick-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin:.8rem 0 0}
.crop-quick-actions button{padding:.55rem .8rem;border-radius:9px;border:1px solid var(--border-color);background:var(--bg-white);cursor:pointer}
@media(max-width:760px){.crop-toolbar{grid-template-columns:1fr 1fr}.live-crop-stage{min-height:240px;height:36vh}}

/* V35 — centrage fiable du logo de transition sur mobile */
.page-transition-inner{
    width:100%!important;
    max-width:100vw!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:0 20px!important;
    margin:0!important;
    box-sizing:border-box!important;
}
.page-transition-logo{
    display:block!important;
    width:clamp(180px,24vw,320px)!important;
    max-width:calc(100vw - 40px)!important;
    height:auto!important;
    margin:0 auto!important;
    object-fit:contain!important;
    object-position:center center!important;
    flex:0 0 auto!important;
}
@media(max-width:600px){
    .page-transition-inner{
        padding:0 16px!important;
    }
    .page-transition-logo{
        width:min(62vw,240px)!important;
        max-width:calc(100vw - 32px)!important;
        margin-left:auto!important;
        margin-right:auto!important;
    }
}


/* V36 — équipe, première visite responsive, transitions et couleurs officielles */
.team-photo{position:relative;overflow:hidden}.team-photo img{will-change:transform;transition:transform .25s ease}
.visit-bottom-grid>*{min-width:0;max-width:100%}.visit-panel{min-width:0;overflow:hidden}.visit-panel .presentation-media,.visit-panel .map-container{width:100%;max-width:100%;min-width:0;min-height:0!important;height:auto!important;aspect-ratio:16/10}.visit-panel iframe,.visit-panel video{max-width:100%!important}
@media(max-width:900px){.visit-bottom{padding-left:0!important;padding-right:0!important}.visit-bottom>.container{width:100%;max-width:100%;padding-left:16px;padding-right:16px}.visit-bottom-grid{display:flex!important;flex-direction:column!important;gap:1.25rem!important;width:100%;max-width:100%;overflow:hidden}.visit-panel{width:100%!important;padding:1rem!important;box-sizing:border-box}.visit-panel .presentation-media,.visit-panel .map-container{aspect-ratio:16/9!important;width:100%!important;max-width:100%!important}.visit-panel .map-container iframe,.visit-panel .presentation-media iframe,.visit-panel .presentation-media video{width:100%!important;height:100%!important;max-width:100%!important;display:block}}
@media(max-width:480px){.visit-bottom>.container{padding-left:10px;padding-right:10px}.visit-panel{padding:.8rem!important;border-radius:12px}.visit-panel .presentation-media,.visit-panel .map-container{border-radius:12px!important}}

/* Transition plus douce et flottante, en conservant les durées réglées en admin */
.page-transition{transition-property:opacity,visibility;transition-timing-function:cubic-bezier(.22,.61,.36,1)!important}
.page-transition::before{backdrop-filter:blur(12px) saturate(.92);transition:backdrop-filter var(--transition-out-duration,.38s) cubic-bezier(.22,.61,.36,1)}
.page-transition-inner{transform:translate3d(0,22px,0) scale(.92)!important;filter:blur(3px);transition:transform var(--transition-in-duration,.38s) cubic-bezier(.16,1,.3,1),opacity var(--transition-in-duration,.38s) ease,filter var(--transition-in-duration,.38s) ease!important}
.page-transition.active .page-transition-inner{transform:translate3d(0,0,0) scale(1)!important;filter:blur(0)}
.page-transition.active .page-transition-logo{animation:transitionLogoFloat 1.8s ease-in-out infinite alternate}
.page-transition.revealing .page-transition-inner{transform:translate3d(0,-14px,0) scale(1.025)!important;filter:blur(2px);transition-timing-function:cubic-bezier(.4,0,.2,1)!important}
@keyframes transitionLogoFloat{from{transform:translateY(-3px) scale(.995)}to{transform:translateY(5px) scale(1.012)}}
@media(prefers-reduced-motion:reduce){.page-transition.active .page-transition-logo{animation:none}}

/* Barre flottante en couleurs officielles : raccourcis inclus */
.floating-socials.icon-style-brand a[data-track-social="calendar"]{background:#2385f5!important;border-color:#2385f5!important;color:#fff!important}
.floating-socials.icon-style-brand a[data-track-social="phone"]{background:#34c759!important;border-color:#34c759!important;color:#fff!important}
.floating-socials.icon-style-brand a[data-track-social="maps"]{background:#fff!important;border-color:#e5e7eb!important;color:#111!important}
.floating-socials.icon-style-brand .brand-quick-icon{width:27px;height:27px;stroke:none!important;fill:none!important}
.calendar-brand .cal-bg{fill:#2385f5}.calendar-brand .cal-line{stroke:#fff;stroke-width:1.7;stroke-linecap:round}.calendar-brand .cal-day{fill:#fff}
.phone-brand .phone-bg{fill:#34c759}.phone-brand .phone-glyph{fill:#fff}
.maps-brand .map-green{fill:#34a853}.maps-brand .map-red{fill:#ea4335}.maps-brand .map-yellow{fill:#fbbc04}.maps-brand .map-blue{fill:#4285f4}.maps-brand .map-white{fill:#fff}

/* Footer : même logique thème / couleurs officielles que la barre */
.social-links.icon-style-brand a[data-network="instagram"]{background:radial-gradient(circle at 30% 105%,#fdf497 0 5%,#fd5949 38%,#d6249f 62%,#285AEB 100%);border-color:transparent;color:#fff}
.social-links.icon-style-brand a[data-network="tiktok"]{background:#111;color:#fff;box-shadow:2px 0 0 #25f4ee,-2px 0 0 #fe2c55}
.social-links.icon-style-brand a[data-network="facebook"]{background:#1877f2;color:#fff}
.social-links.icon-style-brand a[data-network="youtube"]{background:#f00;color:#fff}
.social-links.icon-style-theme a{background:color-mix(in srgb,var(--primary-color) 16%,transparent);color:inherit;border:1px solid rgba(255,255,255,.18)}
.footer-address,.footer-address .address-lines{margin:0!important;padding:0!important}.footer-address .address-lines{gap:.08rem!important;line-height:1.22!important}.footer-address .address-line{line-height:1.22!important}


/* V37 — transition plus légère et icônes officielles lisibles */
.page-transition{transition-timing-function:cubic-bezier(.33,1,.68,1)!important}
.page-transition::before{backdrop-filter:blur(2px) saturate(.98)!important}
.page-transition-inner{transform:translate3d(0,7px,0) scale(.985)!important;filter:none!important;opacity:.96;transition:transform var(--transition-in-duration,.38s) cubic-bezier(.22,1,.36,1),opacity var(--transition-in-duration,.38s) ease!important}
.page-transition.active .page-transition-inner{transform:translate3d(0,0,0) scale(1)!important;opacity:1}
.page-transition.revealing .page-transition-inner{transform:translate3d(0,-5px,0) scale(1.006)!important;filter:none!important;opacity:.97}
.page-transition.active .page-transition-logo{animation:transitionLogoFloatV37 2.8s ease-in-out infinite alternate!important}
@keyframes transitionLogoFloatV37{from{transform:translateY(-1.5px)}to{transform:translateY(1.5px)}}
.floating-socials.icon-style-theme a,.floating-socials.icon-style-theme .social-placeholder{color:inherit}
.floating-socials.icon-style-brand a[data-track-social="calendar"]{background:#0a84ff!important;border-color:#0a84ff!important;color:#fff!important}
.floating-socials.icon-style-brand a[data-track-social="phone"]{background:#34c759!important;border-color:#34c759!important;color:#fff!important}
.floating-socials.icon-style-brand a[data-track-social="maps"]{background:#fff!important;border-color:#e5e7eb!important;color:#111!important}
.floating-socials.icon-style-brand .brand-quick-icon{width:26px!important;height:26px!important;display:block!important;overflow:visible}
.floating-socials.icon-style-brand a[data-track-social="calendar"] .brand-quick-icon,.floating-socials.icon-style-brand a[data-track-social="phone"] .brand-quick-icon{color:#fff!important}
.floating-socials.icon-style-brand a[data-track-social="maps"] .brand-quick-icon{width:28px!important;height:28px!important}
