@font-face {
font-family:  'General Sans Semibold';
src:          url('../fonts/GeneralSans-Semibold.eot');
src:          url('../fonts/GeneralSans-Semibold.eot?#iefix') format('embedded-opentype'),
              url('../fonts/GeneralSans-Semibold.woff2') format('woff2'),
              url('../fonts/GeneralSans-Semibold.woff') format('woff');
font-weight:  normal;
font-style:   normal;
font-display: swap;
}

@font-face {
font-family:  'General Sans SemiboldItalic';
src:          url('../fonts/GeneralSans-SemiboldItalic.eot');
src:          url('../fonts/GeneralSans-SemiboldItalic.eot?#iefix') format('embedded-opentype'),
              url('../fonts/GeneralSans-SemiboldItalic.woff2') format('woff2'),
              url('../fonts/GeneralSans-SemiboldItalic.woff') format('woff');
font-weight:  normal;
font-style:   normal;
font-display: swap;
}

@font-face {
font-family:  'General Sans Bold';
src:          url('../fonts/GeneralSans-Bold.eot');
src:          url('../fonts/GeneralSans-Bold.eot?#iefix') format('embedded-opentype'),
              url('../fonts/GeneralSans-Bold.woff2') format('woff2'),
              url('../fonts/GeneralSans-Bold.woff') format('woff');
font-weight:  normal;
font-style:   normal;
font-display: swap;
}

@font-face {
font-family:  'General Sans BoldItalic';
src:          url('../fonts/GeneralSans-BoldItalic.eot');
src:          url('../fonts/GeneralSans-BoldItalic.eot?#iefix') format('embedded-opentype'),
              url('../fonts/GeneralSans-BoldItalic.woff2') format('woff2'),
              url('../fonts/GeneralSans-BoldItalic.woff') format('woff');
font-weight:  normal;
font-style:   normal;
font-display: swap;
}

@font-face {
font-family:  'NeueMachina Light';
src:          url('../fonts/NeueMachina-Light.eot');
src:          url('../fonts/NeueMachina-Light.eot?#iefix') format('embedded-opentype'),
              url('../fonts/NeueMachina-Light.woff2') format('woff2'),
              url('../fonts/NeueMachina-Light.woff') format('woff');
font-weight:  normal;
font-style:   normal;
font-display: swap;
}

@font-face {
font-family:  'NeueMachina Regular';
src:          url('../fonts/NeueMachina-Regular.eot');
src:          url('../fonts/NeueMachina-Regular.eot?#iefix') format('embedded-opentype'),
              url('../fonts/NeueMachina-Regular.woff2') format('woff2'),
              url('../fonts/NeueMachina-Regular.woff') format('woff');
font-weight:  normal;
font-style:   normal;
font-display: swap;
}

@font-face {
font-family:  'NeueMachina Ultrabold';
src:          url('../fonts/NeueMachina-Ultrabold.eot');
src:          url('../fonts/NeueMachina-Ultrabold.eot?#iefix') format('embedded-opentype'),
              url('../fonts/NeueMachina-Ultrabold.woff2') format('woff2'),
              url('../fonts/NeueMachina-Ultrabold.woff') format('woff');
font-weight:  normal;
font-style:   normal;
font-display: swap;
}


/****VARIABLES****/
:root {
--text:           #000;
--primaire:       #FFF;
--secondaire:     #FEE9D8;
--tertiaire:      #CFCFCF;
--font-family:    'NeueMachina Regular', Arial, sans-serif;
--font-titre:     'General Sans Semibold', Arial, sans-serif;
--font-size:      15px;
--taille-titre-1: 42px;
--taille-titre-2: 25px;
}

* {
-webkit-box-sizing: border-box;
-moz-box-sizing:    border-box;
box-sizing:         border-box;
margin:             0;
padding:            0;
outline:            none;
}

html, body {overflow-x: hidden;}

body {
font-family:              var(--font-family);
font-size:                var(--font-size);
color:                    var(--text);
background-color:         #FFF;
width:                    100%;
-webkit-font-smoothing:   antialiased;
-webkit-text-size-adjust: 100%;
}

input[type=text], input[type=file], input[type=password], input[type=number], input[type=email], button, select, textarea {
font-family: var(--font-family);
font-size:   var(--font-size);
color:       var(--text);
border:      none;
}

textarea {
resize:   none;
overflow: auto;
}

address {
font-style: normal;
}

::-webkit-input-placeholder {opacity: 1;}

:-moz-placeholder {opacity: 1;}

::-moz-placeholder {opacity: 1;}

input:-ms-input-placeholder, textarea:-ms-input-placeholder {opacity: 1;}

button, a {cursor: pointer;}

button {
background: transparent;
border:     none;
}

a, a:hover {
border:          0;
text-decoration: none;
color:           var(--text);
}

video {
max-width: 100%;
height:    auto;
}

table {border-collapse: collapse;}

img {
border:          none;
max-width:       100%;
image-rendering: auto;
display:         block;
}

body.nav_chrome img {image-rendering: -webkit-optimize-contrast;}

ul {list-style-type: none;}

ul, ol {list-style-position: inside;}

label {display: block;}

canvas {-ms-touch-action: double-tap-zoom;}

h1, h2, h3, h4, h5 {
font-weight: normal;
display:     block;
}

address {
font-style: normal;
}

header, nav, footer, section, article, aside, figure, figcaption, mark, time, address {display: block;}

sup, sub {text-transform: none;}

.clrb {clear: both;}

/**************INPUTS*************/
label.input {
display:  block;
position: relative;
width:    100%;
}

label.input.err > span {
color: #BB2124;
}

label.input + label.input {margin-top: 10px;}

label.input > span {
position:       absolute;
font-size:      13px;
letter-spacing: 2px;
text-transform: uppercase;
opacity:        1;
left:           0;
top:            20px;
width:          calc(100% - 40px);
transition:     font-size 0.3s, top 0.3s;
z-index:        2;
}

label.input.on > span {
font-size: 11px;
top:       4px;
opacity:   0.5;
}

label.input > input, label.input > textarea {
display:       block;
width:         100%;
padding:       22px 20px 13px 0;
border-bottom: 1px solid #000;
background:    transparent;
position:      relative;
z-index:       1;
}

label.input.err > input, label.input.err > textarea {
color:         #BB2124;
border-bottom: 1px solid #BB2124;
}

label.input > textarea {height: 180px;}


form {
position: relative;
}

form .pot {
opacity:  0;
position: absolute;
top:      -10px;
left:     -10px;
height:   0;
width:    0;
z-index:  -1;
}

form .erreur {
color:      #BB2124;
margin:     25px 0 0;
text-align: center;
}

section.hidden {
display: none;
}

section.section {
padding-bottom: 75px;
}

section.section + .section {
padding-top: 75px;
border-top:  1px solid #000;
}

/**************SPECIFIQUE*************/
main {
padding-top: 200px;
}

.titre1 {
font-family: var(--font-titre);
font-size:   var(--taille-titre-1);
line-height: 47px;
}

.titre2 {
font-family: var(--font-titre);
font-size:   var(--taille-titre-2);
line-height: 35px;
}

.btn {
display:          inline-block;
color:            #000;
background-color: transparent;
border:           1px solid #000;
border-radius:    100px;
padding:          10px 16px;
letter-spacing:   1px;
font-size:        16px;
text-align:       center;
text-transform:   uppercase;
background-size:  200% 100%;
background-image: linear-gradient(to right, transparent 50%, var(--secondaire) 50%);
transition:       background-position .3s cubic-bezier(0.19, 1, 0.22, 1) .1s, color .5s ease 0s, background-color .5s ease;
}

.btn.orange {
background-color: var(--secondaire);
background-image: linear-gradient(to right, transparent 50%, #FFF 50%);
}

.section.hidden {
display: none;
}
.ckeditor a{
text-decoration: underline;
}
.btn:hover {
background-color:    var(--secondaire);
background-position: -100% 100%;
border:              1px solid #000;
}

.content_wrapper {
max-width: 1760px;
margin:    0 auto;
padding:   0 25px;
}

article.bloc {
display:         flex;
flex-flow:       row nowrap;
align-items:     center;
justify-content: space-between;
}

article.bloc.right {
flex-flow: row-reverse nowrap;
}

article.bloc.noimg,
article.bloc.notxt {
display: block;
}
article.bloc figure.media{
position: relative;
height: 100%;
}
article.bloc figure.media::after{
content: '';
display: block;
padding-bottom: 59.99%;
}
article.bloc figure.media iframe{
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
display: block;
object-fit: cover;
object-position: center;
}
article.bloc figure,
article.bloc div.form {
width: 65%;
}

article.bloc div.form {
padding:          70px 50px;
background-color: var(--secondaire);
}

article.bloc.notxt figure {
width: 100%;
}

article.bloc.notxt figure > img {
margin: 0 auto;
}

article.bloc .txt {
width:     35%;
max-width: 470px;
}

article.left .txt {
padding-left: 50px;
margin-left:  auto;
}

article.right .txt {
padding-right: 50px;
margin-left:   0;
}

article.right.noimg .txt,
article.left.noimg .txt {
padding: 0;
}

article.bloc.noimg .txt {
width:      100%;
text-align: center;
max-width:  none;
}

article.bloc .txt .btn {
margin-top: 25px;
display:    block;
width:      225px;
text-decoration:none;
}
main.about article.bloc .txt .btn{
width: max-content;
width: -moz-max-content;
max-width: 100%;
}
main.about article.bloc .txt .btn + .btn{
margin-top: 10px;
}
article.bloc.noimg .txt .btn {
margin: 25px auto 0;
}

article.bloc .titre1 {
margin-bottom: 20px;
}

article.bloc .titre_mobile,
article.bloc.noimg .titre_mobile {
display: none;
}

/**************HEADER*************/
#header {
position:         fixed;
padding:          20px;
width:            100%;
background-color: #FFF;
z-index:          5000;
transition:       all .3s;
}

#header.fixed {
padding: 10px 20px 0 5px;
}

#header .wrapper {
max-width:       1710px;
margin:          0 auto;
display:         flex;
flex-flow:       row nowrap;
justify-content: space-between;
align-items:     center;
}

#header .logo {
width:      345px;
position:   relative;
z-index:    3500;
transition: width .3s;
}

#header.fixed .logo {
width: 200px;
}

#header.fixed .logo > svg .gyne {
display: none;
}

#header .wrapper .nav_header {
display:         flex;
flex-flow:       row nowrap;
justify-content: space-between;
align-items:     center;
width:           calc(100% - 845px);
max-width:       500px;
}

#header .wrapper .nav_header li {
padding:       10px;
border:        1px solid transparent;
border-radius: 20px;
}

#header .wrapper .nav_header li + li {
margin-left: 5px;
}

#header .wrapper .nav_header li.active {
border: 1px solid #000;
}

#header .wrapper .nav_header li.rdv {
border:           1px solid #000;
background-color: var(--secondaire);
cursor:           pointer;
}

#header .wrapper .nav_header li a {
font-size:      14px;
text-transform: uppercase;
}

#header .nav_mobile {
display:          flex;
position:         fixed;
top:              0;
left:             0;
width:            100%;
height:           100%;
background-color: var(--secondaire);
z-index:          3000;
flex-flow:        column nowrap;
justify-content:  center;
align-items:      center;
transform:        translateX(100%);
transition:       all .5s ease-in-out;
padding-top:      70px;
}

#header.open .nav_mobile {
transform: none;
}

#header .nav_mobile li + li {
margin-top: 10px;
}

#header .nav_mobile li {
padding:       10px;
border:        1px solid transparent;
border-radius: 20px;
}

#header .nav_mobile li.active {
border: 1px solid #000;
}

#header .nav_mobile li a {
font-size:      16px;
text-transform: uppercase;
}

#header .menu_icon {
position:        relative;
cursor:          pointer;
font-size:       15px;
text-transform:  uppercase;
display:         none;
align-items:     center;
justify-content: flex-start;
z-index:         3500;
}

#header .menu_icon > svg .line {
fill:         none;
stroke:       var(--text);
stroke-width: 6;
transition:   stroke-dasharray 600ms cubic-bezier(0.4, 0, 0.2, 1),
              stroke-dashoffset 600ms cubic-bezier(0.4, 0, 0.2, 1);
}

#header .menu_icon > svg .line1 {
stroke-dasharray: 60 207;
stroke-width:     6;
}

#header .menu_icon > svg .line2 {
stroke-dasharray: 60 60;
stroke-width:     6;
}

#header .menu_icon > svg .line3 {
stroke-dasharray: 60 207;
stroke-width:     6;
}

#header.open .menu_icon > svg .line1 {
stroke-dasharray:  90 207;
stroke-dashoffset: -134;
stroke-width:      6;
}

#header.open .menu_icon > svg .line2 {
stroke-dasharray:  1 60;
stroke-dashoffset: -30;
stroke-width:      6;
}

#header.open .menu_icon > svg .line3 {
stroke-dasharray:  90 207;
stroke-dashoffset: -134;
stroke-width:      6;
}

/**************FOOTER*************/
.footer_contact {
padding-top:     75px;
border-top:      1px solid #000;
}
.footer_contact .titre1{
text-align: center;
padding: 0 25px;
margin-bottom: 50px;
}
.footer_contact .wrapper{
display:         flex;
flex-flow:       row wrap;
justify-content: space-between;
}

.footer_contact .wrapper > div {
width: 50%;
}

.footer_contact.contact_page .wrapper > div {
width: 100%;
}

.footer_contact.contact_page .wrapper > div.contact {
display: none;
}

.footer_contact .wrapper > div > article {
max-width: 500px;
margin:    0 auto;
height: 100%;
}

.footer_contact .wrapper > div > article .titre1 {
text-align:    center;
margin-bottom: 50px;
}

.footer_contact .wrapper > div.contact {
background-color: var(--secondaire);
display:          flex;
flex-flow:        column nowrap;
justify-content:  center;
align-items:      center;
height:           100%;
}

.footer_contact .wrapper > div.contact article {
padding-top:    67px;
padding-bottom: 67px;
}

.footer_contact .wrapper > div.contact address {
text-align:     center;
text-transform: uppercase;
margin-bottom:  50px;
}

.footer_contact .wrapper > div.contact .btn {
width:   225px;
display: block;
margin:  0 auto;
}

.footer_contact .wrapper > div.rdv article > iframe {
width:  100%;
border: none !important;
height: 100%;
}

#footer {
position: relative;
padding:  0 50px;
}

#footer .wrapper {
padding:         35px 0 75px;
border-top:      1px solid #000;
max-width:       1710px;
margin:          0 auto;
display:         flex;
flex-flow:       row nowrap;
justify-content: space-between;
align-items:     flex-end;
}

#footer .wrapper li a {
text-transform: uppercase;
}

#footer .wrapper li.contact {
display:     flex;
flex-flow:   row nowrap;
align-items: baseline;
}

#footer .wrapper li.contact .linkedin {
width:               30px;
height:              15px;
padding:             0 15px;
background-image:    url("../img/picto-link.png");
background-repeat:   no-repeat;
background-size:     15px auto;
background-position: center;
display:             block;
margin-left:         10px;
}

#footer .nash {
position: absolute;
top:      35px;
right:    25px;
}

#footer .nash_mobile {
display: none;
margin:  15px auto 0;
width:   84px;
}

/**************HP*************/
section.specialites .liste {
/*display:         flex;
flex-flow:       row wrap;
justify-content: space-between;
align-items:     flex-start;*/
    display: grid;
    grid-template: 1fr/repeat(3, 1fr);
    grid-gap: 20px;
}

main.specialite section.specialites .titre1 {
margin-bottom: 50px;
text-align:    center;
}

section.specialites .liste > article {
/*width:            calc((100% / 3) - 20px);*/
/*margin-bottom:    20px;*/
    width: 100%;
background-color: var(--secondaire);
}

/*section.specialites .liste > article:nth-child(2n) {
margin: 0 20px 20px 20px;
}*/

section.specialites .liste > article figure {
position:     relative;
width:        100%;
aspect-ratio: 566/566;
}

section.specialites .liste > article figure a {
position: absolute;
display:  block;
width:    100%;
height:   100%;
}

section.specialites .liste > article figure a img {
display:         block;
object-fit:      cover;
object-position: center;
height:          100%;
width:           100%;
}

section.specialites .liste > article figure::after {
content:        '';
display:        block;
padding-bottom: 100%;
}

section.specialites .liste > article .txt {
max-width:  360px;
margin:     70px auto;
text-align: center;
padding:    0 25px;
}

section.specialites .liste > article .ckeditor {
margin: 50px 0;
}

section.publications > .titre1 {
text-align:    center;
margin-bottom: 40px;
}

section.publications > .btn {
display: block;
width:   340px;
margin:  60px auto 0;
}

section.publications .liste ul {
display:         flex;
flex-flow:       row wrap;
justify-content: space-between;
align-items:     flex-start;
transition: opacity .2s;
margin-bottom: 30px;
}
section.publications .liste ul + ul {
border-top: 1px solid #EFEFEF;
padding-top: 30px;
}
section.publications .liste ul.off{
opacity: 0.3;
}

section.publications .liste ul li.titre {
width: 400px;
}

section.publications .liste ul li.titre span {
display:        block;
text-transform: uppercase;
}

section.publications .liste ul li.intro {
width: calc(100% - 650px);
}

section.publications .liste ul li.intro .ckeditor {
max-width: 530px;
margin:    0 auto;
}

section.publications .liste ul li.lien .btn {
width: 225px;
}

/**************PUBLICATIONS*************/
main.publications {
padding-bottom: 70px;
}

main.publications .menu_cat {
height: 50px;
width:  100%;
}

main.publications .menu_cat .frame {
display:   flex;
flex-flow: row nowrap;
}

main.publications .menu_cat .frame li {
padding:        10px 16px;
cursor:         pointer;
font-size:      20px;
border:         1px solid transparent;
font-family:    var(--font-titre);
text-transform: uppercase;
touch-action:   none;
white-space:    nowrap;
}

main.publications .menu_cat .frame li.active {
background-color: var(--secondaire);
border:           1px solid #000;
border-radius:    30px;
}

main.publications .menu_cat .frame li + li {
margin-left: 20px;
}

main.publications .menu_wrap {
position: relative;
padding:  0;
width:    100%;
margin:   120px 0 60px;
}

main.publications .menu_wrap .arrow {
position:            absolute;
padding:             20px;
top:                 0;
display:             flex;
flex-flow:           column nowrap;
justify-content:     center;
align-items:         center;
background-repeat:   no-repeat;
background-position: center center;
background-size:     auto 20px;
cursor:              pointer;
opacity:             1;
transition:          opacity 0.5s;
}

main.publications .menu_wrap .arrow.disabled {
opacity: 0;
}

main.publications .menu_wrap .arrow.forward {
background-image: url('../img/next_noir.png');
right:            -32px;
}

main.publications .menu_wrap .arrow.backward {
left:             -32px;
background-image: url('../img/prev_noir.png');
}

/**************SPECIALTIE DETAILS*************/
main.specialite .bandeau {
background-color: #000;
position:         relative;
overflow:         hidden;
}

main.specialite .bandeau figure {
position: absolute;
top:      0;
left:     0;
height:   100%;
width:    100%;
opacity:  0.8;
z-index:  2;
}

main.specialite .bandeau figure img {
max-width:       none;
display:         block;
object-fit:      cover;
object-position: center;
height:          100%;
width:           101%;
}

main.specialite .bandeau .titre1 {
position:   relative;
padding:    215px 0;
width:      100%;
text-align: center;
color:      #FFF;
z-index:    3;
}

main.specialite .intro .ckeditor {
margin:      55px auto 0;
text-align:  center;
max-width:   350px;
line-height: 20px;
}

/**************CONTACT*************/
main.contact .form_contact {
max-width: 500px;
margin:    0 auto;
}

main.contact .form_contact .btn {
display: block;
width:   225px;
margin:  50px auto 0;
}

main.contact .form_contact .load {
display: none;
height:  80px;
margin:  50px auto;
}

main.contact .form_contact .load img {
max-width:  none;
max-height: 100%;
margin:     0 auto;
}

main.contact .form_contact .envoye {
display: none;
}
/**************CABINET*************/
main.cabinets .titre1{
text-align: center;
margin-bottom: 50px;
}
main.cabinets .liste_image{
display: flex;
flex-flow: row wrap;
justify-content: center;
}
main.cabinets .liste_image li {
display: block;
width: calc((100% / 4) - 20px);
margin: 0 10px 20px 10px;
position: relative;
cursor: pointer;
}
main.cabinets .liste_image li::after{
content: '';
display: block;
padding-bottom: 75%;
}
main.cabinets .liste_image li figure{
position: absolute;
display: block;
width: 100%;
height: 100%;
overflow: hidden;
}
main.cabinets .liste_image li figure img{
display: block;
object-fit: cover;
object-position: center;
height: 100%;
width: 100%;
transition: transform 0.5s ease-in-out;
transform: none;
}
main.cabinets .liste_image li:hover figure img{
transform: scale(1.2);
}
#bg_popform, #popform,
#bg_lightboxes, #lightboxes {
display:  none;
position: fixed;
}

#bg_popform ,
#bg_lightboxes {
background-color: rgba(0, 0, 0, 0.8);
cursor:           pointer;
height:           100%;
left:             0;
top:              0;
width:            100%;
z-index:          7000;
}

#popform ,
#lightboxes {
background-color: #FFF;
left:             50%;
max-height:       90%;
max-width:        90%;
overflow:         auto;
padding:          50px;
top:              50%;
transform:        translate(-50%, -50%);
width:            800px;
z-index:          7500;
}
#lightboxes{
width: 1200px;
}

#popform > .close ,
#lightboxes > .close {
background:      url(../img/menu_close.png) no-repeat center center;
background-size: 100% auto;
cursor:          pointer;
display:         block;
height:          18px;
position:        absolute;
right:           20px;
top:             20px;
width:           18px;
z-index:         200;
}
#lightboxes li {
position: relative;
max-height: calc(90% - 100px);
overflow: auto;
}
#lightboxes figure img{
margin: 0 auto;
}
#lightboxes .lightbox_nav .slick-arrow {
border:       solid #B2B2B2;
border-width: 0 2px 2px 0;
display:      inline-block;
font-size:    0;
height:       12px;
padding:      2px;
position:     absolute;
top:          50%;
width:        12px;
z-index:      100;
}
#lightboxes .lightbox_nav .slick-arrow.slick-prev{
left:              35px;
-webkit-transform: rotate(135deg);
transform:         rotate(135deg);
}
#lightboxes .lightbox_nav .slick-arrow.slick-next {
right:             35px;
-webkit-transform: rotate(-45deg);
transform:         rotate(-45deg);
}
/**************LEGAL*************/
main.legal .legal_intro .titre1 {
text-align:    center;
margin-bottom: 50px;
}

main.legal .legal_intro .legal_intro_txt {
text-align:     center;
text-transform: uppercase;
}

main.legal .legal_texte article + article {
margin-top: 50px;
}

main.legal .legal_texte .cookieBtn {
display: block;
width:   340px;
margin:  50px auto 0;
}

#rgpd{
position:fixed;
bottom:0;
width:550px;
max-width:100%;
text-align:center;
left:-600px;
background-color:var(--secondaire);
color:var(--text);
padding:60px 40px;
z-index:50000;
transition:all 1s ease-in-out;
font-size:15px;
line-height:18px;
}

#rgpd.open{left:0;}

#rgpd > p{margin-bottom:40px;}

#rgpd .btn{
padding: 5px;
font-size: 15px;
}

#rgpd button + button{margin: 0 30px 0 5px;}

#rgpd a.bt{
text-decoration:underline;
font-size:13px;
color: #000;
}