@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&display=swap');


html,
body{
    cursor: none;
	overflow-x: hidden;
	background: #1b1c20;
	color: #fff;
	scroll-behavior:smooth;
}
*{font-family: "DM Sans", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-size:18px;
  margin: 0; padding: 0; box-sizing: border-box;
}

/* ===========================
   Curseur personnalisé
=========================== */

html,
body,
a,
button,
input,
textarea,
select,
.contact-panel,
.contact-panel *,
.contact-overlay {
    cursor: none !important;
}

.cursor {
    position: fixed;
    top: 0;
    left: 0;

    width: 18px;
    height: 18px;

    border: 2px solid #98cdff;
    border-radius: 50%;

    background: transparent;

    pointer-events: none;

    /* Toujours au-dessus */
    z-index: 1000001;

    transform: translate(-50%, -50%);
    box-sizing: border-box;

    transition:
        width .25s ease,
        height .25s ease,
        background-color .25s ease,
        border-color .25s ease,
        box-shadow .25s ease;
}

.cursor::after {
    content: "";

    position: absolute;
    top: 50%;
    left: 50%;

    width: 4px;
    height: 4px;

    background: #98cdff;
    border-radius: 50%;

    transform: translate(-50%, -50%);

    transition:
        width .25s ease,
        height .25s ease,
        background-color .25s ease,
        box-shadow .25s ease;
}

.cursor.hover {
    width: 40px;
    height: 40px;

    background: rgba(152, 205, 255, .12);
    border-color: #98cdff;

    box-shadow: 0 0 25px rgba(152, 205, 255, .25);
}

.cursor.hover::after {
    width: 6px;
    height: 6px;

    background: #98cdff;

    box-shadow: 0 0 12px rgba(152, 205, 255, .65);

    animation: cursorBlink .8s infinite;
}

@keyframes cursorBlink {

    0%,
    100% {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1);
    }

    50% {
        opacity: .45;
        transform: translate(-50%, -50%) scale(.7);
    }
}
@keyframes cursorBlink{
    0%{
        opacity:1;
        transform:translate(-50%,-50%) scale(1);
    }

    50%{
        opacity:.2;
        transform:translate(-50%,-50%) scale(.6);
    }

    100%{
        opacity:1;
        transform:translate(-50%,-50%) scale(1);
    }
} 

@media (max-width: 991px) {

    .cursor{
        display: none !important;
    }

    html,
    body,
    a,
    button,
    input,
    textarea,
    select,
    label,
    [role="button"]{
        cursor: auto !important;
    }

}

#canvas,
canvas {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
    z-index: 0;
}
#loading{
    position: fixed;
    inset: 0;
    z-index: 1000;

    display: flex;
    flex-direction: column; /* Les éléments l'un sous l'autre */
    align-items: center;
    justify-content: center;

    background: #1b1c20;
}

#loader{
    width: 100px;
    margin-bottom: 15px;
}

#loader img{
    display: block;
    width: 100%;
    height: auto;
}

#progress{
    color: #98cdff;
    font-size: 15px;
    font-weight: 700;
    text-align: center;
}
#progress{color: #98cdff;font-size:15px;font-weight:700;}
#error-overlay {
position: fixed;
inset: 0;
z-index: 9999;
display: none;
overflow: auto;
padding: 32px;
background: #140c0c;
color: #ffd7d7;
font-family: monospace;
font-size: 14px;
line-height: 1.6;
}
#error-overlay h1 { font-size: 18px; color: #ff8a8a; margin-bottom: 16px; }
#error-overlay .msg {
background: #241010;
border-left: 3px solid #ff5555;
padding: 12px 16px;
margin-bottom: 16px;
white-space: pre-wrap;
word-break: break-word;
}
#error-overlay .where { color: #ffb37a; margin-bottom: 16px; }
#error-overlay .help { color: #9aa8b8; border-top: 1px solid #3a2020; padding-top: 16px; }

#bg-mobile{display:none;}

/* Tout le site passe au-dessus de la scène */
#site-content,
.navbar {
  position: relative;
  z-index: 10;
}
/* Largeur maximale du contenu du site */
.navbar .container,
#site-content .container {
  width: 100%;
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
.navbar {
    position: fixed;
    top: 25px;
    width: 100%;
    background: transparent;
    border: none;
    z-index: 100;

}
.navbar .container {
    max-width: 991px;
    margin: 0 auto;
	background-color: rgba(7,11,10,.3);
	border-radius: 10px;
	backdrop-filter: blur(12px);
	padding: 12px 25px;
}
.logo-navbar{max-width:200px;height:auto;}
.navbar-expand-lg .navbar-nav .nav-link{text-transform:uppercase;font-weight:500;font-size:16px;color:#fff;padding:0 25px;letter-spacing:1.5px;}
.dropdown-menu {
    background: rgba(20, 20, 20, 0.75);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);

    border: 1px solid rgba(255,255,255,.08);
    border-radius: 12px;

    padding: 8px;
    margin-top: 10px;
}
.dropdown-item {
    color: #fff;
    border-radius: 8px;
    transition: .25s;
}
.dropdown-item:hover {
    background: rgba(255,255,255,.08);
    color: #fff;
}
.dropdown-toggle::after {
    margin-left: 8px;
}

/* Sections au-dessus de la scène */
.page-section {
  position: relative;
  z-index: 2;
  min-height: 100vh;
}
#site-content {
  position: relative;
  z-index: 2;
}
.hero-slogan{
    display:flex;
    align-items:center;
    gap:12px;

    font-size:20px;
    font-weight:500;
    color:#fff;
}
.hero-slogan::before{
    content:"";
    width:20px;
    height:1px;
    background:#98cdff;
    flex-shrink:0;
}
.hero-title{font-size:140px;color:#98cdff;text-transform:uppercase;font-weight:1000;line-height:1;text-shadow:0 4px 12px rgba(0,0,0,.7), 0 8px 25px rgba(0,0,0,.45),0 0 18px rgba(80,160,255,.25);}

.hero-link{
    position:relative;
    display:inline-flex;
    align-items:center;

    padding:5px 0 8px;

    border:0;
    border-bottom:1px solid #98cdff;
    border-radius:0;

    background:transparent;

    font-size:16px;
    font-family:inherit;
    font-weight:500;
    line-height:1.2;

    color:#fff;
    text-transform:uppercase;
    text-decoration:none;

    cursor:pointer;

    transition:color .35s ease;
}

.hero-link::before{
    content:"\f054";
    font:var(--fa-font-solid);
    font-size:12px;

    color:#98cdff;

    opacity:0;
    width:0;
    margin-right:0;

    overflow:hidden;

    transform:translate(-12px, -2px);

    transition:
        opacity .35s ease,
        width .35s ease,
        margin-right .35s ease,
        transform .35s ease;
}

.hero-link:hover::before{
    opacity:1;
    width:12px;
    margin-right:10px;

    transform:translate(0, -2px);
}

.hero-link:hover{
    color:#98cdff;
}

.hero-link:focus,
.hero-link:focus-visible{
    color:#98cdff;
    outline:none;
    box-shadow:none;
}

.hero-link:active{
    color:#98cdff;
}





.about{
    padding:0;
}
.video-wrapper{
    display:flex;
    justify-content:center;
    overflow:hidden;
}
.about-video{
    width:100%;
    max-width:100%;
    border-radius:25px;
    display:block;
    will-change:transform,width;
}
.presentation-box{
	border-radius: 30px;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    max-width: 100%;
	padding:50px;
	margin:160px 0 0 0;
}
.presentation-subtitle{display:flex;
    align-items:center;
    gap:12px;
    font-size:20px;
    font-weight:500;
    color:#fff;
}
.presentation-subtitle::before{
    content:"";
    width:20px;
    height:1px;
    background:#98cdff;
    flex-shrink:0;
}
.presentation-txt span{color:#98cdff;font-weight:1000;}


.services-box{
	border-radius: 30px;
	background:rgba(7,11,10,.15);
	backdrop-filter: blur(12px);
	padding:50px;
	position:relative;	
}

.services-box-01{
    border-top: 3px solid #f25757;
}

.services-box-02{
    border-top: 3px solid  #a5ed70;
}

.services-box-03{
    border-top: 3px solid  #98cdff;
}

.services-box-04{
    border-top: 3px solid  #ede670;
}
.services-subtitle-01{display:flex;align-items:center;gap:12px;font-size:20px;font-weight:500;color:#fff;}
.services-subtitle-01::before{content:"";width:20px;height:1px;background:#f25757;flex-shrink:0;}

.services-subtitle-02{display:flex;align-items:center;gap:12px;font-size:20px;font-weight:500;color:#fff;}
.services-subtitle-02::before{content:"";width:20px;height:1px;background:#a5ed70;flex-shrink:0;}

.services-subtitle-03{display:flex;align-items:center;gap:12px;font-size:20px;font-weight:500;color:#fff;}
.services-subtitle-03::before{content:"";width:20px;height:1px;background:#98cdff;flex-shrink:0;}

.services-subtitle-04{display:flex;align-items:center;gap:12px;font-size:20px;font-weight:500;color:#fff;}
.services-subtitle-04::before{content:"";width:20px;height:1px;background:#ede670;flex-shrink:0;}
.services-title-01{font-size:45px;color:#f25757;text-transform:uppercase;font-weight:1000;line-height:1;text-shadow:0 4px 12px rgba(0,0,0,.7),0 8px 25px rgba(0,0,0,.45),0 0 18px rgba(80,160,255,.25);}
.services-title-02{font-size:45px;color:#a5ed70;text-transform:uppercase;font-weight:1000;line-height:1;text-shadow:0 4px 12px rgba(0,0,0,.7),0 8px 25px rgba(0,0,0,.45),0 0 18px rgba(80,160,255,.25);}
.services-title-03{font-size:45px;color:#98cdff;text-transform:uppercase;font-weight:1000;line-height:1;text-shadow:0 4px 12px rgba(0,0,0,.7),0 8px 25px rgba(0,0,0,.45),0 0 18px rgba(80,160,255,.25);}
.services-title-04{font-size:45px;color:#ede670;text-transform:uppercase;font-weight:1000;line-height:1;text-shadow:0 4px 12px rgba(0,0,0,.7),0 8px 25px rgba(0,0,0,.45),0 0 18px rgba(80,160,255,.25);}
.services-txt-01 span{color:#f25757;font-weight:700;}
.services-txt-02 span{color:#a5ed70;font-weight:700;}
.services-txt-03 span{color:#98cdff;font-weight:700;}
.services-txt-04 span{color:#ede670;font-weight:700;}
.services-cristal{position:absolute;z-index:-1;top:-100px;right:-60px;}
.services-link-01{position:relative;display:inline-flex;align-items:center;font-size:16px;color:#fff;text-transform:uppercase;font-weight:500;text-decoration:none;border-bottom:1px solid #f25757;padding:5px 0 8px;transition:color .35s ease;}
.services-link-01::before{content:"\f054";font:var(--fa-font-solid);font-size:12px;color:#f25757;opacity:0;width:0;margin-right:0;overflow:hidden;transform:translateX(-12px, -2px);transition: opacity .35s ease, width .35s ease, margin-right .35s ease, transform .35s ease;}
.services-link-01:hover::before{opacity:1;width:12px;margin-right:10px;transform:translateX(0, -2px);}
.services-link-01:hover{color:#f25757;}
.services-link-02{position:relative;display:inline-flex;align-items:center;font-size:16px;color:#fff;text-transform:uppercase;font-weight:500;text-decoration:none;border-bottom:1px solid #a5ed70;padding:5px 0 8px;transition:color .35s ease;}
.services-link-02::before{content:"\f054";font:var(--fa-font-solid);font-size:12px;color:#a5ed70;opacity:0;width:0;margin-right:0;overflow:hidden;transform:translateX(-12px, -2px);transition: opacity .35s ease, width .35s ease, margin-right .35s ease, transform .35s ease;}
.services-link-02:hover::before{opacity:1;width:12px;margin-right:10px;transform:translateX(0, -2px);}
.services-link-02:hover{color:#a5ed70;}
.services-link-03{position:relative;display:inline-flex;align-items:center;font-size:16px;color:#fff;text-transform:uppercase;font-weight:500;text-decoration:none;border-bottom:1px solid #98cdff;padding:5px 0 8px;transition:color .35s ease;}
.services-link-03::before{content:"\f054";font:var(--fa-font-solid);font-size:12px;color:#98cdff;opacity:0;width:0;margin-right:0;overflow:hidden;transform:translateX(-12px, -2px);transition: opacity .35s ease, width .35s ease, margin-right .35s ease, transform .35s ease;}
.services-link-03:hover::before{opacity:1;width:12px;margin-right:10px;transform:translateX(0, -2px);}
.services-link-03:hover{color:#98cdff;}
.services-link-04{position:relative;display:inline-flex;align-items:center;font-size:16px;color:#fff;text-transform:uppercase;font-weight:500;text-decoration:none;border-bottom:1px solid #ede670;padding:5px 0 8px;transition:color .35s ease;}
.services-link-04::before{content:"\f054";font:var(--fa-font-solid);font-size:12px;color:#ede670;opacity:0;width:0;margin-right:0;overflow:hidden;transform:translateX(-12px, -2px);transition: opacity .35s ease, width .35s ease, margin-right .35s ease, transform .35s ease;}
.services-link-04:hover::before{opacity:1;width:12px;margin-right:10px;transform:translateX(0, -2px);}
.services-link-04:hover{color:#ede670;}

#projet{position: relative;z-index:15;margin:100px 0 140px 0;}
.projet-title{font-size:45px;}
#footer{position: relative;z-index:10;margin-bottom:40px;margin-top:-55px;margin-left:20px;margin-right:20px;}
#footer > .container{background-color: rgba(7,11,10,.3);backdrop-filter: blur(12px);padding:40px 40px 0 40px;border-radius:30px;}
.footer-copyright{color:#eee;font-size:14px;padding:30px 0 0 0;}
.footer-copyright a{color:#eee;text-decoration:none;font-size:14px;}
.footer-copyright a:hover{color:#eee;text-decoration:none;}
.footer-follow{color:#fff;font-size:18px;padding:30px 0 0 0;display:flex;align-items:center;gap:12px;}
.footer-follow::before{content:"";width:14px;height:1px;background:#98cdff;flex-shrink:0;}
.footer-follow,
.footer-follow a,
.footer-follow a:visited,
.footer-follow i {
    color: #fff;
    text-decoration: none;
}
.footer-follow a:hover {
    color: #98cdff;
    transition: color .3s ease;
}
.footer-email,
.footer-email:visited {
    color: #fff;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 12px;
}

.footer-email span {
    border-bottom: 1px solid #98cdff;
}

.footer-email:hover {
    color: #98cdff;
    transition: color .3s ease;
}

.footer-email::before {
    content: "";
    width: 14px;
    height: 1px;
    background: #98cdff;
    flex-shrink: 0;
}
.footer-logo{padding:30px 0 0 0;}

#footer-white{background:#fff;position:relative;z-index:10;padding-bottom:40px;padding-top:150px;padding-left:20px;padding-right:20px;}
#footer-white > .container{background-color: rgba(255,255,255,.3);backdrop-filter: blur(12px);padding:40px 40px 0 40px;border-radius:30px;}
.footer-white-copyright{color:#333;font-size:14px;padding:30px 0 0 0;}
.footer-white-copyright a{color:#333;text-decoration:none;font-size:14px;}
.footer-white-copyright a:hover{color:#333;text-decoration:none;}
.footer-white-follow{color:#000;font-size:18px;padding:30px 0 0 0;display:flex;align-items:center;gap:12px;}
.footer-white-follow::before{content:"";width:14px;height:1px;background:#98cdff;flex-shrink:0;}
.footer-white-follow,
.footer-white-follow a,
.footer-white-follow a:visited,
.footer-white-follow i {
    color: #000;
    text-decoration: none;
}
.footer-white-follow a:hover {
    color: #98cdff;
    transition: color .3s ease;
}
.footer-white-email,
.footer-white-email:visited {
    color: #000;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 12px;
}

.footer-white-email span {
    border-bottom: 1px solid #98cdff;
}

.footer-white-email:hover {
    color: #98cdff;
    transition: color .3s ease;
}

.footer-white-email::before {
    content: "";
    width: 14px;
    height: 1px;
    background: #98cdff;
    flex-shrink: 0;
}

@media (max-width: 991px) {
.footer-white-copyright{font-size:11px;}
.footer-white-copyright a{font-size:11px;}
.footer-copyright{font-size:11px;}
.footer-copyright a{font-size:11px;}
}

.reveal {
    will-change: transform, opacity;
}
.video-sound-btn {
    position: absolute;
    right: 25px;
    bottom: 25px;
    z-index: 50;

    width: 52px;
    height: 52px;

    display: flex;
    align-items: center;
    justify-content: center;

    border: none;          /* Supprime la bordure */
    outline: none;         /* Supprime le contour */
    appearance: none;      /* Style natif */
    -webkit-appearance: none;

    border-radius: 50%;

    color: #fff;
    background: rgba(0, 0, 0, 1);

    cursor: pointer;
    transition: all .3s ease;
}
.video-sound-btn:hover {
    background: #98cdff;
    color: #fff;
}
.video-sound-btn:focus,
.video-sound-btn:focus-visible {
    outline: none;
    box-shadow: none;
}







/* =========================================================
   BLOCAGE DU SCROLL
========================================================= */

body.contact-open {
    overflow: hidden;
}


/* =========================================================
   OVERLAY
========================================================= */

.contact-overlay {
    position: fixed;
    inset: 0;

    z-index: 999998;

    visibility: hidden;
    opacity: 0;

    background: rgba(5, 6, 8, 0.75);

    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);

    pointer-events: none;

    transition:
        opacity 0.4s ease,
        visibility 0.4s ease;
}

.contact-overlay.active {
    visibility: visible;
    opacity: 1;

    pointer-events: auto;
}


/* =========================================================
   PANNEAU DE CONTACT
========================================================= */

.contact-panel {
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;

    z-index: 999999 !important;

    width: min(560px, 100%);
    height: 100dvh;

    display: flex !important;
    flex-direction: column;

    overflow: hidden;

    visibility: visible !important;
    opacity: 1 !important;

    color: #ffffff;
    background: #1b1c20;

    box-shadow:none;

    transform: translateX(100%);

    pointer-events: none;

    transition:
        transform 0.7s cubic-bezier(0.77, 0, 0.18, 1);
}

.contact-panel.active {
    transform: translateX(0);
    pointer-events: auto;
	box-shadow:-25px 0 70px rgba(0,0,0,.22);
}


/* =========================================================
   EN-TÊTE DU PANNEAU
========================================================= */

.contact-panel-header {
    padding: 38px 42px 28px;

    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 30px;

    flex-shrink: 0;

    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.contact-panel-label {
    display: block;

    margin-bottom: 8px;

    color: #98cdff;

    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.contact-panel-header h2 {
    margin: 0;

    color: #ffffff;

    font-size: 55px;
    font-weight: 800;
    line-height: 1;
    text-transform: uppercase;
}


/* =========================================================
   BOUTON DE FERMETURE
========================================================= */

.contact-close {
    position: relative;

    width: 50px;
    height: 50px;
    padding: 0;

    flex-shrink: 0;

    border: 1px solid rgba(152, 205, 255, 0.4);
    border-radius: 50%;

    color: #98cdff;
    background: transparent;

    cursor: pointer;

    transition:
        transform 0.3s ease,
        border-color 0.3s ease,
        background 0.3s ease;
}

.contact-close:hover {
    transform: rotate(90deg);

    border-color: #98cdff;
    background: rgba(152, 205, 255, 0.08);
}

.contact-close span {
    position: absolute;
    top: 50%;
    left: 50%;

    width: 18px;
    height: 1px;

    background: #98cdff;
}

.contact-close span:first-child {
    transform: translate(-50%, -50%) rotate(45deg);
}

.contact-close span:last-child {
    transform: translate(-50%, -50%) rotate(-45deg);
}


/* =========================================================
   CONTENU DU PANNEAU
========================================================= */

.contact-panel-content {
    flex: 1;

    padding: 32px 42px 50px;

    overflow-x: hidden;
    overflow-y: auto;

    scrollbar-width: thin;
    scrollbar-color:
        rgba(152, 205, 255, 0.65)
        rgba(255, 255, 255, 0.05);
}

.contact-panel-content::-webkit-scrollbar {
    width: 7px;
}

.contact-panel-content::-webkit-scrollbar-track {
    background: rgba(255, 255, 255, 0.05);
}

.contact-panel-content::-webkit-scrollbar-thumb {
    border-radius: 20px;
    background: rgba(152, 205, 255, 0.65);
}


/* =========================================================
   TEXTE D’INTRODUCTION
========================================================= */

.contact-intro {
    margin: 0 0 35px;

    color: rgba(255, 255, 255, 0.65);

    font-size: 16px;
    line-height: 1.7;
}

.contact-intro a {
    color: #98cdff;

    font-weight: 600;
    text-decoration: none;

    transition: opacity 0.25s ease;
}

.contact-intro a:hover {
    opacity: 0.75;
}


/* =========================================================
   FORMULAIRE
========================================================= */

.contact-form {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.contact-field {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.contact-field label {
    color: rgba(255, 255, 255, 0.75);

    font-size: 12px;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}


/* =========================================================
   CHAMPS
========================================================= */

.contact-field input,
.contact-field select,
.contact-field textarea {
    width: 100%;
    padding: 16px 0;

    border: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 0;

    color: #ffffff;
    background: transparent;

    outline: none;

    font-family: inherit;
    font-size: 16px;

    transition:
        border-color 0.25s ease,
        color 0.25s ease;
}

.contact-field input:hover,
.contact-field select:hover,
.contact-field textarea:hover {
    border-bottom-color: rgba(152, 205, 255, 0.55);
}

.contact-field input:focus,
.contact-field select:focus,
.contact-field textarea:focus {
    border-bottom-color: #98cdff;
}

.contact-field input::placeholder,
.contact-field textarea::placeholder {
    color: rgba(255, 255, 255, 0.3);
}

.contact-field select {
    cursor: pointer;
}

.contact-field select option {
    color: #ffffff;
    background: #1b1c20;
}

.contact-field textarea {
    min-height: 140px;

    resize: vertical;
}


/* =========================================================
   AUTOCOMPLÉTION DES NAVIGATEURS
========================================================= */

.contact-field input:-webkit-autofill,
.contact-field input:-webkit-autofill:hover,
.contact-field input:-webkit-autofill:focus,
.contact-field textarea:-webkit-autofill,
.contact-field select:-webkit-autofill {
    -webkit-text-fill-color: #ffffff;

    box-shadow:
        0 0 0 1000px #1b1c20 inset;

    transition:
        background-color 9999s ease-in-out 0s;
}


/* =========================================================
   CONSENTEMENT
========================================================= */

.contact-consent {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.contact-consent input {
    width: 17px;
    height: 17px;
    margin-top: 3px;

    flex-shrink: 0;

    accent-color: #98cdff;

    cursor: pointer;
}

.contact-consent label {
    color: rgba(255, 255, 255, 0.55);

    font-size: 13px;
    line-height: 1.6;

    cursor: pointer;
}


/* =========================================================
   HONEYPOT ANTISPAM
========================================================= */

.contact-honeypot {
    position: absolute;
    left: -9999px;

    width: 1px;
    height: 1px;

    overflow: hidden;
}


/* =========================================================
   BOUTON D’ENVOI
========================================================= */

.contact-submit {
    min-height: 60px;
    padding: 0 25px;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;

    border: 1px solid #98cdff;
    border-radius: 100px;

    color: #1b1c20;
    background: #98cdff;

    font-family: inherit;
    font-size: 13px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.04em;
    text-transform: uppercase;

    cursor: pointer;

    transition:
        transform 0.3s ease,
        color 0.3s ease,
        border-color 0.3s ease,
        background 0.3s ease,
        box-shadow 0.3s ease,
        opacity 0.3s ease;
}

.contact-submit:hover {
    transform: translateY(-3px);

    color: #ffffff;
    background: transparent;

    box-shadow:
        0 15px 35px rgba(152, 205, 255, 0.14);
}

.contact-submit:focus-visible {
    outline: 3px solid rgba(152, 205, 255, 0.25);
    outline-offset: 4px;
}

.contact-submit svg {
    width: 23px;
    height: 23px;

    flex-shrink: 0;

    transition: transform 0.3s ease;
}

.contact-submit:hover svg {
    transform: translateX(5px);
}

.contact-submit:disabled {
    cursor: not-allowed;
}


/* =========================================================
   ÉTAT DU BOUTON PENDANT L’ENVOI
========================================================= */

.contact-submit.loading {
    opacity: 0.65;

    pointer-events: none;
}

.contact-submit.loading svg {
    animation: contactLoading 0.8s linear infinite;
}

@keyframes contactLoading {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}


/* =========================================================
   MESSAGE DU FORMULAIRE
========================================================= */

.contact-form-message {
    display: none;

    width: 100%;
    padding: 16px 18px;

    border-radius: 12px;

    font-size: 14px;
    line-height: 1.6;
}

.contact-form-message.success {
    display: block;

    border: 1px solid rgba(45, 174, 89, 0.35);

    color: #b8f5cb;
    background: rgba(45, 174, 89, 0.12);
}

.contact-form-message.error {
    display: block;

    border: 1px solid rgba(255, 70, 70, 0.35);

    color: #ffb3b3;
    background: rgba(255, 70, 70, 0.12);
}


/* =========================================================
   CURSEUR PERSONNALISÉ
========================================================= */

.cursor {
    z-index: 1000000;
}


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

@media (max-width: 767px) {

    .contact-panel {
        width: 100%;
    }

    .contact-panel-header {
        padding: 25px 22px;
    }

    .contact-panel-content {
        padding: 25px 22px 40px;
    }

    .contact-panel-header h2 {
        font-size: 42px;
    }

    .contact-close {
        width: 46px;
        height: 46px;
    }

    .contact-form {
        gap: 22px;
    }

    .contact-submit {
        min-height: 58px;
    }
}


/* =========================================================
   PETITS MOBILES
========================================================= */

@media (max-width: 420px) {

    .contact-panel-header {
        gap: 18px;
    }

    .contact-panel-header h2 {
        font-size: 36px;
    }

    .contact-panel-label {
        font-size: 10px;
    }

    .contact-panel-content {
        padding:
            24px
            20px
            calc(35px + env(safe-area-inset-bottom));
    }

    .contact-intro {
        margin-bottom: 30px;

        font-size: 15px;
    }
}


/* =========================================================
   ÉCRANS TACTILES
========================================================= */

@media (hover: none) {

    .contact-close:hover,
    .contact-submit:hover {
        transform: none;
    }

    .contact-submit:hover {
        color: #1b1c20;
        background: #98cdff;
        box-shadow: none;
    }

    .contact-submit:hover svg {
        transform: none;
    }
}


/* =========================================================
   ANIMATIONS RÉDUITES
========================================================= */

@media (prefers-reduced-motion: reduce) {

    .contact-overlay,
    .contact-panel,
    .contact-close,
    .contact-submit,
    .contact-submit svg,
    .contact-intro a {
        transition: none;
    }

    .contact-submit.loading svg {
        animation: none;
    }
}



/* =========================================================
   PAGE AGENCE — STRUCTURE GÉNÉRALE
========================================================= */

.agency-page {
    position: relative;
    overflow: hidden;

    color: #111318;
    background: #ffffff;
}

.agency-page > section {
    position: relative;
}

.agency-page .container {
    position: relative;
    z-index: 2;
}

.agency-page .py-lg-7 {
    padding-top: 8rem;
    padding-bottom: 8rem;
}


/* =========================================================
   FONDS DES SECTIONS
========================================================= */

.agency-page .agency-intro {
    background: #ffffff;
}

.agency-page .agency-proximity {
    background: #f4f7f9;
}

.agency-page .agency-long-term {
    background: #ffffff url('images/wireframe.jpg')no-repeat center center;
}

.agency-page .agency-values {
    background: #f4f7f9;
}

.agency-page .agency-cta {
    background: #ffffff;
}


/* =========================================================
   PETITS TITRES
========================================================= */

.agency-page .section-kicker {
    display: inline-flex;
    align-items: center;
    gap: 12px;

    margin-bottom: 22px;

    color: #347fb7;

    font-size: 0.85rem;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.agency-page .section-kicker::before {
    content: "";

    width: 35px;
    height: 2px;

    flex-shrink: 0;

    border-radius: 10px;

    background: #98cdff;
}

.agency-page .section-number {
    display: block;

    margin-bottom: 18px;

    color: #347fb7;

    font-size: 0.9rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.15em;
}


/* =========================================================
   TITRES
========================================================= */

.agency-page .agency-title,
.agency-page .section-title,
.agency-page .agency-cta-title {
    margin: 0;

    color: #111318;

    text-wrap: balance;
}

.agency-page .agency-title {
    max-width: 850px;

    font-size: clamp(3rem, 6vw, 6.5rem);
    font-weight: 900;
    line-height: 0.95;
    letter-spacing: -0.055em;
}

.agency-page .section-title {
    font-size: clamp(2.4rem, 4vw, 4.5rem);
    font-weight: 850;
    line-height: 1;
    letter-spacing: -0.045em;
}

.agency-page .agency-cta-title {
    max-width: 900px;

    font-size: clamp(2.3rem, 4vw, 4.2rem);
    font-weight: 900;
    line-height: 1;
    letter-spacing: -0.045em;
}


/* =========================================================
   TEXTES GÉNÉRAUX
========================================================= */

.agency-page p {
    color: #4f555d;
}

.agency-page .agency-intro-text {
    max-width: 760px;

    color: #4f555d;

    font-size: 1.05rem;
    line-height: 1.8;
}

.agency-page .agency-intro-text p {
    margin-bottom: 20px;

    color: #4f555d;
}

.agency-page .agency-intro-text p:last-child {
    margin-bottom: 0;
}

.agency-page .agency-intro-text .lead,
.agency-page .agency-values .lead {
    color: #111318;

    font-size: clamp(1.2rem, 2vw, 1.55rem);
    font-weight: 600;
    line-height: 1.55;
}


/* =========================================================
   STYLE COMMUN DES BOX EN BLUR
========================================================= */

.agency-page .agency-content-card,
.agency-page .agency-highlight-card,
.agency-page .agency-stat,
.agency-page .value-card {
    position: relative;
    overflow: hidden;

    border: 1px solid rgba(152, 205, 255, 0.55);

    background: rgba(255, 255, 255, 0.56);

    box-shadow:
        0 20px 50px rgba(17, 19, 24, 0.07),
        inset 0 1px 0 rgba(255, 255, 255, 0.92);

    -webkit-backdrop-filter: blur(18px);
    backdrop-filter: blur(18px);

    transition:
        transform 0.35s ease,
        border-color 0.35s ease,
        box-shadow 0.35s ease,
        background 0.35s ease;
}


/* Liseré bleu supérieur */

.agency-page .agency-content-card::before,
.agency-page .agency-highlight-card::before,
.agency-page .agency-stat::before,
.agency-page .value-card::before {
    content: "";

    position: absolute;
    top: 0;
    left: 28px;
    right: 28px;

    height: 3px;

    border-radius: 0 0 10px 10px;

    background: linear-gradient(
        90deg,
        rgba(152, 205, 255, 0) 0%,
        #98cdff 50%,
        rgba(152, 205, 255, 0) 100%
    );

    opacity: 0.95;

    pointer-events: none;
}


/* Petit détail circulaire */

.agency-page .agency-content-card::after,
.agency-page .agency-highlight-card::after,
.agency-page .agency-stat::after,
.agency-page .value-card::after {
    content: "";

    position: absolute;
    right: 24px;
    bottom: 24px;

    width: 8px;
    height: 8px;

    border-radius: 50%;

    background: #98cdff;

    box-shadow:
        0 0 0 6px rgba(152, 205, 255, 0.13),
        0 0 0 12px rgba(152, 205, 255, 0.06);

    pointer-events: none;
}


/* Hover commun */

.agency-page .agency-content-card:hover,
.agency-page .agency-highlight-card:hover,
.agency-page .agency-stat:hover,
.agency-page .value-card:hover {
    transform: translateY(-7px);

    border-color: rgba(152, 205, 255, 0.95);

    background: rgba(255, 255, 255, 0.72);

    box-shadow:
        0 28px 65px rgba(17, 19, 24, 0.11),
        0 10px 30px rgba(152, 205, 255, 0.16),
        inset 0 1px 0 rgba(255, 255, 255, 0.98);
}


/* =========================================================
   GRANDES CARTES DE TEXTE
========================================================= */

.agency-page .agency-content-card,
.agency-page .agency-highlight-card {
    padding: clamp(30px, 5vw, 65px);

    border-radius: 30px;
}

.agency-page .agency-content-card p,
.agency-page .agency-highlight-card p {
    position: relative;
    z-index: 2;

    margin-bottom: 20px;

    color: #4f555d;

    font-size: 1.05rem;
    line-height: 1.8;
}

.agency-page .agency-content-card p:last-child,
.agency-page .agency-highlight-card p:last-child {
    margin-bottom: 0;
}


/* =========================================================
   CITATION
========================================================= */

.agency-page .agency-quote {
    position: relative;
    z-index: 2;

    margin-bottom: 35px;
    padding: 26px 28px;

    overflow: hidden;

    border: 1px solid rgba(152, 205, 255, 0.48);
    border-left: 4px solid #98cdff;
    border-radius: 0 18px 18px 0;

    color: #111318 !important;

    background: rgba(255, 255, 255, 0.48);

    box-shadow:
        0 12px 35px rgba(17, 19, 24, 0.05),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);

    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);

    font-size: clamp(1.5rem, 3vw, 2.2rem) !important;
    font-weight: 800;
    line-height: 1.3 !important;

    transition:
        transform 0.35s ease,
        border-color 0.35s ease,
        box-shadow 0.35s ease;
}

.agency-page .agency-quote:hover {
    transform: translateX(6px);

    border-color: rgba(152, 205, 255, 0.95);

    box-shadow:
        0 18px 45px rgba(17, 19, 24, 0.08),
        0 8px 20px rgba(152, 205, 255, 0.12);
}


/* =========================================================
   CHIFFRES
========================================================= */

.agency-page .agency-stat {
    min-height: 210px;
    padding: 35px;

    display: flex;
    flex-direction: column;
    justify-content: space-between;

    border-radius: 25px;
}

.agency-page .agency-stat-number,
.agency-page .agency-stat-label {
    position: relative;
    z-index: 2;
}

.agency-page .agency-stat-number {
    color: #111318;

    font-size: clamp(2.5rem, 5vw, 4.5rem);
    font-weight: 900;
    line-height: 1;
    letter-spacing: -0.05em;
}

.agency-page .agency-stat-number::after {
    content: "";

    display: block;

    width: 45px;
    height: 4px;

    margin-top: 18px;

    border-radius: 10px;

    background: #98cdff;

    transition: width 0.35s ease;
}

.agency-page .agency-stat:hover .agency-stat-number::after {
    width: 70px;
}

.agency-page .agency-stat-label {
    max-width: 180px;

    color: #4f555d;

    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.4;
}


/* =========================================================
   CARTES DES VALEURS
========================================================= */

.agency-page .value-card {
    height: 100%;
    padding: clamp(30px, 4vw, 50px);

    border-radius: 30px;
}

.agency-page .value-card-header {
    position: relative;
    z-index: 2;

    margin-bottom: 45px;

    display: flex;
    align-items: center;
    justify-content: space-between;
}

.agency-page .value-number {
    color: #8a9098;

    font-size: 0.8rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.15em;
}

.agency-page .value-icon {
    width: 56px;
    height: 56px;

    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;

    border: 1px solid rgba(152, 205, 255, 0.68);
    border-radius: 18px;

    color: #111318;

    background: rgba(255, 255, 255, 0.52);

    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.92),
        0 10px 25px rgba(17, 19, 24, 0.06);

    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);

    font-size: 27px;

    transition:
        transform 0.35s ease,
        color 0.35s ease,
        border-color 0.35s ease,
        background 0.35s ease,
        box-shadow 0.35s ease;
}

.agency-page .value-card:hover .value-icon {
    transform: rotate(-5deg) scale(1.06);

    color: #111318;
    border-color: #98cdff;
    background: #98cdff;

    box-shadow:
        0 14px 30px rgba(52, 127, 183, 0.18),
        inset 0 1px 0 rgba(255, 255, 255, 0.6);
}

.agency-page .value-title {
    position: relative;
    z-index: 2;

    margin-bottom: 20px;

    color: #111318;

    font-size: clamp(1.8rem, 3vw, 2.6rem);
    font-weight: 850;
    line-height: 1.1;
    letter-spacing: -0.035em;
}

.agency-page .value-title::after {
    content: "";

    display: block;

    width: 35px;
    height: 3px;

    margin-top: 16px;

    border-radius: 10px;

    background: #98cdff;

    transition: width 0.35s ease;
}

.agency-page .value-card:hover .value-title::after {
    width: 60px;
}

.agency-page .value-card p {
    position: relative;
    z-index: 2;

    margin-bottom: 0;

    color: #4f555d;

    font-size: 1rem;
    line-height: 1.75;
}


/* =========================================================
   DERNIÈRE BOX BLEUE
========================================================= */

.agency-page .agency-cta-box {
    position: relative;

    padding: clamp(35px, 6vw, 75px);

    overflow: hidden;

    border: 1px solid rgba(52, 127, 183, 0.25);
    border-radius: 35px;

    color: #111318;

    background: linear-gradient(
        135deg,
        #98cdff 0%,
        #b9ddff 55%,
        #dcefff 100%
    );

    box-shadow:
        0 28px 70px rgba(52, 127, 183, 0.2),
        inset 0 1px 0 rgba(255, 255, 255, 0.58);

    transition:
        transform 0.35s ease,
        box-shadow 0.35s ease;
}

.agency-page .agency-cta-box::before {
    content: "";

    position: absolute;
    top: 0;
    left: 0;

    width: 100%;
    height: 5px;

    background: linear-gradient(
        90deg,
        rgba(255, 255, 255, 0.3) 0%,
        rgba(255, 255, 255, 0.95) 50%,
        rgba(255, 255, 255, 0.3) 100%
    );
}

.agency-page .agency-cta-box::after {
    content: "";

    position: absolute;
    right: -65px;
    bottom: -65px;

    width: 200px;
    height: 200px;

    border: 28px solid rgba(255, 255, 255, 0.2);
    border-radius: 50%;

    pointer-events: none;

    transition: transform 0.5s ease;
}

.agency-page .agency-cta-box:hover {
    transform: translateY(-6px);

    box-shadow:
        0 35px 85px rgba(52, 127, 183, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.72);
}

.agency-page .agency-cta-box:hover::after {
    transform: scale(1.12) rotate(10deg);
}

.agency-page .agency-cta-box .row {
    position: relative;
    z-index: 2;
}

.agency-page .agency-cta-box .section-kicker {
    color: #1f5f8d;
}

.agency-page .agency-cta-box .section-kicker::before {
    background: #1f5f8d;
}

.agency-page .agency-cta-box .agency-cta-title {
    color: #111318;
}

.agency-page .agency-cta-box p {
    max-width: 750px;

    margin-bottom: 0;

    color: rgba(17, 19, 24, 0.74);

    font-size: 1.1rem;
    line-height: 1.7;
}


/* =========================================================
   BOUTON
========================================================= */

.btn-agency{
    position:relative;
    display:inline-flex;
    align-items:center;

    padding:14px 26px;

    background:transparent;
    border:1px solid #000;
    border-radius:999px;

    color:#000;
    font-size:16px;
    font-family:inherit;
    font-weight:600;
    line-height:1;

    text-transform:uppercase;
    text-decoration:none;

    cursor:pointer;

    transition:
        color .35s ease,
        background .35s ease,
        border-color .35s ease;
}

.btn-agency::before{
    content:"\f054"; /* chevron-right Font Awesome */
    font:var(--fa-font-solid);
    font-size:12px;

    color:currentColor;

    opacity:0;
    width:0;
    margin-right:0;

    overflow:hidden;

    transform:translate(-12px,-1px);

    transition:
        opacity .35s ease,
        width .35s ease,
        margin-right .35s ease,
        transform .35s ease;
}

.btn-agency:hover{
    background:#000;
    color:#fff;
}

.btn-agency:hover::before{
    opacity:1;
    width:12px;
    margin-right:10px;

    transform:translate(0,-1px);
}

.btn-agency:focus,
.btn-agency:focus-visible,
.btn-agency:active{
    background:#000 !important;
    color:#fff !important;
    border-color:#000 !important;
    box-shadow:none !important;
    outline:none;
}


/* =========================================================
   TABLETTE
========================================================= */

@media (max-width: 991px) {

    .agency-page .py-lg-7 {
        padding-top: 5rem;
        padding-bottom: 5rem;
    }

    .agency-page .agency-title {
        font-size: clamp(3rem, 11vw, 5rem);
    }

    .agency-page .agency-content-card,
    .agency-page .agency-highlight-card,
    .agency-page .value-card {
        border-radius: 24px;
    }

    .agency-page .agency-content-card,
    .agency-page .agency-highlight-card,
    .agency-page .agency-stat,
    .agency-page .value-card {
        -webkit-backdrop-filter: blur(12px);
        backdrop-filter: blur(12px);
    }

    .agency-page .agency-quote,
    .agency-page .value-icon {
        -webkit-backdrop-filter: blur(8px);
        backdrop-filter: blur(8px);
    }

    .agency-page .agency-cta-box {
        border-radius: 28px;
    }
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 575px) {

    .agency-page .py-lg-7 {
        padding-top: 4rem;
        padding-bottom: 4rem;
    }

    .agency-page .agency-title {
        font-size: 3.1rem;
        line-height: 0.98;
    }

    .agency-page .section-title {
        font-size: 2.5rem;
    }

    .agency-page .agency-cta-title {
        font-size: 2.35rem;
    }

    .agency-page .agency-content-card,
    .agency-page .agency-highlight-card,
    .agency-page .value-card {
        padding: 28px 22px;

        border-radius: 22px;
    }

    .agency-page .agency-stat {
        min-height: 175px;
        padding: 28px;

        border-radius: 22px;
    }

    .agency-page .agency-quote {
        padding: 22px 20px;

        border-radius: 0 15px 15px 0;
    }

    .agency-page .agency-cta-box {
        padding: 35px 25px;

        border-radius: 25px;
    }

    .agency-page .btn-agency {
        width: 100%;
    }

    .agency-page .agency-content-card::before,
    .agency-page .agency-highlight-card::before,
    .agency-page .agency-stat::before,
    .agency-page .value-card::before {
        left: 20px;
        right: 20px;
    }

    .agency-page .agency-content-card::after,
    .agency-page .agency-highlight-card::after,
    .agency-page .agency-stat::after,
    .agency-page .value-card::after {
        right: 20px;
        bottom: 20px;
    }

    .agency-page .value-card-header {
        margin-bottom: 35px;
    }

    .agency-page .value-icon {
        width: 52px;
        height: 52px;

        border-radius: 16px;

        font-size: 25px;
    }

    .agency-page .agency-cta-box::after {
        right: -85px;
        bottom: -85px;
    }
}


/* =========================================================
   ÉCRANS TACTILES
========================================================= */

@media (hover: none) {

    .agency-page .agency-content-card:hover,
    .agency-page .agency-highlight-card:hover,
    .agency-page .agency-stat:hover,
    .agency-page .value-card:hover,
    .agency-page .agency-quote:hover,
    .agency-page .agency-cta-box:hover {
        transform: none;
    }

    .agency-page .value-card:hover .value-icon {
        transform: none;
    }
}


/* =========================================================
   ACCESSIBILITÉ — ANIMATIONS RÉDUITES
========================================================= */

@media (prefers-reduced-motion: reduce) {

    .agency-page .agency-content-card,
    .agency-page .agency-highlight-card,
    .agency-page .agency-stat,
    .agency-page .value-card,
    .agency-page .agency-quote,
    .agency-page .agency-cta-box,
    .agency-page .value-icon,
    .agency-page .btn-agency,
    .agency-page .btn-agency .material-symbols-outlined,
    .agency-page .agency-stat-number::after,
    .agency-page .value-title::after {
        transition: none;
    }
}


/* =========================================================
   NAVIGATEURS SANS BACKDROP-FILTER
========================================================= */

@supports not (
    (backdrop-filter: blur(10px)) or
    (-webkit-backdrop-filter: blur(10px))
) {

    .agency-page .agency-content-card,
    .agency-page .agency-highlight-card,
    .agency-page .agency-stat,
    .agency-page .value-card,
    .agency-page .agency-quote {
        background: rgba(255, 255, 255, 0.94);
    }
}


/* ==========================================================
   HERO - AGENCE
========================================================== */

#top-agence{
    position:relative;
    overflow:hidden;
    padding:180px 0 100px;
	background:#0c0d0e url('images/pattern-agency.png')repeat;
}

/* Sous-titre */

.top-agence-subtitle{
    display:inline-block;
    margin-bottom:15px;

    font-size:14px;
    font-weight:700;
    letter-spacing:4px;
    text-transform:uppercase;

    color:#98cdff;
}

/* Titre */

.top-agence-title{

    margin:0 0 70px;

    font-size:clamp(90px,12vw,220px);
    line-height:.85;
    font-weight:1000;
    text-transform:uppercase;

    color:#98cdff;

    text-shadow:
        0 0 15px rgba(152,205,255,.15),
        0 0 40px rgba(152,205,255,.08);

}

/* Bloc présentation */

.top-agence-heading{

    display:flex;
    flex-direction:column;
    gap:8px;

    margin-bottom:35px;

    color:#fff;

}

/* Alban */

/* Alban */

.top-agence-name{

    display:inline-block;

    font-size:clamp(42px,4.8vw,70px);
    line-height:1;

    font-weight:1000;
    text-transform:uppercase;

    color:#98cdff;

    text-shadow:
        0 0 18px rgba(152,205,255,.22);

}

/* Créateur */

.top-agence-heading small{

    font-size:clamp(22px,2vw,34px);
    line-height:1.4;

    font-weight:500;

    color:#fff;

}

/* Texte */

.top-agence-text{

    max-width:600px;

    margin-bottom:45px;

    font-size:20px;
    line-height:1.9;

    color:rgba(255,255,255,.82);

}

/* Boutons */

.top-agence-buttons{

    display:flex;
    gap:20px;
    flex-wrap:wrap;

}

/* ==========================================================
   PHOTO
========================================================== */

.top-agence-photo-wrapper{

    position:relative;

    display:flex;
    justify-content:center;
    align-items:flex-start;

    min-height:650px;

}
.top-agence-photo{

    width:100%;
    max-width:560px;

    border-radius:24px;

    user-select:none;
    pointer-events:auto;

    filter:
        drop-shadow(0 35px 55px rgba(0,0,0,.28));

    transform-origin:center bottom;

    will-change:transform;

}

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

@media(max-width:991px){

    #top-agence{

        padding:140px 0 80px;
        text-align:center;

    }

    .top-agence-title{

        margin-bottom:40px;

    }

    .top-agence-heading{

        align-items:center;

    }

    .top-agence-text{

        margin-left:auto;
        margin-right:auto;

    }

    .top-agence-buttons{

        justify-content:center;

    }

    .top-agence-photo-wrapper{

        min-height:auto;
        margin-top:70px;

    }

    .top-agence-photo{

        max-width:360px;

    }

}

@media(max-width:575px){

    #top-agence{

        padding:120px 0 60px;

    }

    .top-agence-title{

        font-size:70px;

    }

    .top-agence-name{

        font-size:52px;

    }

    .top-agence-heading small{

        font-size:24px;

    }

    .top-agence-text{

        font-size:18px;

    }

}




@media (max-width: 1600px) {

}

/* Desktop */
@media (max-width: 1400px) {

}

/* Laptop */
@media (max-width: 1200px) {

}

/* Petite tablette / gros laptop */
@media (max-width: 992px) {
#loading{display:none;}
#canvas{display:none;}
#gui-column{display:none;}
#bg-mobile{display:block;width:100%;height:100vh;background:url('images/bg-mobile.jpg')no-repeat top center;background-size:cover;position:fixed;inset:0;z-index:1;}
nav.navbar.navbar-expand-lg.navbar-dark.fixed-top{padding:0;}
.navbar{top:0;}
.navbar .container {border-radius:0;}

@media (max-width:991px){

    .navbar{
        top:0;
        padding:0;
    }

    .navbar .container{
        max-width:100%;
        padding:15px 20px;
        border-radius:0;
        backdrop-filter:blur(20px);
    }

    /* Bouton burger */
    .navbar-toggler{
        border:none;
        padding:0;
        box-shadow:none !important;
    }

    .navbar-toggler:focus{
        box-shadow:none;
    }

    .navbar-toggler-icon{
        width:32px;
        height:32px;
    }

    /* Menu déroulant */
    .navbar-collapse{
        margin-top:25px;
        padding-top:20px;
        border-top:1px solid rgba(255,255,255,.08);
    }

    .navbar-nav{
        gap:12px;
    }

    .navbar-nav .nav-item{
        width:100%;
    }

    .navbar-expand-lg .navbar-nav .nav-link{
        display:block;
        padding:16px 0;
        font-size:22px;
        font-weight:700;
        letter-spacing:2px;
        text-transform:uppercase;
        color:#fff;
        border-bottom:1px solid rgba(255,255,255,.08);
    }

    .navbar-expand-lg .navbar-nav .nav-link:hover{
        color:#98cdff;
    }

    /* Sous-menu */
    .dropdown-menu{
        background:transparent;
        border:none;
        padding:10px 0 0 20px;
        margin:0;
        backdrop-filter:none;
        box-shadow:none;
    }

    .dropdown-item{
        color:#bfbfbf;
        padding:10px 0;
        font-size:16px;
        background:none;
    }

    .dropdown-item:hover{
        color:#98cdff;
        background:none;
    }

}
.hero-title{font-size:100px;}
.services-cristal{position:absolute;z-index:-1;top:-100px;right:0;}
#footer{margin:0 0 0 0;}
#footer > .container{border-radius:0;}
.avis{padding:40px 0;}
}

/* Tablette */
@media (max-width: 768px) {
.hero-title{font-size:80px;}
.services-title-01{font-size:30px;}
.services-title-02{font-size:30px;}
.services-title-03{font-size:30px;}
.services-title-04{font-size:30px;}

}


@media (max-width: 576px) { 
.hero-title{font-size:60px;}
#presentation{margin:0 0 120px 0;}
#services{margin:0 0 120px 0;}
}




/* =========================================================
   VARIABLES
========================================================= */

:root {
    --seo-green: #a5ed70;
    --seo-green-dark: #73b747;
    --seo-green-light: #dfffc7;

    --seo-black: #080808;
    --seo-white: #ffffff;
    --seo-light: #f3f3f3;
    --seo-grey: #6c6c6c;

    --seo-border: rgba(0, 0, 0, 0.12);
}


/* =========================================================
   RÉGLAGES GÉNÉRAUX
========================================================= */

.py-lg-7 {
    padding-top: 110px;
    padding-bottom: 110px;
}


/* =========================================================
   HERO
========================================================= */
#top-referencement{background:#1a1818 url('images/cristal-green-wireframe.png')no-repeat 15% center;}


.seo-top {
    min-height: 100vh;

    padding-top: 190px;
    padding-bottom: 100px;

    display: flex;
    align-items: center;

    color: var(--seo-white);
    background: var(--seo-black);

    overflow: hidden;
}

.seo-top-subtitle {
    display: inline-block;

    color: var(--seo-green);

    font-size: 14px;
    font-weight: 700;
    line-height: 1.4;

    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.seo-top-title {
    margin: 20px 0 0;

    color: var(--seo-green);

    font-size: clamp(80px, 13vw, 205px);
    font-weight: 1000;
    line-height: 0.87;

    letter-spacing: 0.035em;
    text-transform: uppercase;
}

.seo-top-heading {
    max-width: 950px;
    margin: 0;

    color: var(--seo-white);

    font-size: clamp(45px, 6vw, 88px);
    font-weight: 850;
    line-height: 1.06;

    letter-spacing: 0.02em;
}

.seo-top-heading span {
    display: block;

    color: var(--seo-green);
}

.seo-top-text {
    margin-bottom: 32px;

    color: rgba(255, 255, 255, 0.72);

    font-size: 18px;
    line-height: 1.8;
}


/* =========================================================
   BOUTON DU HERO
========================================================= */

.seo-outline-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 14px;

    padding: 15px 22px;

    border: 1px solid rgba(255, 255, 255, 0.5);
    border-radius: 100px;

    color: var(--seo-white);
    background: transparent;

    font-size: 15px;
    font-weight: 700;
    line-height: 1;

    letter-spacing: 0.025em;

    cursor: pointer;

    transition:
        color 0.3s ease,
        background-color 0.3s ease,
        border-color 0.3s ease,
        transform 0.3s ease;
}

.seo-outline-button svg {
    width: 20px;
    height: 20px;

    flex-shrink: 0;

    transition: transform 0.3s ease;
}

.seo-outline-button:hover {
    color: var(--seo-black);
    background: var(--seo-green);
    border-color: var(--seo-green);
}

.seo-outline-button:hover svg {
    transform: translateX(5px);
}


/* =========================================================
   TITRES ET SOUS-TITRES
========================================================= */

.seo-section-kicker {
    display: inline-block;

    color: var(--seo-green);

    font-size: 13px;
    font-weight: 800;
    line-height: 1.5;

    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.seo-section-number {
    display: inline-flex;
    align-items: center;
    gap: 12px;

    color: var(--seo-green);

    font-size: 14px;
    font-weight: 700;
    line-height: 1;

    letter-spacing: 0.1em;
}

.seo-section-number::after {
    content: "";

    width: 55px;
    height: 1px;

    background: var(--seo-green);
}

.seo-section-title {
    width: 100%;
    max-width: 950px;
    margin: 0;

    color: var(--seo-green);

    font-size: clamp(38px, 5vw, 72px);
    font-weight: 850;
    line-height: 1.1;

    letter-spacing: 0.025em;

    word-break: normal;
    overflow-wrap: normal;
    hyphens: none;
}


/* =========================================================
   INTRODUCTION
========================================================= */

.seo-intro {
    background: var(--seo-white);
}

.seo-intro-content {
    padding-left: 40px;

    border-left: 1px solid var(--seo-border);
}

.seo-intro-content p {
    color: #555555;

    font-size: 17px;
    line-height: 1.85;
}

.seo-intro-content .lead {
    color: var(--seo-green-dark);

    font-size: clamp(23px, 2.5vw, 34px);
    font-weight: 650;
    line-height: 1.45;

    letter-spacing: 0.015em;
}


/* =========================================================
   SOLUTIONS SEO / SEA
========================================================= */

.seo-solutions {
    background: var(--seo-light);
}

.seo-solutions .lead {
    color: #666666;

    font-size: 20px;
    line-height: 1.65;

    letter-spacing: 0.01em;
}

.seo-solution-card {
    position: relative;

    padding: 48px 42px;

    border: 1px solid var(--seo-border);
    border-radius: 30px;

    background: var(--seo-white);

    overflow: hidden;

    transition:
        transform 0.35s ease,
        box-shadow 0.35s ease,
        border-color 0.35s ease;
}

.seo-solution-card:hover {
    transform: translateY(-10px);

    border-color: rgba(165, 237, 112, 0.8);

    box-shadow: 0 30px 70px rgba(0, 0, 0, 0.08);
}

.seo-solution-card-dark {
    color: var(--seo-white);
    background: var(--seo-black);

    border-color: var(--seo-black);
}

.seo-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;

    margin-bottom: 65px;
}

.seo-card-number {
    color: var(--seo-green);

    font-size: 13px;
    font-weight: 800;
    line-height: 1;

    letter-spacing: 0.1em;
}

.seo-card-icon {
    width: 58px;
    height: 58px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    color: var(--seo-black);
    background: var(--seo-green);

    font-size: 29px;
}

.seo-card-label {
    display: block;

    margin-bottom: 10px;

    color: var(--seo-green-dark);

    font-size: 13px;
    font-weight: 800;
    line-height: 1.4;

    letter-spacing: 0.15em;
    text-transform: uppercase;
}

.seo-solution-card-dark .seo-card-label {
    color: var(--seo-green);
}

.seo-card-title {
    margin-bottom: 18px;

    color: var(--seo-green);

    font-size: clamp(50px, 7vw, 90px);
    font-weight: 900;
    line-height: 0.95;

    letter-spacing: 0.035em;
}

.seo-card-introduction {
    color: var(--seo-green-dark) !important;

    font-size: 21px !important;
    font-weight: 650;
    line-height: 1.5 !important;
}

.seo-solution-card-dark .seo-card-introduction {
    color: var(--seo-green) !important;
}

.seo-solution-card p {
    color: #666666;

    font-size: 16px;
    line-height: 1.75;
}

.seo-solution-card-dark p {
    color: rgba(255, 255, 255, 0.68);
}

.seo-feature-list {
    display: flex;
    flex-direction: column;
    gap: 13px;

    margin: 30px 0 0;
    padding: 0;

    list-style: none;
}

.seo-feature-list li {
    position: relative;

    padding-left: 22px;

    color: #444444;

    font-size: 14px;
    line-height: 1.5;
}

.seo-feature-list li::before {
    content: "";

    position: absolute;
    top: 8px;
    left: 0;

    width: 7px;
    height: 7px;

    border-radius: 50%;

    background: var(--seo-green);
}

.seo-solution-card-dark .seo-feature-list li {
    color: rgba(255, 255, 255, 0.82);
}


/* =========================================================
   ANALYSE ET STRATÉGIE
========================================================= */

.seo-strategy {
    position: relative;

    background: var(--seo-white);

    overflow: visible;
}

.seo-strategy p {
    color: #666666;

    font-size: 17px;
    line-height: 1.8;
}

.seo-strategy .lead {
    color: var(--seo-green-dark);

    font-size: 23px;
    font-weight: 650;
    line-height: 1.5;

    letter-spacing: 0.015em;
}

.seo-strategy-visual {
    position: relative;

    isolation: isolate;

    min-height: 590px;
    padding: 55px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 34px;

    background: var(--seo-green);

    overflow: visible;
}

.seo-search-window {
    position: relative;
    z-index: 1;

    width: 100%;
    max-width: 490px;

    padding: 15px;

    border-radius: 20px;

    background: var(--seo-white);

    box-shadow: 0 35px 80px rgba(0, 0, 0, 0.16);

    transform: rotate(-4deg);
}

.seo-search-window-bar {
    display: flex;
    gap: 7px;

    padding: 3px 4px 15px;
}

.seo-search-window-bar span {
    width: 9px;
    height: 9px;

    border-radius: 50%;

    background: #d4d4d4;
}

.seo-search-window-content {
    min-height: 360px;

    padding: 30px;

    border-radius: 13px;

    background: #f3f3f3;
}

.seo-search-bar {
    padding: 13px 18px;

    display: flex;
    align-items: center;
    gap: 12px;

    border: 1px solid rgba(0, 0, 0, 0.12);
    border-radius: 100px;

    background: var(--seo-white);
}

.seo-search-bar .material-symbols-outlined {
    color: var(--seo-green-dark);

    font-size: 22px;
}

.seo-search-placeholder {
    color: #777777;

    font-size: 13px;
    line-height: 1.2;
}

.seo-search-result {
    margin-top: 30px;
}

.seo-search-result-secondary {
    margin-top: 35px;

    opacity: 0.55;
}

.seo-result-url,
.seo-result-title,
.seo-result-text {
    display: block;

    border-radius: 100px;
}

.seo-result-url {
    width: 100px;
    height: 7px;

    margin-bottom: 12px;

    background: rgba(0, 0, 0, 0.15);
}

.seo-result-title {
    width: 70%;
    height: 18px;

    margin-bottom: 15px;

    background: var(--seo-green-dark);
}

.seo-result-text {
    width: 100%;
    height: 7px;

    margin-bottom: 8px;

    background: rgba(0, 0, 0, 0.14);
}

.seo-result-text-short {
    width: 75%;
}

.seo-strategy-floating-text {
    position: absolute;
    right: -35px;
    bottom: 70px;
    z-index: 20;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    max-width: calc(100% - 30px);
    padding: 17px 28px;

    border-radius: 100px;

    color: var(--seo-white);
    background: var(--seo-black);

    font-size: 14px;
    font-weight: 800;
    line-height: 1;

    letter-spacing: 0.06em;
    white-space: nowrap;

    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.22);

    transform: rotate(6deg);

    pointer-events: none;
}

.seo-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.seo-tags span {
    padding: 11px 17px;

    border: 1px solid rgba(115, 183, 71, 0.5);
    border-radius: 100px;

    color: var(--seo-green-dark);
    background: rgba(165, 237, 112, 0.1);

    font-size: 13px;
    font-weight: 700;
    line-height: 1;

    letter-spacing: 0.025em;
}


/* =========================================================
   ACCOMPAGNEMENT
========================================================= */

.seo-support {
    color: var(--seo-white);
    background: var(--seo-black);
}

.seo-support .seo-section-title {
    color: var(--seo-green);
}

.seo-support .lead {
    color: rgba(255, 255, 255, 0.65);

    font-size: 20px;
    line-height: 1.65;
}

.seo-support-card {
    position: relative;

    padding: 48px;

    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 30px;

    background: rgba(255, 255, 255, 0.04);

    overflow: hidden;

    transition:
        background-color 0.3s ease,
        transform 0.3s ease,
        border-color 0.3s ease;
}

.seo-support-card:hover {
    transform: translateY(-8px);

    border-color: rgba(165, 237, 112, 0.55);
    background: rgba(255, 255, 255, 0.08);
}

.seo-support-icon {
    width: 65px;
    height: 65px;

    margin-bottom: 65px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    color: var(--seo-black);
    background: var(--seo-green);

    font-size: 31px;
}

.seo-support-label {
    display: block;

    margin-bottom: 8px;

    color: var(--seo-green);

    font-size: 13px;
    font-weight: 800;
    line-height: 1.4;

    letter-spacing: 0.17em;
    text-transform: uppercase;
}

.seo-support-card h3 {
    margin-bottom: 20px;

    color: var(--seo-green);

    font-size: clamp(45px, 6vw, 70px);
    font-weight: 850;
    line-height: 1;

    letter-spacing: 0.035em;
}

.seo-support-card > p {
    color: rgba(255, 255, 255, 0.64);

    font-size: 17px;
    line-height: 1.75;
}

.seo-support-message {
    margin-top: 32px;
    padding: 22px 24px;

    border: 1px solid rgba(165, 237, 112, 0.4);
    border-radius: 18px;

    color: rgba(255, 255, 255, 0.88);
    background: rgba(165, 237, 112, 0.08);

    font-size: 15px;
    font-weight: 550;
    line-height: 1.65;

    letter-spacing: 0.015em;
}


/* =========================================================
   COMMENT ÇA MARCHE
========================================================= */

.seo-process {
    background: var(--seo-white);
}

.seo-process-box {
    padding: 70px;

    border-radius: 35px;

    background: var(--seo-green);
}

.seo-process-box .row > [class*="col-"] {
    min-width: 0;
}

.seo-process-box .seo-section-kicker {
    color: var(--seo-black);
}

.seo-process-box .seo-section-title {
    width: 100%;
    max-width: 100%;

    color: var(--seo-black);

    font-size: clamp(30px, 3.35vw, 50px);
    font-weight: 850;
    line-height: 1.14;

    letter-spacing: 0.012em;

    word-break: normal;
    overflow-wrap: normal;
    hyphens: none;
}

.seo-process-box p {
    color: rgba(0, 0, 0, 0.68);

    font-size: 17px;
    line-height: 1.8;
}

.seo-process-box .lead {
    color: var(--seo-black);

    font-size: 24px;
    font-weight: 650;
    line-height: 1.5;

    letter-spacing: 0.015em;
}

.seo-process-item {
    height: 100%;

    padding: 26px;

    display: flex;
    flex-direction: column;
    gap: 15px;

    border: 1px solid rgba(0, 0, 0, 0.14);
    border-radius: 20px;

    background: rgba(255, 255, 255, 0.2);

    transition:
        transform 0.3s ease,
        background-color 0.3s ease;
}

.seo-process-item:hover {
    transform: translateY(-5px);

    background: rgba(255, 255, 255, 0.38);
}

.seo-process-item .material-symbols-outlined {
    color: var(--seo-black);

    font-size: 32px;
}

.seo-process-item strong {
    color: var(--seo-black);

    font-size: 16px;
    font-weight: 850;
    line-height: 1.3;

    letter-spacing: 0.035em;
}

.seo-process-item p {
    margin: 0;

    color: rgba(0, 0, 0, 0.62);

    font-size: 14px;
    line-height: 1.6;
}


/* =========================================================
   QUESTIONS
========================================================= */

.seo-questions {
    background: var(--seo-light);
}

.seo-questions .row > [class*="col-"] {
    min-width: 0;
}

.seo-questions .seo-section-title {
    width: 100%;
    max-width: 100%;

    color: var(--seo-green);

    font-size: clamp(29px, 3vw, 45px);
    font-weight: 850;
    line-height: 1.16;

    letter-spacing: 0.012em;

    word-break: normal;
    overflow-wrap: normal;
    hyphens: none;
}

.seo-question-card {
    position: relative;

    padding: 45px 45px 45px 100px;

    border-radius: 28px;

    background: var(--seo-white);

    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.04);
}

.seo-question-card + .seo-question-card {
    margin-top: 25px;
}

.seo-question-number {
    position: absolute;
    top: 48px;
    left: 42px;

    color: var(--seo-green-dark);

    font-size: 13px;
    font-weight: 850;
    line-height: 1;

    letter-spacing: 0.08em;
}

.seo-question-card h3 {
    margin-bottom: 20px;

    color: var(--seo-green-dark);

    font-size: clamp(25px, 3vw, 39px);
    font-weight: 800;
    line-height: 1.25;

    letter-spacing: 0.02em;

    word-break: normal;
    overflow-wrap: normal;
    hyphens: none;
}

.seo-question-card p {
    color: #666666;

    font-size: 16px;
    line-height: 1.8;
}


/* =========================================================
   CTA FINAL
========================================================= */

.seo-cta {
    background: var(--seo-white);
}

.seo-cta-box {
    position: relative;

    padding: 75px;

    border-radius: 35px;

    color: var(--seo-white);
    background: var(--seo-black);

    overflow: hidden;
}

.seo-cta-box::before {
    content: "";

    position: absolute;
    top: -170px;
    right: -130px;

    width: 430px;
    height: 430px;

    border-radius: 50%;

    background: var(--seo-green);

    opacity: 0.16;
}

.seo-cta-box > .row {
    position: relative;
    z-index: 2;
}

.seo-cta-title {
    max-width: 950px;

    color: var(--seo-green);

    font-size: clamp(40px, 5vw, 72px);
    font-weight: 850;
    line-height: 1.1;

    letter-spacing: 0.025em;

    word-break: normal;
    overflow-wrap: normal;
    hyphens: none;
}

.seo-cta-box p {
    color: rgba(255, 255, 255, 0.65);

    font-size: 17px;
    line-height: 1.7;
}

.seo-cta-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;

    padding: 17px 24px;

    border: 1px solid var(--seo-green);
    border-radius: 100px;

    color: var(--seo-black);
    background: var(--seo-green);

    font-size: 15px;
    font-weight: 800;
    line-height: 1;

    letter-spacing: 0.025em;

    cursor: pointer;

    transition:
        color 0.3s ease,
        background-color 0.3s ease,
        border-color 0.3s ease;
}

.seo-cta-button svg {
    width: 20px;
    height: 20px;

    flex-shrink: 0;

    transition: transform 0.3s ease;
}

.seo-cta-button:hover {
    color: var(--seo-green);
    background: transparent;
}

.seo-cta-button:hover svg {
    transform: translateX(5px);
}


/* =========================================================
   ANIMATIONS
========================================================= */

.reveal,
.reveal-fast {
    will-change: transform, opacity;
}


/* =========================================================
   RESPONSIVE — GRANDS ÉCRANS INTERMÉDIAIRES
========================================================= */

@media (max-width: 1399px) {

    .seo-process-box .seo-section-title {
        font-size: clamp(29px, 3.15vw, 46px);
    }

    .seo-questions .seo-section-title {
        font-size: clamp(28px, 2.85vw, 41px);
    }
}


/* =========================================================
   RESPONSIVE — ÉCRANS MOYENS
========================================================= */

@media (max-width: 1199px) {

    .seo-top-title {
        font-size: clamp(75px, 14vw, 150px);
    }

    .seo-strategy-visual {
        min-height: 510px;
    }

    .seo-process-box,
    .seo-cta-box {
        padding: 55px;
    }

    .seo-process-box .seo-section-title {
        font-size: clamp(27px, 3vw, 40px);
        line-height: 1.17;
    }

    .seo-questions .seo-section-title {
        font-size: clamp(26px, 2.7vw, 37px);
        line-height: 1.18;
    }
}


/* =========================================================
   RESPONSIVE — TABLETTES
========================================================= */

@media (max-width: 991px) {

    .py-lg-7 {
        padding-top: 80px;
        padding-bottom: 80px;
    }

    .seo-top {
        min-height: auto;

        padding-top: 160px;
        padding-bottom: 90px;
    }

    .seo-top-title {
        font-size: clamp(65px, 15vw, 130px);
    }

    .seo-intro-content {
        padding-left: 0;

        border-left: 0;
    }

    .seo-strategy-visual {
        min-height: 500px;
    }

    .seo-strategy-floating-text {
        right: -15px;
        bottom: 55px;
    }

    .seo-process-box,
    .seo-cta-box {
        padding: 45px;
    }

    .seo-process-box .seo-section-title,
    .seo-questions .seo-section-title {
        font-size: clamp(38px, 6vw, 55px);
        line-height: 1.12;
    }
}


/* =========================================================
   RESPONSIVE — MOBILES
========================================================= */

@media (max-width: 767px) {

    .py-lg-7 {
        padding-top: 65px;
        padding-bottom: 65px;
    }

    .seo-top {
        padding-top: 135px;
        padding-bottom: 70px;
    }

    .seo-top-subtitle {
        font-size: 11px;

        letter-spacing: 0.14em;
    }

    .seo-top-title {
        margin-top: 20px;

        font-size: clamp(55px, 18vw, 105px);
        line-height: 0.92;

        letter-spacing: 0.025em;
    }

    .seo-top-heading {
        font-size: 44px;
        line-height: 1.1;
    }

    .seo-top-text {
        font-size: 16px;
    }

    .seo-section-title {
        font-size: 42px;
        line-height: 1.14;

        letter-spacing: 0.02em;
    }

    .seo-solution-card,
    .seo-support-card {
        padding: 35px 28px;
    }

    .seo-card-top {
        margin-bottom: 45px;
    }

    .seo-strategy-visual {
        min-height: 410px;
        padding: 30px 20px;
    }

    .seo-search-window-content {
        min-height: 300px;

        padding: 24px 20px;
    }

    .seo-strategy-floating-text {
        right: -10px;
        bottom: 30px;

        padding: 14px 20px;

        font-size: 12px;

        letter-spacing: 0.045em;

        transform: rotate(4deg);
    }

    .seo-process-box,
    .seo-cta-box {
        padding: 36px 26px;

        border-radius: 25px;
    }

    .seo-process-box .seo-section-title,
    .seo-questions .seo-section-title {
        font-size: 35px;
        line-height: 1.16;

        letter-spacing: 0.01em;
    }

    .seo-question-card {
        padding: 75px 28px 35px;
    }

    .seo-question-number {
        top: 35px;
        left: 28px;
    }

    .seo-cta-title {
        font-size: 41px;
        line-height: 1.14;
    }

    .seo-cta-button {
        width: 100%;
    }
}


/* =========================================================
   RESPONSIVE — PETITS MOBILES
========================================================= */

@media (max-width: 575px) {

    .seo-top-title {
        white-space: nowrap;

        font-size: 15vw;

        letter-spacing: 0.02em;
    }

    .seo-top-heading {
        font-size: 38px;
    }

    .seo-section-title {
        font-size: 36px;
    }

    .seo-card-title {
        font-size: 60px;
    }

    .seo-strategy-visual {
        min-height: 360px;
    }

    .seo-search-window {
        transform: rotate(-2deg);
    }

    .seo-strategy-floating-text {
        right: 10px;
        bottom: -20px;

        max-width: calc(100% - 20px);

        white-space: normal;
        text-align: center;
    }

    .seo-support-card h3 {
        font-size: 50px;
    }

    .seo-process-box .seo-section-title,
    .seo-questions .seo-section-title {
        font-size: 30px;
        line-height: 1.18;

        letter-spacing: 0.005em;
    }

    .seo-question-card h3 {
        font-size: 27px;
    }

    .seo-cta-title {
        font-size: 36px;
    }
}


/* =========================================================
   TRÈS PETITS MOBILES
========================================================= */

@media (max-width: 390px) {

    .seo-process-box,
    .seo-cta-box {
        padding-left: 20px;
        padding-right: 20px;
    }

    .seo-process-box .seo-section-title,
    .seo-questions .seo-section-title {
        font-size: 27px;
        line-height: 1.2;
    }

    .seo-question-card {
        padding-left: 22px;
        padding-right: 22px;
    }
}




:root{
    --av-red:#98cdff;
    --av-red-dark:#6bb8ff;
    --av-red-light:#d9efff;
    --av-black:#080808;
    --av-white:#ffffff;
    --av-light:#f3f3f3;
    --av-grey:#6c6c6c;
    --av-border:rgba(0,0,0,.12);
}
#top-audiovisuel{background:#1a1818 url('images/cristal-blue-wireframe.png')no-repeat 15% center;}
.av-top{min-height:100vh;padding-top:190px;padding-bottom:100px;display:flex;align-items:center;color:var(--av-white);background:var(--av-black);overflow:hidden}
.av-top-subtitle{display:inline-block;color:var(--av-red);font-size:14px;font-weight:700;line-height:1.4;letter-spacing:.18em;text-transform:uppercase}
.av-top-title{margin:20px 0 0;color:var(--av-red);font-size:clamp(72px,11vw,180px);font-weight:1000;line-height:.87;letter-spacing:.025em;text-transform:uppercase}
.av-top-heading{max-width:950px;margin:0;color:var(--av-white);font-size:clamp(45px,6vw,88px);font-weight:850;line-height:1.06;letter-spacing:.02em}
.av-top-heading span{display:block;color:var(--av-red)}
.av-top-text{margin-bottom:32px;color:rgba(255,255,255,.72);font-size:18px;line-height:1.8}
.av-outline-button,.av-cta-button{display:inline-flex;align-items:center;justify-content:center;gap:14px;padding:15px 22px;border:1px solid rgba(255,255,255,.5);border-radius:100px;color:var(--av-white);background:transparent;font-size:15px;font-weight:700;line-height:1;letter-spacing:.025em;cursor:pointer;transition:color .3s ease,background-color .3s ease,border-color .3s ease}
.av-outline-button svg,.av-cta-button svg{width:20px;height:20px;flex-shrink:0;transition:transform .3s ease}
.av-outline-button:hover{color:var(--av-black);background:var(--av-red);border-color:var(--av-red)}
.av-outline-button:hover svg,.av-cta-button:hover svg{transform:translateX(5px)}
.av-section-kicker{display:inline-block;color:var(--av-red);font-size:13px;font-weight:800;line-height:1.5;letter-spacing:.18em;text-transform:uppercase}
.av-section-number{display:inline-flex;align-items:center;gap:12px;color:var(--av-red);font-size:14px;font-weight:700;line-height:1;letter-spacing:.1em}
.av-section-number::after{content:"";width:55px;height:1px;background:var(--av-red)}
.av-section-title{width:100%;
    max-width:100%;
    margin:0;
    color:var(--av-red);
    font-size:clamp(34px,3.8vw,58px);
    font-weight:850;
    line-height:1.12;
    letter-spacing:.015em;
    word-break:normal;
    overflow-wrap:normal;
    hyphens:none;}
	
	.av-guidance-box .av-section-title{
    font-size:clamp(32px,3.3vw,50px);
    line-height:1.12;
    letter-spacing:.01em;
}
.av-intro{background:var(--av-white)}
.av-intro-content{padding-left:40px;border-left:1px solid var(--av-border)}
.av-intro-content p{color:#555;font-size:17px;line-height:1.85}
.av-intro-content .lead{color:var(--av-red-dark);font-size:clamp(23px,2.5vw,34px);font-weight:650;line-height:1.45;letter-spacing:.015em}
.av-services{background:var(--av-light)}
.av-services .lead,.av-formats .lead{color:#666;font-size:20px;line-height:1.65}
.av-service-card{position:relative;padding:48px 42px;border:1px solid var(--av-border);border-radius:30px;background:var(--av-white);overflow:hidden;transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease}
.av-service-card:hover{transform:translateY(-10px);border-color:rgba(242,87,87,.75);box-shadow:0 30px 70px rgba(0,0,0,.08)}
.av-service-card-dark{color:var(--av-white);background:var(--av-black);border-color:var(--av-black)}
.av-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:55px}
.av-card-number{color:var(--av-red);font-size:13px;font-weight:800;line-height:1;letter-spacing:.1em}
.av-card-icon{width:58px;height:58px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--av-white);background:var(--av-red);font-size:29px}
.av-card-label{display:block;margin-bottom:10px;color:var(--av-red-dark);font-size:13px;font-weight:800;line-height:1.4;letter-spacing:.15em;text-transform:uppercase}
.av-service-card-dark .av-card-label{color:var(--av-red)}
.av-card-title{margin-bottom:18px;color:var(--av-red);font-size:clamp(34px,3.2vw,54px);font-weight:900;line-height:.95;letter-spacing:.025em}
.av-card-introduction{color:var(--av-red-dark)!important;font-size:21px!important;font-weight:650;line-height:1.5!important}
.av-service-card-dark .av-card-introduction{color:var(--av-red)!important}
.av-service-card p{color:#666;font-size:16px;line-height:1.75}
.av-service-card-dark p{color:rgba(255,255,255,.68)}
.av-impact{background:var(--av-white);overflow:visible}
.av-impact p{color:#666;font-size:17px;line-height:1.8}
.av-impact .lead{color:var(--av-red-dark);font-size:23px;font-weight:650;line-height:1.5}
.av-impact-visual{position:relative;isolation:isolate;min-height:590px;padding:55px;display:flex;align-items:center;justify-content:center;border-radius:34px;background:var(--av-red);overflow:visible}
.av-screen{position:relative;z-index:1;width:100%;max-width:500px;padding:15px;border-radius:20px;background:var(--av-white);box-shadow:0 35px 80px rgba(0,0,0,.16);transform:rotate(-4deg)}
.av-screen-bar{display:flex;gap:7px;padding:3px 4px 15px}
.av-screen-bar span{width:9px;height:9px;border-radius:50%;background:#d4d4d4}
.av-screen-content{position:relative;min-height:330px;display:flex;align-items:center;justify-content:center;border-radius:13px;background:linear-gradient(135deg,#111,#333);overflow:hidden}
.av-screen-content::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 35%,rgba(242,87,87,.45),transparent 42%)}
.av-play-icon{position:relative;z-index:2;width:82px;height:82px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--av-white);background:var(--av-red);font-size:45px;box-shadow:0 18px 40px rgba(0,0,0,.3)}
.av-screen-timeline{position:absolute;left:25px;right:25px;bottom:25px;height:5px;border-radius:100px;background:rgba(255,255,255,.25)}
.av-screen-timeline span{display:block;width:58%;height:100%;border-radius:100px;background:var(--av-red)}
.av-impact-floating-text{position:absolute;right:-35px;bottom:70px;z-index:20;display:inline-flex;align-items:center;justify-content:center;padding:17px 28px;border-radius:100px;color:var(--av-white);background:var(--av-black);font-size:14px;font-weight:800;line-height:1;letter-spacing:.06em;white-space:nowrap;box-shadow:0 18px 40px rgba(0,0,0,.22);transform:rotate(6deg)}
.av-stat{height:100%;padding:22px;border:1px solid var(--av-border);border-radius:18px;background:var(--av-light)}
.av-stat strong{display:block;margin-bottom:8px;color:var(--av-red);font-size:36px;font-weight:900;line-height:1}
.av-stat span{color:#555;font-size:13px;line-height:1.45}
.av-formats{color:var(--av-white);background:var(--av-black)}
.av-formats .av-section-title{color:var(--av-red)}
.av-formats .lead{color:rgba(255,255,255,.65)}
.av-format-item{height:100%;padding:30px;border:1px solid rgba(255,255,255,.12);border-radius:22px;background:rgba(255,255,255,.04);transition:transform .3s ease,border-color .3s ease,background-color .3s ease}
.av-format-item:hover{transform:translateY(-6px);border-color:rgba(242,87,87,.55);background:rgba(255,255,255,.08)}
.av-format-item .material-symbols-outlined{width:54px;height:54px;margin-bottom:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--av-white);background:var(--av-red);font-size:27px}
.av-format-item strong{display:block;margin-bottom:12px;color:var(--av-red);font-size:22px;font-weight:850;line-height:1.2}
.av-format-item p{margin:0;color:rgba(255,255,255,.64);font-size:15px;line-height:1.65}
.av-guidance{background:var(--av-white)}
.av-guidance-box{padding:70px;border-radius:35px;background:var(--av-red)}
.av-guidance-box .av-section-kicker,.av-guidance-box .av-section-title{color:var(--av-black)}
.av-guidance-box p{color:rgba(0,0,0,.68);font-size:17px;line-height:1.8}
.av-guidance-box .lead{color:var(--av-black);font-size:24px;font-weight:650;line-height:1.5}
.av-guidance-item{height:100%;padding:26px;display:flex;flex-direction:column;gap:15px;border:1px solid rgba(0,0,0,.14);border-radius:20px;background:rgba(255,255,255,.2);transition:transform .3s ease,background-color .3s ease}
.av-guidance-item:hover{transform:translateY(-5px);background:rgba(255,255,255,.38)}
.av-guidance-item .material-symbols-outlined{color:var(--av-black);font-size:32px}
.av-guidance-item strong{color:var(--av-black);font-size:16px;font-weight:850;line-height:1.3;letter-spacing:.035em}
.av-guidance-item p{margin:0;color:rgba(0,0,0,.62);font-size:14px;line-height:1.6}
.av-distribution{background:var(--av-light)}
.av-distribution-card{position:relative;padding:45px 45px 45px 100px;border-radius:28px;background:var(--av-white);box-shadow:0 20px 50px rgba(0,0,0,.04)}
.av-distribution-card+.av-distribution-card{margin-top:25px}
.av-distribution-number{position:absolute;top:48px;left:42px;color:var(--av-red-dark);font-size:13px;font-weight:850;line-height:1;letter-spacing:.08em}
.av-distribution-card h3{margin-bottom:20px;color:var(--av-red-dark);font-size:clamp(25px,3vw,39px);font-weight:800;line-height:1.25;letter-spacing:.02em}
.av-distribution-card p{color:#666;font-size:16px;line-height:1.8}
.av-cta{background:var(--av-white)}
.av-cta-box{position:relative;padding:75px;border-radius:35px;color:var(--av-white);background:var(--av-black);overflow:hidden}
.av-cta-box::before{content:"";position:absolute;top:-170px;right:-130px;width:430px;height:430px;border-radius:50%;background:var(--av-red);opacity:.18}
.av-cta-box>.row{position:relative;z-index:2}
.av-cta-title{max-width:950px;color:var(--av-red);font-size:clamp(40px,5vw,72px);font-weight:850;line-height:1.1;letter-spacing:.025em}
.av-cta-box p{color:rgba(255,255,255,.65);font-size:17px;line-height:1.7}
.av-cta-button{border-color:var(--av-red);color:var(--av-white);background:var(--av-red)}
.av-cta-button:hover{color:var(--av-red);background:transparent}
.reveal{will-change:transform,opacity}
@media(max-width:1199px){.av-impact-visual{min-height:510px}.av-guidance-box,.av-cta-box{padding:55px}}
@media(max-width:991px){.py-lg-7{padding-top:80px;padding-bottom:80px}.av-top{min-height:auto;padding-top:160px;padding-bottom:90px}.av-top-title{font-size:clamp(65px,13vw,125px)}.av-intro-content{padding-left:0;border-left:0}.av-impact-visual{min-height:500px}.av-impact-floating-text{right:-15px;bottom:55px}.av-guidance-box,.av-cta-box{padding:45px}}
@media(max-width:767px){.py-lg-7{padding-top:65px;padding-bottom:65px}.av-top{padding-top:135px;padding-bottom:70px}.av-top-subtitle{font-size:11px;letter-spacing:.14em}.av-top-title{font-size:clamp(50px,14vw,90px);line-height:.92}.av-top-heading{font-size:44px;line-height:1.1}.av-top-text{font-size:16px}.av-section-title{font-size:42px;line-height:1.14}.av-service-card{padding:35px 28px}.av-card-top{margin-bottom:45px}.av-impact-visual{min-height:410px;padding:30px 20px}.av-screen-content{min-height:280px}.av-impact-floating-text{right:-10px;bottom:30px;padding:14px 20px;font-size:12px;transform:rotate(4deg)}.av-guidance-box,.av-cta-box{padding:36px 26px;border-radius:25px}.av-distribution-card{padding:75px 28px 35px}.av-distribution-number{top:35px;left:28px}.av-cta-title{font-size:41px}.av-cta-button{width:100%}}
@media(max-width:575px){.av-top-title{white-space:nowrap;font-size:13vw}.av-top-heading{font-size:38px}.av-section-title{font-size:36px}.av-card-title{font-size:52px}.av-impact-visual{min-height:360px}.av-screen{transform:rotate(-2deg)}.av-impact-floating-text{right:10px;bottom:-20px;max-width:calc(100% - 20px);white-space:normal;text-align:center}.av-cta-title{font-size:36px}}
@media(max-width:390px){.av-guidance-box,.av-cta-box{padding-left:20px;padding-right:20px}.av-distribution-card{padding-left:22px;padding-right:22px}}



#top-graphisme{background:#1a1818 url('images/cristal-yellow-wireframe.png')no-repeat 15% center;}
:root{--gr-yellow:#ede670;--gr-yellow-dark:#353535;--gr-yellow-light:#f8f4b7;--gr-black:#080808;--gr-white:#fff;--gr-light:#f3f3f3;--gr-grey:#6c6c6c;--gr-border:rgba(0,0,0,.12)}
.py-lg-7{padding-top:110px;padding-bottom:110px}
.gr-top{min-height:100vh;padding-top:190px;padding-bottom:100px;display:flex;align-items:center;color:var(--gr-white);background:var(--gr-black);overflow:hidden}
.gr-top-subtitle{display:inline-block;color:var(--gr-yellow);font-size:14px;font-weight:700;line-height:1.4;letter-spacing:.18em;text-transform:uppercase}
.gr-top-title{margin:20px 0 0;color:var(--gr-yellow);font-size:clamp(62px,9vw,150px);font-weight:1000;line-height:.88;letter-spacing:.02em;text-transform:uppercase}
.gr-top-heading{max-width:950px;margin:0;color:var(--gr-white);font-size:clamp(45px,6vw,88px);font-weight:850;line-height:1.06;letter-spacing:.02em}
.gr-top-heading span{display:block;color:var(--gr-yellow)}
.gr-top-text{margin-bottom:32px;color:rgba(255,255,255,.72);font-size:18px;line-height:1.8}
.gr-outline-button,.gr-cta-button{display:inline-flex;align-items:center;justify-content:center;gap:14px;padding:15px 22px;border:1px solid rgba(255,255,255,.5);border-radius:100px;color:var(--gr-white);background:transparent;font-size:15px;font-weight:700;line-height:1;letter-spacing:.025em;cursor:pointer;transition:color .3s ease,background-color .3s ease,border-color .3s ease}
.gr-outline-button svg,.gr-cta-button svg{width:20px;height:20px;flex-shrink:0;transition:transform .3s ease}
.gr-outline-button:hover{color:var(--gr-black);background:var(--gr-yellow);border-color:var(--gr-yellow)}
.gr-outline-button:hover svg,.gr-cta-button:hover svg{transform:translateX(5px)}
.gr-section-kicker{display:inline-block;color:var(--gr-yellow);font-size:13px;font-weight:800;line-height:1.5;letter-spacing:.18em;text-transform:uppercase}
.gr-section-number{display:inline-flex;align-items:center;gap:12px;color:var(--gr-yellow-dark);font-size:14px;font-weight:700;line-height:1;letter-spacing:.1em}
.gr-section-number::after{content:"";width:55px;height:1px;background:var(--gr-yellow-dark)}
.gr-section-title{width:100%;max-width:950px;margin:0;color:var(--gr-yellow-dark);font-size:clamp(38px,5vw,72px);font-weight:850;line-height:1.1;letter-spacing:.02em;word-break:normal;overflow-wrap:normal;hyphens:none}
.gr-intro{background:var(--gr-white)}
.gr-intro-content{padding-left:40px;border-left:1px solid var(--gr-border)}
.gr-intro-content p{color:#555;font-size:17px;line-height:1.85}
.gr-intro-content .lead{color:var(--gr-yellow-dark);font-size:clamp(23px,2.5vw,34px);font-weight:650;line-height:1.45;letter-spacing:.015em}
.gr-method{background:var(--gr-light)}
.gr-method .lead,.gr-creations .lead{color:#666;font-size:20px;line-height:1.65}
.gr-method-card{position:relative;padding:48px 42px;border:1px solid var(--gr-border);border-radius:30px;background:var(--gr-white);overflow:hidden;transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease}
.gr-method-card:hover{transform:translateY(-10px);border-color:rgba(237,230,112,.85);box-shadow:0 30px 70px rgba(0,0,0,.08)}
.gr-method-card-dark{color:var(--gr-white);background:var(--gr-black);border-color:var(--gr-black)}
.gr-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:55px}
.gr-card-number{color:var(--gr-yellow-dark);font-size:13px;font-weight:800;line-height:1;letter-spacing:.1em}
.gr-method-card-dark .gr-card-number{color:var(--gr-yellow)}
.gr-card-icon{width:58px;height:58px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--gr-black);background:var(--gr-yellow);font-size:29px}
.gr-card-label{display:block;margin-bottom:10px;color:var(--gr-yellow-dark);font-size:13px;font-weight:800;line-height:1.4;letter-spacing:.15em;text-transform:uppercase}
.gr-method-card-dark .gr-card-label{color:var(--gr-yellow)}
.gr-card-title{margin-bottom:18px;color:var(--gr-yellow-dark);font-size:clamp(31px,3vw,48px);font-weight:900;line-height:1.04;letter-spacing:.012em;word-break:normal;overflow-wrap:normal;hyphens:none}
.gr-method-card-dark .gr-card-title{color:var(--gr-yellow)}
.gr-card-introduction{color:var(--gr-yellow-dark)!important;font-size:21px!important;font-weight:650;line-height:1.5!important}
.gr-method-card-dark .gr-card-introduction{color:var(--gr-yellow)!important}
.gr-method-card p{color:#666;font-size:16px;line-height:1.75}
.gr-method-card-dark p{color:rgba(255,255,255,.68)}
.gr-identity{background:var(--gr-white);overflow:visible}
.gr-identity p{color:#666;font-size:17px;line-height:1.8}
.gr-identity .lead{color:var(--gr-yellow-dark);font-size:23px;font-weight:650;line-height:1.5}
.gr-identity-visual{position:relative;isolation:isolate;min-height:590px;padding:55px;display:flex;align-items:center;justify-content:center;border-radius:34px;background:var(--gr-yellow);overflow:visible}
.gr-brand-board{position:relative;z-index:1;width:100%;max-width:500px;padding:35px;border-radius:24px;background:var(--gr-white);box-shadow:0 35px 80px rgba(0,0,0,.16);transform:rotate(-4deg)}
.gr-brand-logo{margin-bottom:35px;color:var(--gr-black);font-size:clamp(44px,7vw,82px);font-weight:1000;line-height:1;letter-spacing:.02em}
.gr-brand-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:28px}
.gr-brand-grid span{aspect-ratio:1;border-radius:12px}
.gr-brand-grid span:nth-child(1){background:var(--gr-black)}
.gr-brand-grid span:nth-child(2){background:var(--gr-yellow)}
.gr-brand-grid span:nth-child(3){background:#d8d8d8}
.gr-brand-grid span:nth-child(4){background:#888}
.gr-brand-lines{display:grid;gap:12px}
.gr-brand-lines span{display:block;height:12px;border-radius:100px;background:#e8e8e8}
.gr-brand-lines span:nth-child(2){width:82%}
.gr-brand-lines span:nth-child(3){width:58%}
.gr-identity-floating-text{position:absolute;right:-35px;bottom:70px;z-index:20;display:inline-flex;align-items:center;justify-content:center;padding:17px 28px;border-radius:100px;color:var(--gr-black);background:var(--gr-white);font-size:14px;font-weight:800;line-height:1;letter-spacing:.06em;white-space:nowrap;box-shadow:0 18px 40px rgba(0,0,0,.22);transform:rotate(6deg)}
.gr-tags{display:flex;flex-wrap:wrap;gap:10px}
.gr-tags span{padding:10px 15px;border:1px solid var(--gr-border);border-radius:100px;color:#555;background:var(--gr-light);font-size:13px;font-weight:650}
.gr-creations{color:var(--gr-white);background:var(--gr-black)}
.gr-creations .gr-section-title{color:var(--gr-yellow)}
.gr-creations .lead{color:rgba(255,255,255,.65)}
.gr-creation-item{height:100%;padding:30px;border:1px solid rgba(255,255,255,.12);border-radius:22px;background:rgba(255,255,255,.04);transition:transform .3s ease,border-color .3s ease,background-color .3s ease}
.gr-creation-item:hover{transform:translateY(-6px);border-color:rgba(237,230,112,.6);background:rgba(255,255,255,.08)}
.gr-creation-item .material-symbols-outlined{width:54px;height:54px;margin-bottom:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--gr-black);background:var(--gr-yellow);font-size:27px}
.gr-creation-item strong{display:block;margin-bottom:12px;color:var(--gr-yellow);font-size:22px;font-weight:850;line-height:1.2}
.gr-creation-item p{margin:0;color:rgba(255,255,255,.64);font-size:15px;line-height:1.65}
.gr-impact{background:var(--gr-white)}
.gr-impact-box{padding:70px;border-radius:35px;background:var(--gr-yellow)}
.gr-impact-box .gr-section-kicker,.gr-impact-box .gr-section-title{color:var(--gr-black)}
.gr-impact-box .gr-section-title{font-size:clamp(32px,3.3vw,50px);line-height:1.12;letter-spacing:.01em}
.gr-impact-box p{color:rgba(0,0,0,.68);font-size:17px;line-height:1.8}
.gr-impact-box .lead{color:var(--gr-black);font-size:24px;font-weight:650;line-height:1.5}
.gr-impact-item{height:100%;padding:26px;display:flex;flex-direction:column;gap:15px;border:1px solid rgba(0,0,0,.14);border-radius:20px;background:rgba(255,255,255,.2);transition:transform .3s ease,background-color .3s ease}
.gr-impact-item:hover{transform:translateY(-5px);background:rgba(255,255,255,.38)}
.gr-impact-item .material-symbols-outlined{color:var(--gr-black);font-size:32px}
.gr-impact-item strong{color:var(--gr-black);font-size:16px;font-weight:850;line-height:1.3;letter-spacing:.035em}
.gr-impact-item p{margin:0;color:rgba(0,0,0,.62);font-size:14px;line-height:1.6}
.gr-consistency{background:var(--gr-light)}
.gr-consistency-card{position:relative;padding:45px 45px 45px 100px;border-radius:28px;background:var(--gr-white);box-shadow:0 20px 50px rgba(0,0,0,.04)}
.gr-consistency-card+.gr-consistency-card{margin-top:25px}
.gr-consistency-number{position:absolute;top:48px;left:42px;color:var(--gr-yellow-dark);font-size:13px;font-weight:850;line-height:1;letter-spacing:.08em}
.gr-consistency-card h3{margin-bottom:20px;color:var(--gr-yellow-dark);font-size:clamp(25px,3vw,39px);font-weight:800;line-height:1.25;letter-spacing:.02em}
.gr-consistency-card p{color:#666;font-size:16px;line-height:1.8}
.gr-cta{background:var(--gr-white)}
.gr-cta-box{position:relative;padding:75px;border-radius:35px;color:var(--gr-white);background:var(--gr-black);overflow:hidden}
.gr-cta-box::before{content:"";position:absolute;top:-170px;right:-130px;width:430px;height:430px;border-radius:50%;background:var(--gr-yellow);opacity:.16}
.gr-cta-box>.row{position:relative;z-index:2}
.gr-cta-title{max-width:950px;color:var(--gr-yellow);font-size:clamp(40px,5vw,72px);font-weight:850;line-height:1.1;letter-spacing:.02em}
.gr-cta-box p{color:rgba(255,255,255,.65);font-size:17px;line-height:1.7}
.gr-cta-button{border-color:var(--gr-yellow);color:var(--gr-black);background:var(--gr-yellow)}
.gr-cta-button:hover{color:var(--gr-yellow);background:transparent}
.reveal{will-change:transform,opacity}
@media(max-width:1199px){.gr-identity-visual{min-height:510px}.gr-impact-box,.gr-cta-box{padding:55px}}
@media(max-width:991px){.py-lg-7{padding-top:80px;padding-bottom:80px}.gr-top{min-height:auto;padding-top:160px;padding-bottom:90px}.gr-top-title{font-size:clamp(58px,11vw,110px)}.gr-intro-content{padding-left:0;border-left:0}.gr-identity-visual{min-height:500px}.gr-identity-floating-text{right:-15px;bottom:55px}.gr-impact-box,.gr-cta-box{padding:45px}}
@media(max-width:767px){.py-lg-7{padding-top:65px;padding-bottom:65px}.gr-top{padding-top:135px;padding-bottom:70px}.gr-top-subtitle{font-size:11px;letter-spacing:.14em}.gr-top-title{font-size:clamp(43px,12vw,78px);line-height:.94}.gr-top-heading{font-size:44px;line-height:1.1}.gr-top-text{font-size:16px}.gr-section-title{font-size:42px;line-height:1.14}.gr-method-card{padding:35px 28px}.gr-card-top{margin-bottom:45px}.gr-card-title{font-size:34px}.gr-identity-visual{min-height:410px;padding:30px 20px}.gr-identity-floating-text{right:-10px;bottom:30px;padding:14px 20px;font-size:12px;transform:rotate(4deg)}.gr-impact-box,.gr-cta-box{padding:36px 26px;border-radius:25px}.gr-consistency-card{padding:75px 28px 35px}.gr-consistency-number{top:35px;left:28px}.gr-cta-title{font-size:41px}.gr-cta-button{width:100%}}
@media(max-width:575px){.gr-top-title{font-size:12vw}.gr-top-heading{font-size:38px}.gr-section-title{font-size:36px}.gr-card-title{font-size:31px}.gr-identity-visual{min-height:360px}.gr-brand-board{padding:24px;transform:rotate(-2deg)}.gr-identity-floating-text{right:10px;bottom:-20px;max-width:calc(100% - 20px);white-space:normal;text-align:center}.gr-cta-title{font-size:36px}}
@media(max-width:390px){.gr-impact-box,.gr-cta-box{padding-left:20px;padding-right:20px}.gr-consistency-card{padding-left:22px;padding-right:22px}}



#top-website{background:#1a1818 url('images/cristal-red-wireframe.png')no-repeat 15% center;}
:root {
    --web-blue:#98cdff;
    --web-red:#f25757;
    --web-black:#080808;
    --web-white:#ffffff;
    --web-light:#f3f3f3;
    --web-grey:#777777;
    --web-border:rgba(0,0,0,.12)}
.py-lg-7 {
    padding-top:110px;
    padding-bottom:110px}
.web-top {
    min-height:100vh;
    padding-top:190px;
    padding-bottom:100px;
    display:flex;
    align-items:center;
    color:var(--web-white);
    background:var(--web-black);
    overflow:hidden}
.web-top-subtitle {
    display:inline-block;
    color:var(--web-red);
    font-size:14px;
    font-weight:700;
    line-height:1.4;
    letter-spacing:.18em;
    text-transform:uppercase}
.web-top-title {
    margin:20px 0 0;
    color:var(--web-red);
    font-size:clamp(80px,13vw,210px);
    font-weight:1000;
    line-height:.88;
    letter-spacing:.035em;
    text-transform:uppercase}
.web-top-heading {
    max-width:900px;
    margin:0;
    color:var(--web-white);
    font-size:clamp(45px,6vw,92px);
    font-weight:800;
    line-height:1.08;
    letter-spacing:.025em}
.web-top-heading span {
    display:block;
    color:var(--web-red)}
.web-top-text {
    margin-bottom:32px;
    color:rgba(255,255,255,.72);
    font-size:18px;
    line-height:1.8}
.web-outline-button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:14px;
    padding:15px 22px;
    border:1px solid rgba(255,255,255,.5);
    border-radius:100px;
    color:var(--web-white);
    background:transparent;
    font-family:inherit;
    font-size:15px;
    font-weight:700;
    line-height:1;
    letter-spacing:.025em;
    cursor:pointer;
    transition:color .3s ease,background-color .3s ease,border-color .3s ease,transform .3s ease}
.web-outline-button svg {
    width:20px;
    height:20px;
    flex-shrink:0;
    transition:transform .3s ease}
.web-outline-button:hover {
    color:var(--web-white);
    background:var(--web-red);
    border-color:var(--web-red)}
.web-outline-button:hover svg {
    transform:translateX(4px)}
.web-section-kicker {
    display:inline-block;
    color:var(--web-red);
    font-size:13px;
    font-weight:800;
    line-height:1.5;
    letter-spacing:.18em;
    text-transform:uppercase}
.web-section-number {
    display:inline-flex;
    align-items:center;
    gap:12px;
    color:var(--web-red);
    font-size:14px;
    font-weight:700;
    line-height:1;
    letter-spacing:.1em}
.web-section-number::after {
    content:"";
    width:55px;
    height:1px;
    background:var(--web-red)}
.web-section-title {
    width:100%;
    max-width:900px;
    margin:0;
    color:var(--web-red);
    font-size:clamp(38px,5vw,74px);
    font-weight:850;
    line-height:1.1;
    letter-spacing:.025em;
    word-break:normal;
    overflow-wrap:normal;
    hyphens:none}
.web-intro {
    background:var(--web-white)}
.web-intro-content {
    padding-left:40px;
    border-left:1px solid var(--web-border)}
.web-intro-content p {
    color:#555;
    font-size:17px;
    line-height:1.85}
.web-intro-content .lead {
    color:var(--web-red);
    font-size:clamp(23px,2.5vw,34px);
    font-weight:600;
    line-height:1.45;
    letter-spacing:.015em}
.web-solutions {
    background:var(--web-light)}
.web-solutions .lead {
    color:#666;
    font-size:20px;
    line-height:1.65;
    letter-spacing:.01em}
.web-solution-card {
    position:relative;
    padding:42px 36px;
    border:1px solid var(--web-border);
    border-radius:28px;
    background:var(--web-white);
    overflow:hidden;
    transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease}
.web-solution-card:hover {
    transform:translateY(-10px);
    border-color:rgba(242,87,87,.35);
    box-shadow:0 30px 70px rgba(0,0,0,.08)}
.web-solution-card-dark {
    color:var(--web-white);
    background:var(--web-black);
    border-color:var(--web-black)}
.web-card-top {
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-bottom:70px}
.web-card-number {
    color:var(--web-red);
    font-size:13px;
    font-weight:800;
    line-height:1;
    letter-spacing:.1em}
.web-card-icon {
    width:55px;
    height:55px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    color:var(--web-white);
    background:var(--web-red);
    font-size:28px}
.web-card-title {
    margin-bottom:20px;
    color:var(--web-red);
    font-size:35px;
    font-weight:800;
    line-height:1.2;
    letter-spacing:.025em}
.web-solution-card p {
    margin-bottom:28px;
    color:#666;
    font-size:16px;
    line-height:1.7}
.web-solution-card-dark p {
    color:rgba(255,255,255,.68)}
.web-feature-list {
    display:flex;
    flex-direction:column;
    gap:13px;
    margin:0;
    padding:0;
    list-style:none}
.web-feature-list li {
    position:relative;
    padding-left:22px;
    color:#444;
    font-size:14px;
    line-height:1.5}
.web-feature-list li::before {
    content:"";
    position:absolute;
    top:8px;
    left:0;
    width:7px;
    height:7px;
    border-radius:50%;
    background:var(--web-red)}
.web-solution-card-dark .web-feature-list li {
    color:rgba(255,255,255,.82)}
.web-design {
    position:relative;
    background:var(--web-white);
    overflow:visible}
.web-design p {
    color:#666;
    font-size:17px;
    line-height:1.8}
.web-design .lead {
    color:var(--web-red);
    font-size:23px;
    font-weight:600;
    line-height:1.5;
    letter-spacing:.015em}
.web-design-visual {
    position:relative;
    isolation:isolate;
    min-height:590px;
    padding:55px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:34px;
    background:var(--web-red);
    overflow:visible}
.web-design-window {
    position:relative;
    z-index:1;
    width:100%;
    max-width:480px;
    padding:15px;
    border-radius:20px;
    background:var(--web-white);
    box-shadow:0 35px 80px rgba(0,0,0,.16);
    transform:rotate(-4deg)}
.web-design-window-bar {
    display:flex;
    gap:7px;
    padding:3px 4px 15px}
.web-design-window-bar span {
    width:9px;
    height:9px;
    border-radius:50%;
    background:#d4d4d4}
.web-design-window-content {
    min-height:320px;
    padding:40px 30px;
    border-radius:13px;
    background:#f3f3f3}
.web-design-small-line,.web-design-large-line {
    display:block;
    border-radius:100px;
    background:var(--web-red)}
.web-design-small-line {
    width:90px;
    height:8px;
    margin-bottom:15px}
.web-design-large-line {
    width:75%;
    height:30px;
    margin-bottom:55px}
.web-design-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:14px}
.web-design-grid span {
    aspect-ratio:1/1.15;
    border-radius:12px;
    background:rgba(242,87,87,.35)}
.web-design-floating-text {
    position:absolute;
    right:-35px;
    bottom:70px;
    z-index:20;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    max-width:calc(100% - 30px);
    padding:17px 28px;
    border-radius:100px;
    color:var(--web-white);
    background:var(--web-black);
    font-size:14px;
    font-weight:800;
    line-height:1;
    letter-spacing:.06em;
    white-space:nowrap;
    box-shadow:0 18px 40px rgba(0,0,0,.22);
    transform:rotate(6deg);
    pointer-events:none}
.web-tags {
    display:flex;
    flex-wrap:wrap;
    gap:10px}
.web-tags span {
    padding:11px 17px;
    border:1px solid rgba(242,87,87,.4);
    border-radius:100px;
    color:var(--web-red);
    background:rgba(242,87,87,.04);
    font-size:13px;
    font-weight:700;
    line-height:1;
    letter-spacing:.025em}
.web-development {
    color:var(--web-white);
    background:var(--web-black)}
.web-development .web-section-number,.web-development .web-section-title {
    color:var(--web-red)}
.web-development .web-section-number::after {
    background:var(--web-red)}
.web-development>.container>.row:first-child .lead {
    max-width:760px;
    color:rgba(255,255,255,.64);
    font-size:20px;
    line-height:1.65;
    letter-spacing:.01em}
.web-development-card {
    position:relative;
    padding:48px;
    border:1px solid rgba(255,255,255,.12);
    border-radius:30px;
    background:rgba(255,255,255,.04);
    overflow:hidden;
    transition:background-color .3s ease,transform .3s ease,border-color .3s ease}
.web-development-card:hover {
    transform:translateY(-8px);
    border-color:rgba(242,87,87,.5);
    background:rgba(255,255,255,.08)}
.web-development-icon {
    width:65px;
    height:65px;
    margin-bottom:65px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    color:var(--web-white);
    background:var(--web-red);
    font-size:31px}
.web-development-label {
    display:block;
    margin-bottom:8px;
    color:var(--web-red);
    font-size:13px;
    font-weight:800;
    line-height:1.4;
    letter-spacing:.17em;
    text-transform:uppercase}
.web-development-card h3 {
    margin-bottom:20px;
    color:var(--web-red);
    font-size:clamp(40px,5vw,65px);
    font-weight:850;
    line-height:1.08;
    letter-spacing:.03em}
.web-development-card p {
    max-width:600px;
    color:rgba(255,255,255,.62);
    font-size:17px;
    line-height:1.75}
.web-technology-list {
    display:flex;
    flex-wrap:wrap;
    gap:9px;
    margin-top:32px}
.web-technology-list span {
    padding:9px 14px;
    border:1px solid rgba(242,87,87,.5);
    border-radius:100px;
    color:rgba(255,255,255,.82);
    background:rgba(242,87,87,.05);
    font-size:12px;
    line-height:1;
    letter-spacing:.025em}
.web-seo {
    background:var(--web-white)}
.web-seo-box {
    padding:70px;
    border-radius:35px;
    background:var(--web-blue)}
.web-seo-box .web-section-kicker,.web-seo-box .web-section-title {
    color:var(--web-red)}
.web-seo-box p {
    color:rgba(0,0,0,.68);
    font-size:17px;
    line-height:1.8}
.web-seo-box .lead {
    color:var(--web-red);
    font-size:24px;
    font-weight:650;
    line-height:1.5;
    letter-spacing:.015em}
.web-seo-item {
    height:100%;
    padding:25px;
    display:flex;
    flex-direction:column;
    gap:16px;
    border:1px solid rgba(0,0,0,.14);
    border-radius:20px;
    background:rgba(255,255,255,.18);
    transition:transform .3s ease,background-color .3s ease}
.web-seo-item:hover {
    transform:translateY(-5px);
    background:rgba(255,255,255,.35)}
.web-seo-item .material-symbols-outlined {
    color:var(--web-red);
    font-size:32px}
.web-seo-item strong {
    color:var(--web-red);
    font-size:15px;
    font-weight:800;
    line-height:1.3;
    letter-spacing:.035em}
.web-management {
    background:var(--web-light)}
.web-management-card {
    padding:55px;
    border-radius:30px;
    background:var(--web-white);
    box-shadow:0 25px 60px rgba(0,0,0,.04)}
.web-management-card p {
    color:#666;
    font-size:17px;
    line-height:1.8}
.web-management-quote {
    color:var(--web-red)!important;
    font-size:clamp(27px,3.5vw,44px)!important;
    font-weight:750;
    line-height:1.3!important;
    letter-spacing:.02em}
.web-cta {
    background:var(--web-white)}
.web-cta-box {
    position:relative;
    padding:75px;
    border-radius:35px;
    color:var(--web-white);
    background:var(--web-black);
    overflow:hidden}
.web-cta-box::before {
    content:"";
    position:absolute;
    top:-180px;
    right:-130px;
    width:430px;
    height:430px;
    border-radius:50%;
    background:var(--web-red);
    opacity:.18;
    filter:blur(2px)}
.web-cta-box>.row {
    position:relative;
    z-index:2}
.web-cta-box .web-section-kicker {
    color:var(--web-red)}
.web-cta-title {
    max-width:900px;
    color:var(--web-red);
    font-size:clamp(40px,5vw,75px);
    font-weight:850;
    line-height:1.1;
    letter-spacing:.025em;
    word-break:normal;
    overflow-wrap:normal;
    hyphens:none}
.web-cta-box p {
    color:rgba(255,255,255,.65);
    font-size:17px;
    line-height:1.7}
.web-cta-button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    padding:17px 24px;
    border:1px solid var(--web-red);
    border-radius:100px;
    color:var(--web-white);
    background:var(--web-red);
    font-family:inherit;
    font-size:15px;
    font-weight:800;
    line-height:1;
    letter-spacing:.025em;
    cursor:pointer;
    transition:color .3s ease,background-color .3s ease,border-color .3s ease}
.web-cta-button svg {
    width:20px;
    height:20px;
    flex-shrink:0;
    transition:transform .3s ease}
.web-cta-button:hover {
    color:var(--web-red);
    background:transparent}
.web-cta-button:hover svg {
    transform:translateX(5px)}
.reveal,.reveal-fast {
    will-change:transform,opacity}
@media(max-width:1199px) {
.web-top-title {
    font-size:clamp(75px,14vw,150px)}
.web-design-visual {
    min-height:500px}
.web-seo-box,.web-cta-box {
    padding:55px}
}

@media(max-width:991px) {
.py-lg-7 {
    padding-top:80px;
    padding-bottom:80px}
.web-top {
    min-height:auto;
    padding-top:160px;
    padding-bottom:90px}
.web-top-title {
    font-size:clamp(65px,15vw,130px)}
.web-top-heading {
    margin-bottom:15px}
.web-intro-content {
    padding-left:0;
    border-left:0}
.web-design-visual {
    min-height:500px}
.web-design-floating-text {
    right:-15px;
    bottom:55px}
.web-seo-box,.web-cta-box {
    padding:45px}
}

@media(max-width:767px) {
.py-lg-7 {
    padding-top:65px;
    padding-bottom:65px}
.web-top {
    padding-top:135px;
    padding-bottom:70px}
.web-top-subtitle {
    font-size:11px;
    letter-spacing:.14em}
.web-top-title {
    margin-top:20px;
    font-size:clamp(55px,18vw,105px);
    line-height:.92;
    letter-spacing:.025em}
.web-top-heading {
    font-size:46px;
    line-height:1.1;
    letter-spacing:.02em}
.web-top-text {
    font-size:16px}
.web-section-title {
    font-size:43px;
    line-height:1.14;
    letter-spacing:.02em}
.web-solution-card,.web-development-card {
    padding:34px 27px}
.web-card-top {
    margin-bottom:45px}
.web-design-visual {
    min-height:410px;
    padding:30px 20px}
.web-design-window-content {
    min-height:250px;
    padding:30px 20px}
.web-design-floating-text {
    right:-10px;
    bottom:30px;
    padding:14px 20px;
    font-size:12px;
    letter-spacing:.045em;
    transform:rotate(4deg)}
.web-management-card {
    padding:35px 27px}
.web-seo-box,.web-cta-box {
    padding:36px 26px;
    border-radius:25px}
.web-cta-title {
    font-size:42px;
    line-height:1.14;
    letter-spacing:.02em}
.web-cta-button {
    width:100%}
}

@media(max-width:575px) {
.web-top-title {
    white-space:nowrap;
    font-size:15vw;
    letter-spacing:.02em;
    overflow-wrap:normal;
    word-break:normal}
.web-top-heading {
    font-size:39px}
.web-section-title {
    font-size:37px}
.web-card-title {
    font-size:30px;
    letter-spacing:.02em}
.web-design-visual {
    min-height:350px}
.web-design-window {
    transform:rotate(-2deg)}
.web-design-grid {
    gap:8px}
.web-design-floating-text {
    right:10px;
    bottom:-20px;
    max-width:calc(100% - 20px);
    white-space:normal;
    text-align:center}
.web-development-card h3 {
    font-size:42px}
.web-management-quote {
    font-size:30px!important}
.web-cta-title {
    font-size:37px}
}




#scrollTopButton{
    position:fixed;
    right:30px;
    bottom:30px;
    z-index:99;
    width:70px;
    height:70px;
    padding:0;
    display:flex;
    align-items:center;
    justify-content:center;
    border:0;
    border-radius:50%;
    color:#fff;
    background:rgba(27,28,32,.9);
    -webkit-backdrop-filter:blur(15px);
    backdrop-filter:blur(15px);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(20px) scale(.9);
    transition:opacity .35s ease,visibility .35s ease,transform .35s ease,background-color .35s ease,box-shadow .35s ease;
}

#scrollTopButton.active{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translateY(0) scale(1);
}

#scrollTopButton:hover{
    background:#98cdff;
    box-shadow:0 15px 40px rgba(152,205,255,.35);
}

#scrollTopButton svg{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    overflow:visible;
    transform:rotate(-90deg);
}

.scroll-progress-bg{
    fill:none;
    stroke:rgba(255,255,255,.12);
    stroke-width:3;
}

.scroll-progress-bar{
    fill:none;
    stroke:#98cdff;
    stroke-width:3;
    stroke-linecap:round;
    stroke-dasharray:169.646;
    stroke-dashoffset:169.646;
    transition:stroke-dashoffset .15s linear,stroke .35s ease;
}

#scrollTopButton:hover .scroll-progress-bg{
    stroke:rgba(27,28,32,.18);
}

#scrollTopButton:hover .scroll-progress-bar{
    stroke:#1b1c20;
}

#scrollPercentage{
    position:relative;
    z-index:2;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    font-size:13px;
    font-weight:800;
    line-height:1;
    letter-spacing:.05em;
    transition:color .35s ease;
}

#scrollTopButton:hover #scrollPercentage{
    color:#1b1c20;
}

@media(max-width:991px){
    #scrollTopButton{
        right:20px;
        bottom:20px;
        width:58px;
        height:58px;
    }

    #scrollPercentage{
        font-size:11px;
    }
}

@media(max-width:575px){
    #scrollTopButton{
        right:15px;
        bottom:15px;
        width:54px;
        height:54px;
    }

    #scrollPercentage{
        font-size:10px;
    }
}

@media(max-width:991px){
.mobile{display:none;}
}



:root{
    --cw-blue:#98cdff;
    --cw-black:#1a1818 ;
    --cw-white:#ffffff;
    --cw-light:#f3f3f3;
    --cw-grey:#6c6c6c;
    --cw-border:rgba(0,0,0,.12);
}
.cw-top{
    min-height:100vh;
    padding-top:190px;
    padding-bottom:100px;
    display:flex;
    align-items:center;
    color:var(--cw-white);
    background:#050404 url('images/wireframe-bg.jpg')no-repeat center center;
	background-size:cover;
    overflow:hidden;
}
.cw-top-subtitle{
    display:inline-block;
    color:var(--cw-blue);
    font-size:14px;
    font-weight:700;
    line-height:1.4;
    letter-spacing:.18em;
    text-transform:uppercase;
}
.cw-top-title{
    margin:20px 0 0;
    color:var(--cw-blue);
    font-size:clamp(65px,10vw,170px);
    font-weight:1000;
    line-height:.88;
    letter-spacing:.025em;
    text-transform:uppercase;
}
.cw-top-heading{
    max-width:950px;
    margin:0;
    color:var(--cw-white);
    font-size:clamp(45px,6vw,88px);
    font-weight:850;
    line-height:1.06;
    letter-spacing:.02em;
}
.cw-top-heading span{
    display:block;
    color:var(--cw-blue);
}
.cw-top-text{
    margin-bottom:0;
    color:rgba(255,255,255,.72);
    font-size:18px;
    line-height:1.8;
}
.cw-gallery{
    background:var(--cw-light);
}
.cw-section-number{
    display:inline-flex;
    align-items:center;
    gap:12px;
    color:#347fb7;
    font-size:14px;
    font-weight:700;
    line-height:1;
    letter-spacing:.1em;
}
.cw-section-number::after{
    content:"";
    width:55px;
    height:1px;
    background:var(--cw-blue);
}
.cw-section-title{
    max-width:950px;
    margin:0;
    color:#111318;
    font-size:clamp(38px,5vw,72px);
    font-weight:850;
    line-height:1.08;
    letter-spacing:.02em;
}
.cw-section-text{
    max-width:760px;
    color:#666;
    font-size:18px;
    line-height:1.75;
}
.cw-card{
    height:100%;
}
.cw-card-link{
    height:100%;
    display:block;
    color:inherit;
    text-decoration:none;
}
.cw-card-image{
    position:relative;
    aspect-ratio:16/10;
    overflow:hidden;
    border-radius:24px;
    background:#ddd;
}
.cw-card-image::after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(180deg,transparent 50%,rgba(0,0,0,.32) 100%);
    opacity:0;
    transition:opacity .4s ease;
}
.cw-card-image img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    transform:scale(1);
    transition:transform .6s cubic-bezier(.2,.75,.25,1);
}
.cw-card-arrow{
    position:absolute;
    right:20px;
    bottom:20px;
    z-index:2;
    width:54px;
    height:54px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    color:var(--cw-black);
    background:var(--cw-blue);
    font-size:26px;
    opacity:0;
    transform:translateY(12px) rotate(-12deg);
    transition:opacity .35s ease,transform .35s ease;
}
.cw-card-content{
    padding:22px 4px 8px;
    display:flex;
    align-items:flex-start;
    gap:20px;
}
.cw-card-number{
    margin-top:8px;
    flex-shrink:0;
    color:#347fb7;
    font-size:12px;
    font-weight:800;
    line-height:1;
    letter-spacing:.08em;
}
.cw-card-content h3{
    margin:0;
    color:#111318;
    font-size:clamp(25px,2.2vw,36px);
    font-weight:800;
    line-height:1.15;
    letter-spacing:.015em;
    transition:color .3s ease;
}
.cw-card-link:hover .cw-card-image img{
    transform:scale(1.055);
}
.cw-card-link:hover .cw-card-image::after{
    opacity:1;
}
.cw-card-link:hover .cw-card-arrow{
    opacity:1;
    transform:translateY(0) rotate(0);
}
.cw-card-link:hover .cw-card-content h3{
    color:#347fb7;
}
.cw-section-kicker{
    display:inline-block;
    color:var(--cw-blue);
    font-size:13px;
    font-weight:800;
    line-height:1.5;
    letter-spacing:.18em;
    text-transform:uppercase;
}
.cw-cta{
    background:var(--cw-white);
}
.cw-cta-box{
    position:relative;
    padding:75px;
    border-radius:35px;
    color:var(--cw-white);
    background:var(--cw-black);
    overflow:hidden;
}
.cw-cta-box::before{
    content:"";
    position:absolute;
    top:-170px;
    right:-130px;
    width:430px;
    height:430px;
    border-radius:50%;
    background:var(--cw-blue);
    opacity:.16;
}
.cw-cta-box>.row{
    position:relative;
    z-index:2;
}
.cw-cta-title{
    max-width:900px;
    color:var(--cw-blue);
    font-size:clamp(40px,5vw,72px);
    font-weight:850;
    line-height:1.1;
    letter-spacing:.02em;
}
.cw-cta-box p{
    color:rgba(255,255,255,.65);
    font-size:17px;
    line-height:1.7;
}
.cw-cta-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    padding:17px 24px;
    border:1px solid var(--cw-blue);
    border-radius:100px;
    color:var(--cw-black);
    background:var(--cw-blue);
    font-size:15px;
    font-weight:800;
    line-height:1;
    letter-spacing:.025em;
    cursor:pointer;
    transition:color .3s ease,background-color .3s ease;
}
.cw-cta-button svg{
    width:20px;
    height:20px;
    flex-shrink:0;
    transition:transform .3s ease;
}
.cw-cta-button:hover{
    color:var(--cw-blue);
    background:transparent;
}
.cw-cta-button:hover svg{
    transform:translateX(5px);
}
@media(max-width:1199px){
    .cw-cta-box{
        padding:55px;
    }
}
@media(max-width:991px){
    .py-lg-7{
        padding-top:80px;
        padding-bottom:80px;
    }
    .cw-top{
        min-height:auto;
        padding-top:160px;
        padding-bottom:90px;
    }
    .cw-top-title{
        font-size:clamp(58px,12vw,115px);
    }
    .cw-cta-box{
        padding:45px;
    }
}
@media(max-width:767px){
    .py-lg-7{
        padding-top:65px;
        padding-bottom:65px;
    }
    .cw-top{
        padding-top:135px;
        padding-bottom:70px;
    }
    .cw-top-subtitle{
        font-size:11px;
        letter-spacing:.14em;
    }
    .cw-top-title{
        font-size:clamp(45px,13vw,82px);
        line-height:.92;
    }
    .cw-top-heading{
        font-size:44px;
        line-height:1.1;
    }
    .cw-top-text{
        font-size:16px;
    }
    .cw-section-title{
        font-size:42px;
    }
    .cw-card-image{
        border-radius:20px;
    }
    .cw-card-arrow{
        width:48px;
        height:48px;
        opacity:1;
        transform:none;
    }
    .cw-card-content{
        gap:14px;
    }
    .cw-cta-box{
        padding:36px 26px;
        border-radius:25px;
    }
    .cw-cta-title{
        font-size:41px;
    }
    .cw-cta-button{
        width:100%;
    }
}
@media(max-width:575px){
    .cw-top-title{
        font-size:12vw;
    }
    .cw-top-heading{
        font-size:38px;
    }
    .cw-section-title{
        font-size:36px;
    }
    .cw-card-content h3{
        font-size:27px;
    }
    .cw-cta-title{
        font-size:36px;
    }
}




:root{
    --legal-blue:#98cdff;
    --legal-blue-dark:#347fb7;
    --legal-black:#080808;
    --legal-white:#ffffff;
    --legal-light:#f3f3f3;
    --legal-text:#555b63;
    --legal-border:rgba(0,0,0,.1);
}
.legal-top{
    min-height:82vh;
    padding-top:190px;
    padding-bottom:100px;
    display:flex;
    align-items:center;
    color:var(--legal-white);
    background:var(--legal-black);
    overflow:hidden;
}
.legal-top-subtitle{
    display:inline-block;
    color:var(--legal-blue);
    font-size:14px;
    font-weight:700;
    line-height:1.4;
    letter-spacing:.18em;
    text-transform:uppercase;
}
.legal-top-title{
    margin:20px 0 0;
    color:var(--legal-blue);
    font-size:clamp(62px,10vw,170px);
    font-weight:1000;
    line-height:.88;
    letter-spacing:.025em;
    text-transform:uppercase;
}
.legal-top-heading{
    max-width:950px;
    margin:0;
    color:var(--legal-white);
    font-size:clamp(42px,5.5vw,78px);
    font-weight:850;
    line-height:1.06;
    letter-spacing:.02em;
}
.legal-top-heading span{
    display:block;
    color:var(--legal-blue);
}
.legal-top-text{
    margin:0;
    color:rgba(255,255,255,.72);
    font-size:17px;
    line-height:1.8;
}
.legal-content{
    color:#111318;
    background:#ffffff;
}
.legal-content .container{
    position:relative;
}
.legal-nav{
    position:sticky;
    top:130px;
    padding:35px;
    border:1px solid var(--legal-border);
    border-radius:26px;
    background:#ffffff;
    box-shadow:0 20px 50px rgba(0,0,0,.04);
}
.legal-section-number{
    display:inline-flex;
    align-items:center;
    gap:12px;
    color:var(--legal-blue-dark);
    font-size:13px;
    font-weight:800;
    line-height:1;
    letter-spacing:.1em;
}
.legal-section-number::after{
    content:"";
    width:45px;
    height:1px;
    background:var(--legal-blue);
}
.legal-nav-title{
    margin:18px 0 28px;
    color:#000000;
    font-size:38px;
    font-weight:850;
    line-height:1.05;
}
.legal-nav nav{
    display:flex;
    flex-direction:column;
    gap:4px;
}
.legal-nav a{
    padding:12px 0;
    border-bottom:1px solid rgba(0,0,0,.08);
    color:#555b63;
    font-size:14px;
    font-weight:650;
    text-decoration:none;
    transition:color .25s ease,padding-left .25s ease;
}
.legal-nav a:last-child{
    border-bottom:none;
}
.legal-nav a:hover{
    padding-left:8px;
    color:var(--legal-blue-dark);
}
.legal-card{
    position:relative;
    scroll-margin-top:130px;
    padding:48px;
    border:1px solid var(--legal-border);
    border-radius:28px;
    background:#ffffff;
    box-shadow:0 20px 50px rgba(0,0,0,.045);
}
.legal-card+.legal-card{
    margin-top:24px;
}
.legal-card-number{
    display:block;
    margin-bottom:20px;
    color:var(--legal-blue-dark);
    font-size:13px;
    font-weight:850;
    line-height:1;
    letter-spacing:.1em;
}
.legal-card h2{
    margin:0 0 24px;
    color:#000000;
    font-size:clamp(30px,3.4vw,48px);
    font-weight:850;
    line-height:1.08;
    letter-spacing:.015em;
}
.legal-card p{
    color:#555b63;
    font-size:16px;
    line-height:1.82;
}
.legal-card p:last-child{
    margin-bottom:0;
}
.legal-card a{
    color:var(--legal-blue-dark);
    font-weight:700;
    text-decoration:none;
}
.legal-card a:hover{
    text-decoration:underline;
}
.legal-highlight{
    padding:20px 22px;
    border-left:4px solid var(--legal-blue);
    border-radius:0 14px 14px 0;
    color:#000000!important;
    background:rgba(152,205,255,.16);
    font-size:20px!important;
    font-weight:750;
    line-height:1.6!important;
}
.legal-details{
    margin:28px 0 0;
    border-top:1px solid rgba(0,0,0,.1);
}
.legal-details div{
    display:grid;
    grid-template-columns:minmax(170px,230px) 1fr;
    gap:25px;
    padding:17px 0;
    border-bottom:1px solid rgba(0,0,0,.08);
}
.legal-details dt{
    color:#000000;
    font-size:14px;
    font-weight:800;
    line-height:1.5;
}
.legal-details dd{
    margin:0;
    color:#555b63;
    font-size:15px;
    line-height:1.6;
}
.legal-update{
    margin-top:30px;
    padding-top:22px;
    border-top:1px solid rgba(0,0,0,.1);
    color:#777777!important;
    font-size:13px!important;
    font-weight:700;
    line-height:1.5!important;
    letter-spacing:.04em;
    text-transform:uppercase;
}
.legal-section-kicker{
    display:inline-block;
    color:var(--legal-blue);
    font-size:13px;
    font-weight:800;
    line-height:1.5;
    letter-spacing:.18em;
    text-transform:uppercase;
}
.legal-cta{
    background:#ffffff;
}
.legal-cta-box{
    position:relative;
    padding:70px;
    border-radius:35px;
    color:var(--legal-white);
    background:var(--legal-black);
    overflow:hidden;
}
.legal-cta-box::before{
    content:"";
    position:absolute;
    top:-170px;
    right:-130px;
    width:430px;
    height:430px;
    border-radius:50%;
    background:var(--legal-blue);
    opacity:.16;
}
.legal-cta-box>.row{
    position:relative;
    z-index:2;
}
.legal-cta-title{
    max-width:900px;
    color:var(--legal-blue);
    font-size:clamp(38px,5vw,68px);
    font-weight:850;
    line-height:1.1;
    letter-spacing:.02em;
}
.legal-cta-box p{
    color:rgba(255,255,255,.65);
    font-size:17px;
    line-height:1.7;
}
.legal-cta-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    padding:17px 24px;
    border:1px solid var(--legal-blue);
    border-radius:100px;
    color:var(--legal-black);
    background:var(--legal-blue);
    font-size:15px;
    font-weight:800;
    line-height:1;
    letter-spacing:.025em;
    text-decoration:none;
    transition:color .3s ease,background-color .3s ease,border-color .3s ease;
}
.legal-cta-button svg{
    width:20px;
    height:20px;
    flex-shrink:0;
    transition:transform .3s ease;
}
.legal-cta-button:hover{
    color:var(--legal-blue);
    background:transparent;
}
.legal-cta-button:hover svg{
    transform:translateX(5px);
}
@media(max-width:991px){
    .py-lg-7{
        padding-top:80px;
        padding-bottom:80px;
    }
    .legal-top{
        min-height:auto;
        padding-top:160px;
        padding-bottom:90px;
    }
    .legal-nav{
        position:relative;
        top:auto;
    }
    .legal-cta-box{
        padding:45px;
    }
}
@media(max-width:767px){
    .py-lg-7{
        padding-top:65px;
        padding-bottom:65px;
    }
    .legal-top{
        padding-top:135px;
        padding-bottom:70px;
    }
    .legal-top-subtitle{
        font-size:11px;
        letter-spacing:.14em;
    }
    .legal-top-title{
        font-size:clamp(46px,13vw,82px);
        line-height:.92;
    }
    .legal-top-heading{
        font-size:41px;
        line-height:1.1;
    }
    .legal-top-text{
        font-size:16px;
    }
    .legal-card{
        padding:32px 25px;
        border-radius:22px;
    }
    .legal-details div{
        grid-template-columns:1fr;
        gap:7px;
    }
    .legal-cta-box{
        padding:36px 26px;
        border-radius:25px;
    }
    .legal-cta-title{
        font-size:39px;
    }
    .legal-cta-button{
        width:100%;
    }
}
@media(max-width:575px){
    .legal-top-title{
        font-size:12vw;
    }
    .legal-top-heading{
        font-size:35px;
    }
    .legal-nav{
        padding:26px;
    }
    .legal-nav-title{
        font-size:32px;
    }
    .legal-card h2{
        font-size:30px;
    }
    .legal-card p{
        font-size:15px;
    }
    .legal-highlight{
        font-size:18px!important;
    }
    .legal-cta-title{
        font-size:34px;
    }
}

@media(max-width:991px){
#top-graphisme{background-size:25%;background-position:center center;}
#top-website{background-size:25%;background-position:center center;}
#top-audiovisuel{background-size:25%;background-position:center center;}
#top-referencement{background-size:25%;background-position:center center;}
}


:root{
    --city-black:#090909;
    --city-dark:#111214;
    --city-soft:#191a1e;
    --city-white:#ffffff;
    --city-text:#d3d5d8;
    --city-blue:#98cdff;
    --city-green:#a5ed70;
    --city-yellow:#ede670;
    --city-red:#f25757;
    --city-border:rgba(255,255,255,.10);
}


/* =========================================================
   STRUCTURE GÉNÉRALE
   ========================================================= */
.city-section{
    position:relative;
    padding:130px 0;
}

.city-kicker{
    display:inline-block;
    color:var(--city-blue);
    font-size:13px;
    font-weight:800;
    line-height:1.4;
    letter-spacing:.18em;
    text-transform:uppercase;
}

.city-section-number{
    display:block;
    margin-bottom:22px;
    color:var(--city-blue);
    font-size:14px;
    font-weight:850;
    line-height:1;
    letter-spacing:.16em;
}

.city-section-title{
    max-width:900px;
    margin:0;
    color:var(--city-white);
    font-size:clamp(42px,5vw,76px);
    font-weight:950;
    line-height:1;
    letter-spacing:-.05em;
}

.city-section-intro{
    max-width:720px;
    margin:30px 0 0;
    color:var(--city-text);
    font-size:20px;
    line-height:1.7;
}


/* =========================================================
   HERO
   ========================================================= */

.city-hero{
    position:relative;
    min-height:100vh;
    padding:210px 0 110px;
    display:flex;
    align-items:flex-end;
    background:
        radial-gradient(
            circle at 85% 25%,
            rgba(152,205,255,.18),
            transparent 28%
        ),
        radial-gradient(
            circle at 15% 90%,
            rgba(165,237,112,.08),
            transparent 24%
        ),
        var(--city-black);
}

.city-hero::before{
    content:"";
    position:absolute;
    top:150px;
    right:-170px;
    width:570px;
    height:570px;
    border:1px solid rgba(152,205,255,.20);
    border-radius:50%;
    pointer-events:none;
}

.city-hero::after{
    content:"";
    position:absolute;
    top:220px;
    right:-90px;
    width:420px;
    height:420px;
    border:1px solid rgba(152,205,255,.10);
    border-radius:50%;
    pointer-events:none;
}

.city-hero .container{
    position:relative;
    z-index:2;
}

.city-hero-title{
    max-width:100%;
    margin:25px 0 0;
    color:var(--city-blue);
    font-size:clamp(72px,13vw,210px);
    font-weight:1000;
    line-height:.78;
    letter-spacing:-.075em;
    text-transform:uppercase;
    overflow-wrap:anywhere;
    word-break:normal;
}

.city-hero-bottom{
    margin-top:90px;
}

.city-hero-heading{
    max-width:920px;
    margin:0;
    color:var(--city-white);
    font-size:clamp(43px,5vw,80px);
    font-weight:950;
    line-height:1.02;
    letter-spacing:-.05em;
    text-transform:none;
}

.city-hero-city{
    display:inline;
    margin:0;
    padding:0;
    color:var(--city-blue);
    font:inherit;
    font-size:inherit;
    font-weight:inherit;
    line-height:inherit;
    letter-spacing:inherit;
    text-transform:none;
    white-space:normal;
}

.city-hero-heading .city-hero-city{
    color:var(--city-blue);
    font:inherit;
    font-size:inherit;
    font-weight:inherit;
    line-height:inherit;
    letter-spacing:inherit;
    text-transform:none;
}

.city-hero-description{
    margin:0;
    padding-left:28px;
    color:var(--city-text);
    font-size:17px;
    line-height:1.75;
    border-left:1px solid var(--city-blue);
}


/* =========================================================
   INTRODUCTION
   ========================================================= */

.city-introduction{
    background:var(--city-white);
}

.city-introduction .city-section-number{
    color:#287cae;
}

.city-introduction .city-section-title{
    color:var(--city-black);
}

.city-content-card{
    padding:60px;
    color:#484b50;
    background:#f1f2f3;
    border-radius:35px;
}

.city-content-card p{
    font-size:18px;
    line-height:1.8;
}

.city-content-card .city-lead{
    color:var(--city-black);
    font-size:clamp(25px,2.5vw,37px);
    font-weight:700;
    line-height:1.35;
    letter-spacing:-.025em;
}


/* =========================================================
   SERVICES
   ========================================================= */

.city-services{
    background:var(--city-dark);
}

.city-service-card{
    position:relative;
    min-height:450px;
    padding:45px;
    display:flex;
    flex-direction:column;
    color:#0a0a0a;
    text-decoration:none;
    border-radius:35px;
    overflow:hidden;
    transition:
        transform .4s ease,
        box-shadow .4s ease;
}

.city-service-card::after{
    content:"";
    position:absolute;
    right:-75px;
    bottom:-75px;
    width:230px;
    height:230px;
    border:1px solid rgba(0,0,0,.18);
    border-radius:50%;
    transition:transform .5s ease;
    pointer-events:none;
}

.city-service-card:hover{
    color:#0a0a0a;
    transform:translateY(-10px);
}

.city-service-card:hover::after{
    transform:scale(1.25);
}

.city-service-blue{
    background:var(--city-blue);
}

.city-service-green{
    background:var(--city-green);
}

.city-service-yellow{
    background:var(--city-yellow);
}

.city-service-red{
    background:var(--city-red);
}

.city-service-header{
    position:relative;
    z-index:2;
    display:flex;
    align-items:center;
    justify-content:space-between;
    font-size:14px;
    font-weight:900;
    letter-spacing:.15em;
}

.city-service-header .material-symbols-outlined{
    font-size:48px;
}

.city-service-card h3{
    position:relative;
    z-index:2;
    max-width:520px;
    margin:90px 0 25px;
    font-size:clamp(34px,3.4vw,53px);
    font-weight:950;
    line-height:1;
    letter-spacing:-.045em;
}

.city-service-card p{
    position:relative;
    z-index:2;
    max-width:550px;
    margin:0;
    font-size:17px;
    line-height:1.7;
}

.city-service-more{
    position:relative;
    z-index:2;
    margin-top:auto;
    padding-top:38px;
    display:inline-flex;
    align-items:center;
    gap:8px;
    font-size:14px;
    font-weight:900;
    line-height:1.3;
    letter-spacing:.07em;
    text-transform:uppercase;
}

.city-service-more .material-symbols-outlined{
    font-size:22px;
    transition:transform .3s ease;
}

.city-service-card:hover
.city-service-more
.material-symbols-outlined{
    transform:translateX(8px);
}


/* =========================================================
   ACCOMPAGNEMENT
   ========================================================= */

.city-support{
    background:var(--city-black);
}

.city-highlight-card{
    padding:60px;
    background:
        linear-gradient(
            145deg,
            rgba(152,205,255,.16),
            rgba(255,255,255,.035)
        );
    border:1px solid rgba(152,205,255,.22);
    border-radius:35px;
}

.city-highlight-card .city-section-title{
    margin:20px 0 35px;
    font-size:clamp(39px,4.5vw,66px);
}

.city-highlight-card p{
    color:var(--city-text);
    font-size:17px;
    line-height:1.8;
}

.city-stat{
    min-height:245px;
    padding:35px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    background:var(--city-soft);
    border:1px solid var(--city-border);
    border-radius:28px;
    transition:
        transform .35s ease,
        border-color .35s ease;
}

.city-stat:hover{
    transform:translateY(-7px);
    border-color:var(--city-blue);
}

.city-stat-number{
    color:var(--city-blue);
    font-size:clamp(46px,5vw,75px);
    font-weight:950;
    line-height:1;
    letter-spacing:-.05em;
}

.city-stat-label{
    max-width:175px;
    color:var(--city-white);
    font-size:16px;
    font-weight:700;
    line-height:1.4;
}


/* =========================================================
   AVANTAGES
   ========================================================= */

.city-benefits{
    background:#f1f2f3;
}

.city-benefits .city-section-number{
    color:#287cae;
}

.city-benefits .city-section-title{
    color:var(--city-black);
}

.city-benefit-card{
    min-height:340px;
    height:100%;
    padding:35px;
    display:flex;
    flex-direction:column;
    min-width:0;
    color:var(--city-black);
    background:var(--city-white);
    border:1px solid rgba(0,0,0,.08);
    border-radius:28px;
    overflow:hidden;
    transition:
        transform .35s ease,
        box-shadow .35s ease;
}

.city-benefit-card:hover{
    transform:translateY(-8px);
    box-shadow:0 25px 60px rgba(0,0,0,.10);
}

.city-benefit-card > .material-symbols-outlined{
    flex:0 0 auto;
    width:62px;
    height:62px;
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--city-black);
    background:var(--city-blue);
    border-radius:50%;
    font-size:30px;
}

.city-benefit-card h3{
    width:100%;
    max-width:100%;
    margin:45px 0 18px;
    color:var(--city-black);
    font-size:clamp(22px,1.75vw,29px);
    font-weight:950;
    line-height:1.15;
    letter-spacing:-.035em;
    overflow-wrap:anywhere;
    word-break:normal;
    hyphens:auto;
}

.city-benefit-card p{
    margin:0;
    margin-top:auto;
    color:#555a60;
    font-size:16px;
    line-height:1.75;
    overflow-wrap:break-word;
}


/* =========================================================
   SEO ET AUTRES VILLES
   ========================================================= */

.city-seo{
    background:var(--city-white);
}

.city-seo .city-section-title{
    margin:20px 0 42px;
    color:var(--city-black);
}

.city-seo-text{
    color:#45494d;
}

.city-seo-text p{
    font-size:18px;
    line-height:1.85;
}

.city-seo-text strong{
    color:var(--city-black);
}

.city-other{
    position:sticky;
    top:130px;
    padding:40px;
    color:var(--city-white);
    background:var(--city-black);
    border-radius:30px;
}

.city-other-label{
    display:inline-block;
    color:var(--city-blue);
    font-size:12px;
    font-weight:850;
    line-height:1.3;
    letter-spacing:.15em;
    text-transform:uppercase;
}

.city-other h2{
    margin:15px 0 28px;
    color:var(--city-white);
    font-size:32px;
    font-weight:950;
    line-height:1.1;
    letter-spacing:-.04em;
}

.city-other-list a{
    padding:15px 0;
    display:flex;
    align-items:center;
    gap:12px;
    color:var(--city-white);
    font-size:15px;
    font-weight:700;
    line-height:1.4;
    text-decoration:none;
    border-bottom:1px solid rgba(255,255,255,.10);
    transition:
        color .25s ease,
        padding-left .25s ease;
}

.city-other-list a:last-child{
    border-bottom:none;
}

.city-other-list a:hover{
    padding-left:8px;
    color:var(--city-blue);
}

.city-other-list .material-symbols-outlined{
    flex:0 0 auto;
    color:var(--city-blue);
    font-size:21px;
}


/* =========================================================
   CTA
   ========================================================= */

.city-cta{
    padding-top:20px;
    background:var(--city-white);
}

.city-cta-box{
    position:relative;
    padding:80px;
    color:var(--city-black);
    background:var(--city-blue);
    border-radius:40px;
    overflow:hidden;
}

.city-cta-box::after{
    content:"";
    position:absolute;
    right:-100px;
    bottom:-150px;
    width:430px;
    height:430px;
    border:1px solid rgba(0,0,0,.20);
    border-radius:50%;
    pointer-events:none;
}

.city-cta-box .row{
    position:relative;
    z-index:2;
}

.city-cta-box .city-kicker{
    color:var(--city-black);
}

.city-cta-box h2{
    max-width:900px;
    margin:20px 0;
    color:var(--city-black);
    font-size:clamp(42px,5vw,74px);
    font-weight:950;
    line-height:1;
    letter-spacing:-.05em;
}

.city-cta-box p{
    max-width:730px;
    color:var(--city-black);
    font-size:18px;
    line-height:1.7;
}

.city-contact-button{
    padding:18px 25px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    color:var(--city-white);
    background:var(--city-black);
    border:1px solid var(--city-black);
    border-radius:50px;
    font-size:15px;
    font-weight:850;
    line-height:1.2;
    letter-spacing:.06em;
    text-transform:uppercase;
    transition:
        color .3s ease,
        background .3s ease,
        transform .3s ease;
}

.city-contact-button:hover{
    color:var(--city-black);
    background:transparent;
    transform:translateY(-3px);
}

.city-contact-button .material-symbols-outlined{
    font-size:22px;
}





/* =========================================================
   RESPONSIVE 1199 PX
   ========================================================= */

@media (max-width:1199px){

    .city-section{
        padding:105px 0;
    }

    .city-hero-title{
        font-size:clamp(75px,13vw,150px);
    }

    .city-service-card{
        min-height:430px;
    }

    .city-benefit-card{
        min-height:325px;
    }

    .city-benefit-card h3{
        font-size:clamp(22px,2.1vw,28px);
    }

}


/* =========================================================
   RESPONSIVE 991 PX
   ========================================================= */

@media (max-width:991px){

    .city-section{
        padding:90px 0;
    }

    .city-hero{
        min-height:auto;
        padding:180px 0 90px;
        align-items:flex-start;
    }

    .city-hero::before,
    .city-hero::after{
        opacity:.45;
    }

    .city-hero-title{
        font-size:clamp(65px,16vw,130px);
        line-height:.85;
    }

    .city-hero-bottom{
        margin-top:70px;
    }

    .city-hero-description{
        padding-top:25px;
        padding-left:0;
        border-top:1px solid var(--city-blue);
        border-left:none;
    }

    .city-content-card,
    .city-highlight-card{
        padding:45px;
    }

    .city-benefit-card h3{
        font-size:28px;
    }

    .city-other{
        position:relative;
        top:auto;
    }

    .city-cta-box{
        padding:60px;
    }

    .city-cta-box .text-lg-end{
        text-align:left;
    }

    

}


/* =========================================================
   RESPONSIVE 767 PX
   ========================================================= */

@media (max-width:767px){

    .city-section{
        padding:75px 0;
    }

    .city-section-title{
        font-size:clamp(36px,11vw,54px);
    }

    .city-hero{
        padding:150px 0 75px;
    }

    .city-hero-title{
        font-size:clamp(54px,17vw,100px);
    }

    .city-hero-bottom{
        margin-top:55px;
    }

    .city-hero-heading{
        font-size:clamp(38px,11vw,55px);
    }

    .city-hero-city{
        display:block;
        margin-top:8px;
    }

    .city-content-card,
    .city-highlight-card{
        padding:35px 28px;
        border-radius:25px;
    }

    .city-service-card{
        min-height:405px;
        padding:35px 28px;
        border-radius:25px;
    }

    .city-service-card h3{
        margin-top:70px;
        font-size:37px;
    }

    .city-service-header .material-symbols-outlined{
        font-size:40px;
    }

    .city-stat{
        min-height:210px;
    }

    .city-benefit-card{
        min-height:auto;
        padding:30px;
    }

    .city-benefit-card h3{
        margin-top:38px;
        font-size:28px;
    }

    .city-other{
        padding:30px 25px;
        border-radius:24px;
    }

    .city-cta-box{
        padding:45px 28px;
        border-radius:28px;
    }

    .city-cta-box h2{
        font-size:clamp(36px,10vw,52px);
    }

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

    

}


/* =========================================================
   RESPONSIVE 575 PX
   ========================================================= */

@media (max-width:575px){

    .city-hero{
        padding-top:135px;
        padding-bottom:70px;
    }

    .city-hero-title{
        font-size:clamp(48px,17vw,78px);
        line-height:.9;
    }

    .city-hero-heading{
        font-size:clamp(36px,11vw,48px);
        line-height:1.02;
    }

    .city-hero-description{
        font-size:16px;
    }

    .city-section-intro{
        font-size:18px;
    }

    .city-content-card p,
    .city-highlight-card p,
    .city-seo-text p{
        font-size:16px;
    }

    .city-content-card .city-lead{
        font-size:25px;
    }

    .city-service-card{
        min-height:390px;
    }

    .city-service-card h3{
        font-size:33px;
    }

    .city-stat{
        min-height:190px;
    }

    .city-stat-number{
        font-size:52px;
    }

    .city-benefit-card{
        padding:28px;
    }

    .city-benefit-card > .material-symbols-outlined{
        width:58px;
        height:58px;
        font-size:28px;
    }

    .city-benefit-card h3{
        margin-top:34px;
        font-size:27px;
    }

    

}