
/* *****************************************************************
            DRC-MACONNERIE Cascading Style Sheet
***************************************************************** */

/* *****************************************************************
TOOLS
***************************************************************** */

:root {
    --myColorBG1: #eeeeee;          /* generalbackground, light grey */
    --myColorBG2: #444444;          /* grey */
    --myColorBG3: #ffffff;          /* white */
    --myColorHeader: #ffffff;       /* white for header */
    --myColorText1: #666666;        /* normal text, dark grey */
    --myColorText2: #ffffff;        /* white */
    --myColorText3: #000000;        /* black */
    --myColorButton: #666666;       /* grey */
    --myColorShadow: #aaaaaa;       /* shadow grey */
    --myColorShadow2: #777777;       /* shadow dark grey */
    --myColorHover: Tomato;         /* orange for the hover and the buttons*/
    --myColorMenu: Sandybrown;      /* orange light for the hover of header, footer and menus */
    --myColorItem: rgba(255, 255, 255, 0.90);
    --myColorReturn: #DAA520; /*GoldenRod*/
}

* {
    box-sizing: border-box;
}

html {
    font-size: 62.5%;
    /* used fonts :
    font-family: 'Bad Script', cursive;
    font-family: 'Raleway', sans-serif; */
}

/* *****************************************************************
GENERALITIES 
***************************************************************** */

body {
    background-color: #eeeeee;
    background-color: var(--myColorBG1);
    font-family: 'Raleway', Arial, Helvetica, sans-serif;
    font-weight: 400;
    font-size: 1.5rem;
    line-height: 2.5rem;
    color: #666666;
    color: var(--myColorText1);
}

h2,
h3,
h4,
h5,
h6 {
    margin: 0 0 2rem 0;
    color: #666666;
    color: var(--myColorText1);
    font-weight: normal;
    text-transform: uppercase;
    letter-spacing: 0.1rem;
}

p {
    margin: 0 0 1.5rem 0;
    font-size: 1.5rem;
}

h1 {
    font-size: 2rem;
}

h2 {
    font-size: 2rem;
}

h3 {
    font-size: 1.7rem;
}

h4 {
    font-size: 1.8rem;
}

h5 {
    font-size: 1.6rem;
}

h6 {
    margin: 0.5rem 0 1rem 0;
    font-size: 1.2rem;
    color: #eeeeee;
    color: var(--myColorBG1);
}

a {
    text-decoration: none;
}

/* *****************************************************************
COMMON ELEMENTS / BUTTONS / COOKIE BOX / 
***************************************************************** */

/* ************************************************************** */
/* common buttons */
.btn-button {
    padding: 1rem 1rem;
    background-color: transparent;
    border: 2px solid #666666;
    border: 2px solid var(--myColorButton);
    border-radius: 0.5rem;
    outline: none;
    font-size: 1.4rem;
    font-weight: normal;
    text-align: center;
    text-decoration: none;
    color: #666666;
    color: var(--myColorButton);
    text-transform: uppercase;
    white-space: nowrap;
    letter-spacing: 0rem;
    cursor: pointer;
    transition: all 0.2s ease-in-out;
}

.btn-button:hover {
    border-color: Tomato;
    border-color: var(--myColorHover);
    color: Tomato;
    color: var(--myColorHover);
    letter-spacing: 0.2rem;
    box-shadow: rgba(0,0,0,0.3) 1px 2px 6px, inset rgba(0,0,0,0.1) 0px -1px 1px;
}

.btn-button:active {
    transform: scale(0.95);
}

.btn-block {
    display: block;
    margin: 2rem auto 0.5rem auto;
    width: 24rem;
    width: fit-content;
}

/* ************************************************************** */
/* cookie box */
.cookie {
    position: fixed;
    margin: 0;
    padding: 0;
    bottom: 0;
    background-color: rgba(0,0,0,0.7);
    display: none;
}

.cookie p {
    font-size: 1.1rem;
    line-height: 1.2;
    color: #eeeeee;
    color: var(--myColorBG1);
    text-align: justify;
}

.cookie-display {
    display: block;
    animation: cookieappear 0.5s;
}

@keyframes cookieappear {
    0% {
        transform: translateY(250px);
    }
    100% {
        transform: translateY(0px);
    }
}

.btn-cookie {
    margin-right: 2.5rem;
    padding: 0.5rem 0.5rem;
    width: 10rem;
    background-color: rgba(255,255,255,0.4);
    font-size: 1.2rem;
    color: #ffffff;
    color: var(--myColorText2);
    text-transform: none;
}

.cookie-svg {
    position: absolute;
    z-index: -1;
    opacity: 0.5;
}

.cookie-content {
    padding: 0rem 2rem 1rem 2rem;
}

/* *****************************************************************
FIRST HEADER  (HEADER OF THE HOME PAGE)
***************************************************************** */

/* ************************************************************** */
/* header */
.header-home {
    display: -ms-flexbox;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    height: 75vh;
    position: relative;
}
.header-home::after {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    z-index: -1;
    content: "";
    background-image: url("../img/fondHeaderBrique1920-1080.jpg");
    background-size: auto;
    background-repeat: no-repeat;
    background-position: top;
    background-attachment: fixed;
    color: #ffffff;
    color: var(--myColorHeader);
    opacity: 1;
    -webkit-clip-path: url(#smile-small);
    clip-path: url(#smile-small);
}

.svg-header-home {
    display: block;
}

.svg-header-home-animate {
    display: none;
}

.header-home h1 {
    margin-bottom: 3rem;
    padding: 0 0 3vh 0;
    font-family: 'Bad Script', cursive;
    border-bottom: solid 3px #393536;
    font-size: 3.5rem;
    font-weight: normal;
    letter-spacing: 0.4rem;
    opacity: 1;
    animation: h1Opacity ease 4s;
}

.header-home h1 img {
    padding: 2%;
    /*width: 100%;*/
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 40vh;
}

.header-home p {
    padding: 0 1rem;
    margin: 0 auto;
    font-weight: normal;
    font-size: 1.3rem;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 0.1rem;
    color: #393536;
    animation: titleLetterSpacing ease 4s;
}

@keyframes titleLetterSpacing {
    0% {
        letter-spacing: 0.2rem;
    }
    100% {
        letter-spacing: 0.1rem;
    }
}

@keyframes h1Opacity {
    0% {opacity: 0.1;}
    100% {opacity:1;}
}

/* *****************************************************************
COMMON HEADER  (HEADER FOR ALL THE OTHER PAGES)
***************************************************************** */

/* ************************************************************** */
/* common header for all the pages (except homepage) */
.common-header {
    display: -ms-flexbox;
    display: flex;
    justify-content: space-between;
    position: relative;
    margin: 0;
    padding: 1.25rem;
    width: 100%;
    height: 5rem;
    background-color: #444444;
    background-color: var(--myColorBG2);
    border-bottom-left-radius: 0.5rem;
    border-bottom-right-radius: 0.5rem;
    box-shadow: 3px 3px 20px #777777;
    box-shadow: 3px 3px 20px var(--myColorShadow2);
}

.common-header h1 {
    margin: 0;
}

.common-header a {
    font-family: 'Bad Script', cursive;
    font-size: 2rem;
    font-weight: normal;
    letter-spacing: 0.1rem;
    color: White;
}

.common-header a:hover {
    border-bottom-color: transparent;
    color: Sandybrown;
    color: var(--myColorMenu);
}

/* ************************************************************** */
/* nav menu (hamburger) */
.hamburger {
    display: inline-block;
    position: relative;
    top: -0.5rem;
    width: 3rem;
    height: 0.2rem;
    background-color: #ffffff;
    background-color: var(--myColorBG3);
    transition: all 0.2s ease;
}

.hamburger::before,
.hamburger::after {
    content: '';
    width: 3rem;
    height: 0.2rem;
    background-color: #ffffff;
    background-color: var(--myColorBG3);
    display: inline-block;
    position: absolute;
    transform-origin: center;
    transition: transform 0.2s ease;
}

.hamburger::before {
    top: -0.7rem;
}

.hamburger::after {
    top: 0.7rem;
}

.hamburger.open {
    background-color: transparent;
}

.hamburger.open::before {
    transform: rotate(45deg);
    top: 0;
}

.hamburger.open::after {
    transform: rotate(-45deg);
    top: 0;
}
.nav-menu {
    padding: 0 1rem;
}

.nav-menu:hover {
    border-color: Sandybrown;
    border-color: var(--myColorMenu);
}

.nav-menu:hover .hamburger,
.nav-menu:hover .hamburger::before,
.nav-menu:hover .hamburger::after {
    background-color: Sandybrown;
    background-color: var(--myColorMenu);
}
.nav-menu:hover .hamburger.open {
    background-color: transparent;
}

.scroll-menu {
    background-color: #444444;
    background-color: var(--myColorBG2);
    position: absolute;
    width: 100%;
    top: 5.5rem;
    right: 0;
    padding: 1rem 0;
    border-radius: 0.5rem;
    box-shadow: 3px 3px 20px #777777;
    box-shadow: 3px 3px 20px var(--myColorShadow2);
    transform: scaleY(0);
    transform-origin: center top;
    transition: all 0.2s ease;
}

.scroll-menu.open {
    transform: scaleY(1);
}

.scroll-menu a {
    display: block;
    margin: 0 1rem;
    padding: 1rem 0;
    font-family: 'Raleway', sans-serif;
    font-size: 1.6rem;
    font-weight: normal;
    letter-spacing: 0.1rem;
    text-align: center;
    transition: all 0.2s ease;
}

.scroll-menu a:hover {
    background-color: grey;
    border-radius: 0.5rem;
    color: Sandybrown;
    color: var(--myColorMenu);
    letter-spacing: 0.1rem;
}

/* ************************************************************** */
/* snack bar to display errors messages, and confirmation messages */
.snack-error,
.snack-message {
    visibility: visible;
    position: fixed;
    top: 5.5rem;
    left: 50%;
    width: 30rem;
    margin-left: -15rem;
    padding: 1rem;
    text-align: center;
    opacity: 0.95;
    border-radius: 0.5rem;
    box-shadow: 5px 5px 15px #777777;
    box-shadow: 5px 5px 15px var(--myColorShadow2);
    z-index: 1; 
    animation: snack-appear 1.5s;
}

@keyframes snack-appear {
    0% {
        top: -20rem;
        opacity: 0;
    }
    100% {
        top: 5.5rem;
        opacity: 0.95;
    }
}

.snack-title {
    font-size: 1.8rem;
    font-weight: bold;
}

.snack-text {
    font-size: 1.2rem;
    font-weight: normal;
}

.snack-error {
    background-color: LightPink;
    color: DarkRed;
}

.snack-message {
    background-color: LightGreen;
    color: DarkSlateGray;
}

.hide-snack {
    visibility: hidden;
    top: -20rem;
    opacity: 0;
    transition: all 1.2s;
}

/* *****************************************************************
MAIN (HOME PAGE)
***************************************************************** */

/* ************************************************************** */
/* main container */
.container {
    margin: 0 auto;
    padding: 1rem;
    max-width: 560px;
    text-align: center;
}

/* ************************************************************** */
/* white articles with shadow */
.white-box {
    margin: 5rem auto;
    padding: 3rem 2rem;
    border-radius: 0.5rem;
    box-shadow: 3px 3px 20px #aaaaaa;
    box-shadow: 3px 3px 20px var(--myColorShadow);
    background-color: #ffffff;
    background-color: var(--myColorBG3);
    text-align: center;
}

.white-box:first-child {
    margin-top: 3rem;
}

/* ************************************************************** */
/* animation on scroll for the white articles */
.appear {    
    display: block;
    animation: appear 0.6s;
}

@keyframes appear {
    0% {
        transform: scale(0.85) translateY(-50px);
    }
    100% {
        transform: scale(1) translateY(0px);
    }
}

/* ************************************************************** */
/* pictos at the beginning of the articles */
.picto {
    margin: 0 0 2rem 0;
}

.picto::before {
    display: inline-block;
    width: 4rem;
    height: 4rem;
    border: 2px solid #aaaaaa;
    border: 2px solid var(--myColorShadow);
    border-radius: 50%;
    line-height: 4rem;
    font-size: 2rem;
    color: #666666;
    color: var(--myColorText1);
}

/* ************************************************************** */
/* section specialties */
.specialties {
    display: -ms-flexbox;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-around;
    margin: 5rem 0rem;
}

.specialties h2 {
    width: 100%;
}

.specialties p {
    margin-bottom: 1rem;
    width: 100%;
}

/* ************************************************************** */
/* cards of specialties */
.card {
    display: -ms-flexbox;
    display: flex;
    flex-wrap: wrap;
    margin: 1.6rem 0;
    width: 100%;
    height: 48rem;
    background-color: #ffffff;
    background-color: var(--myColorBG3);
    border-radius: 0.5rem;
    transition: all 0.2s;
    box-shadow: 5px 5px 15px #aaaaaa;
    box-shadow: 5px 5px 15px var(--myColorShadow);
}

.card p {
    margin: 0 0.5rem;
}

.card-header {
    display: -ms-flexbox;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    width: 100%;
    height: 20em;
    border-top-left-radius: 0.5rem;
    border-top-right-radius: 0.5rem;
    background-color: #444444;
    background-color: var(--myColorBG2);
}

.card-header h3 {
    display: block;
    text-align: center;
    margin: 0;
    padding: 1rem;
    border-radius: 0.5rem;
    color: rgba(255, 255, 255, 0.90);
    color: var(--myColorItem);
    z-index: 1;
    letter-spacing: 0.4rem;
    transition: all 0.2s;
    background-color: rgba(0, 0, 0, 0.3);
}

.card-header img {
    position: absolute;
    top: 0;
    left: 0;
    width: inherit;
    height: inherit;
    border-top-left-radius: 0.5rem;
    border-top-right-radius: 0.5rem;
    opacity: 1;
    transition: all 0.2s;
}

/* *****************************************************************
MAIN (PROJECTS PAGE)
***************************************************************** */

/* ************************************************************** */
/* projects page */
.projects-page {
    margin-top: 7rem;
}

.project-image {
    display: block;
    margin: 3rem auto;
    max-width: 90%;
    height: auto;
    border-radius: 0.5rem;
    box-shadow: 5px 5px 15px #aaaaaa;
    box-shadow: 5px 5px 15px var(--myColorShadow);
}

.projects-page .white-box:hover a {
    border-color: Tomato;
    border-color: var(--myColorHover);
    color: Tomato;
    color: var(--myColorHover);
    box-shadow: rgba(0,0,0,0.3) 1px 2px 6px, inset rgba(0,0,0,0.1) 0px -1px 1px;
}

.white-box a:hover {
    letter-spacing: 0.3rem;
}

/* *****************************************************************
MAIN (ARTICLES PAGE)
***************************************************************** */

/* ************************************************************** */
/* articles page */
.articles-page {
    margin-top: 7rem;
}

.articles-page h2 {
    margin: 2rem auto 5rem;
}

.img-left {
    width: 50%;
    float: left;
    margin-top: 0.5rem;
    margin-right: 3%;
    margin-bottom: 2%;
    padding: 0;
    border-radius: 0.5rem;
    box-shadow: 5px 5px 15px #aaaaaa;
    box-shadow: 5px 5px 15px var(--myColorShadow);
}

.article-project-description {
    min-height: 19rem;
    text-align: justify;
    margin-bottom: 5rem;
}

.clear {
    clear:both;
}

/* ************************************************************** */
/* for the SLIDER of the Articles Page */
.slider {
    position: relative;
    margin-top: 1rem;
}

.slideOne {
    display: none;
    position: relative;
    width: 100%;
    height: 66vmin;
    background-color: #eeeeee;
    background-color: var(--myColorBG1);
    border-radius: 0.5rem;
    box-shadow: 5px 5px 15px #aaaaaa;
    box-shadow: 5px 5px 15px var(--myColorShadow);
}

.slideOne img {
    max-width: 100%;
    height: 66vmin;
    border-radius: 0.5rem;
}

.slideOne p {
    display: block;
    position: absolute;
    width: 100%;
    height: 8rem;
    margin: 0;
    padding: 2rem 3rem;
    bottom: 0;
    background-image: linear-gradient(to bottom, rgba(0,0,0,0), rgba(0,0,0,0.6));
    color: #ffffff;
    color: var(--myColorText2);
    border-bottom-left-radius: 0.5rem;
    border-bottom-right-radius: 0.5rem;
    overflow: auto;
}

.activeSlide {
    display: block;
    animation-name: fadeOn;
    animation-duration: 1.2s;
}

@keyframes fadeOn {
    from {opacity: 0.5} 
    to {opacity: 1}
}

.prevBtn, .nextBtn {
    cursor: pointer;
    position: absolute;
    top: 45%;
        padding: 0 1.5rem;
    width: 5rem;
    height: 5rem;
    color: rgba(255,255,255,0.6);
    font-size: 2rem;
    line-height: 2;
    border-radius: 50%;
    border: none;
    background-color: rgba(0,0,0,0.1);
    transition: 0.15s ease;
}

.prevBtn {
    left: 1.5rem;
}

.nextBtn {
    right: 1.5rem;
}

.prevBtn:hover, .nextBtn:hover {
    background-color: rgba(0,0,0,0.6);
    color: rgba(255,255,255);
    outline: none;
}

.prevBtn:focus, .nextBtn:focus {
    outline: none;
}

.prevBtn:active, .nextBtn:active {
    background-color: rgba(255,255,255,.6);
    outline: none;
}

/* *****************************************************************
MAIN (CONTACT PAGE)
***************************************************************** */

/* ************************************************************** */
/* contact form - generalities */
.contact-form {
    display: -ms-flexbox;
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
}
.contact-form > p {
    margin-top: 2rem;
    font-size: 2rem;
}

.contact-informations,
.contact-message {
    display: -ms-flexbox;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    margin-top: 3rem;
    margin-bottom: 1.5rem;
}

.contact-informations .coord-input {
    width: 100%;
    margin: 2rem 0;
}

.contact-message .message-input {
    width: 100%;
    margin: 2rem 0;
}

.coord-input,
.message-input {
    position: relative;
    padding: 0;
    background-color: #444444;
    background-color: var(--myColorBG2);
    border-radius: 5px;
    outline: none;
}

.coord-input input,
.message-input textarea {
    width: 100%;
    height: 10rem;
    padding: 2.5rem;
    color: White;
    overflow: visible;
    caret-color: White;
    background: transparent;
    border: none;
    outline: none;
}

.message-input textarea {
    height: 30rem;
    padding: 4rem 2.5rem 2.5rem;
}

.coord-input label,
.coord-input:focus label,
.message-input label,
.message-input:focus label {
    position: absolute;
    top: 1rem;
    left: 2rem;
    color : White;
    font-size: 1.5rem;
    transition: all 0.2s ease;
}

.coord-input input:focus ~ label, 
.coord-input input:valid ~ label,
.message-input textarea:focus ~ label, 
.message-input textarea:valid ~ label {
    top: 0.6rem;
    left: 1.5rem;
    font-size: 1.2rem;
    color: #666666;
    color: var(--myColorText1);
    transition: all 0.2s ease;
}

.zone-counter {
    position: absolute;
    right: 0;
    bottom: -3rem;
    margin: 0;
}

.text-counter {
    margin: 0;
    font-size: 1.5rem;
}

.contact-copy-mail {
    display: -ms-flexbox;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: center;
}

/* ************************************************************** */
/* contact form - category buttons */
.contact-category {
    width: 100%;
    border-radius: 0.5rem;
}

.category-field {
    display: -ms-flexbox;
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    justify-content: space-around;
    justify-content: space-evenly;
    align-items: center;
    height: auto;
}
    
.category-field input[type="radio"] {
    position: fixed;
    opacity: 0;
    width: 0;
}
.category-field label {
    margin: 1rem;
    padding: 1.2rem;
    min-width: 75%;
    background-color: #ffffff;
    background-color: var(--myColorBG3);
    font-size: 1.6rem;
    border: 1px solid #444444;
    border: 1px solid var(--myColorBG2);
    border-radius: 0.5rem;
    box-shadow: rgba(0,0,0,0.3) 1px 2px 6px, inset rgba(0,0,0,0.1) 0px -1px 1px;
}
.category-field label:hover {
    background-color: #eeeeee;
    background-color: var(--myColorBG1);
    border-color: #666666;
    border-color: var(--myColorText1);
    cursor: pointer;
}
.category-field input[type="radio"]:focus + label {
    border: 1px solid #666666;
    border: 1px solid var(--myColorText1);
    cursor: pointer;
}
.category-field input[type="radio"]:checked + label {
    background-color: #444444;
    background-color: var(--myColorBG2);
    border-color: #666666;
    border-color: var(--myColorText1);
    color: White;
}
.category-field input[type="radio"] +label {
    transition: all 0.05s ease;
}
.category-field input[type="radio"]:active + label {
    transform: scale(0.96);
}

/* ************************************************************** */
/* contact form - checkbox buttons */
input[type="checkbox"] {
    display: block;
    float: left;
    appearance: none;
    opacity: 0;
    z-index: -1;
}

input[type="checkbox"] + label {
    display: block;
    position: relative;
    padding-left: 4rem;
    color: #444444;
    color: var(--myColorBG2);
    cursor: pointer;            
    font-size: 1.4rem;
    font-weight: normal;
    text-decoration: none;
}

input[type="checkbox"] + label:before {
    font-family: FontAwesome;
    font-style: normal;
    font-weight: normal;
    text-transform: none;
}

input[type="checkbox"] + label:before {
    display: inline-block;
    position: absolute;
    top: 0;
    left: 0;
    width: 2.5rem;
    height: 2.5rem;
    content: '';
    background: rgba(144, 144, 144, 0.075);
    border-radius: 0.5rem;
    border: solid 1px rgba(144, 144, 144, 0.25);
    text-align: center;
}

input[type="checkbox"]:checked + label:before {
    background-color: #444444;
    background: var(--myColorBG2);
    border-color: #444444;
    border-color: var(--myColorBG2);
    content: '\f00c';
    font-size: 1.5rem;
    color: White;
}

input[type="checkbox"]:focus + label:before {
    border-color: #444444;
    border-color: var(--myColorBG2);
    box-shadow: 0 0 0 0.2rem #aaaaaa;
    box-shadow: 0 0 0 0.2rem var(--myColorShadow);
}

input[type="checkbox"] + label:before {
    border-radius: 0.5rem;
}

/* ************************************************************** */
/* contact form - anti-bot */
.for-bot {
    display: none;
}

/* *****************************************************************
MAIN (LEGAL PAGE)
***************************************************************** */

/* ************************************************************** */
/* legal page - generalities */
.legal-left {
    text-align: left;
}
.legal-left p,
.legal-left ul,
.legal-left li {
    font-size: 1.2rem;
}


/* *****************************************************************
FOOTER
***************************************************************** */

/* ************************************************************** */
/* common footer */
.footer {
    display: -ms-flexbox;
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    padding: 3rem 0 1rem 0;
    background-color: #444444;
    background-color: var(--myColorBG2);
    border-top-left-radius: 5px;
    border-top-right-radius: 5px;
    box-shadow: 3px 3px 20px #777777;
    box-shadow: 3px 3px 20px var(--myColorShadow2);
}

.footer a {
    color: #eeeeee;
    color: var(--myColorBG1);
    text-decoration: none;
    transition: all 0.2s ease;
}

.social {
    display: -ms-inline-flexbox;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}

.social a {
    font-size: 2rem;
    padding: 0 2rem;
}

.copyright {
    display: -ms-flexbox;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-around;
    padding: 1rem 0 0 0;
}

.copyright a {
    font-size: 1.2rem;
}

.footer a:hover {
    border-bottom-color: transparent;
    color: Sandybrown;
    color: var(--myColorMenu);
}

/* *****************************************************************
ADMIN PAGES
***************************************************************** */

/* ************************************************************** */
/* admin pages */
.text-right {
    text-align: right;
}

.msg-header,
.msg-line,
.msg-footer {
    display: -ms-flexbox;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    margin: 2rem 0;
    padding: 1rem 1rem;
    width: 100%;
    min-height: 8rem;
    background-color: #eeeeee;
    background-color: var(--myColorBG1);
    border-radius: 0.5rem;
    box-shadow: 5px 5px 15px #aaaaaa;
    box-shadow: 5px 5px 15px var(--myColorShadow);
}

.msg-header p,
.msg-line p,
.msg-footer p {
    font-size: 1.2rem;
}

.msg-header {
    background-color: #444444;
    background-color: var(--myColorBG2);
    color: #ffffff;
    color: var(--myColorText2);
}

.msg-header i {
    font-size: 2.1rem;
}

.msg-footer {
    justify-content: flex-end;
    align-items: flex-end;
}

.art-footer {
    padding: 1rem;
}

.center-around {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-around;
    width: 100%;
}

.msg-name {
    width: 40%;
    text-align: left;
}

.msg-categ {
    width: 30%;
}

.msg-tel {
    width: 28%;
}

.msg-mail {
    width: 40%;
    text-align: left;
    overflow-wrap: break-word;
}

.msg-cc,
.prj-count,
.prj-visible {
    width: 24%;
}

.msg-date,
.prj-date {
    width: 25%;
}

.msg-del {
    width: 5%;
    padding: 0rem 0rem 0rem 1rem;
}

.msg-text,
.prj-title,
.prj-text {
    width: 75%;
    text-align: left;
    overflow-wrap: break-word;
}

.msg-line:hover {
    background-color: #ffffff;
    background-color: var(--myColorBG3);
}

.prj-author {
    width: 50%;
    text-align: left;
}

.prj-photo {
    width: 33%;
    text-align: left;
    height: auto;
}

.prj-photo img {
    width: 100%;
    border-radius: 0.5rem;
    box-shadow: 5px 5px 15px #aaaaaa;
    box-shadow: 5px 5px 15px var(--myColorShadow);
}

.prj-text {
    padding-left: 1rem;
    width: 66%;
    text-align: left;
}

.btn-del,
.btn-new {
    margin-top: 1.5rem;
}

.btn-proj {
    padding: 1rem 1rem;
    background-color: transparent;
    border: 2px solid #666666;
    border: 2px solid var(--myColorButton);
    border-radius: 0.5rem;
    outline: none;
    font-size: 1.4rem;
    font-weight: normal;
    text-align: center;
    text-decoration: none;
    color: #666666;
    color: var(--myColorButton);
    text-transform: uppercase;
    white-space: nowrap;
    letter-spacing: 0rem;
    cursor: pointer;
}

.btn-proj:hover {
    border-color: Tomato;
    border-color: var(--myColorHover);
    color: Tomato;
    color: var(--myColorHover);

    box-shadow: rgba(0,0,0,0.3) 1px 2px 6px, inset rgba(0,0,0,0.1) 0px -1px 1px;
}
.no-spacing a:hover {
    letter-spacing: 0rem;
}

.btn-proj:active {
    transform: scale(0.95);
}

.btn-saveart {
    border-color: Green;
    color: Green;
}

.btn-updproj {
    border-color: MediumBlue;
    color: MediumBlue;
}

.btn-delproj {
    border-color: FireBrick;
    color: FireBrick;
}

.red {
    color: FireBrick;
}

.green {
    color: DarkGreen;
}

.form-newprj .contact-informations .coord-input {
    width: 100%;
}

.small {
    display: block;
    width: 66%;
}

.small-height {
    min-height: 2rem;
    margin: 2rem 0 0 0;
}

input[type="radio"].btn-radio {
    display: none;
}

input[type="radio"].btn-radio + label {
    margin: 0;
    padding: 0.75rem 3rem;
    line-height: 1.5rem;
    height: 3rem;
    border: 1px solid LightGrey;
    border-radius: 0.5rem;
    background-color: #eeeeee;
    background-color: var(--myColorBG1);
    color: #666666;
    color: var(--myColorText1);
    font-size: 1.2rem;
    cursor: pointer;
    transition: all 0.2s ease;
}

input[type="radio"].btn-radio.radio-yes:hover + label {
    border: 1px solid Transparent;
    background-color: DarkGreen;
    color: #ffffff;
    color: var(--myColorText2);
}

input[type="radio"].btn-radio.radio-yes:checked + label {
    border: 1px solid Transparent;
    background-color: DarkGreen;
    color: #ffffff;
    color: var(--myColorText2);
}

input[type="radio"].btn-radio.radio-no:hover + label {
    border: 1px solid Transparent;
    background-color: FireBrick;
    color: #ffffff;
    color: var(--myColorText2);
}

input[type="radio"].btn-radio.radio-no:checked + label {
    border: 1px solid Transparent;
    background-color: FireBrick;
    color: #ffffff;
    color: var(--myColorText2);
}

.resume-input {
    margin: 0 0 3rem 0;
    padding: 0;
    position: relative;
    width: 100%;
    background-color: #444444;
    background-color: var(--myColorBG2);
    border-radius: 5px;
    outline: none;
}

.resume-input input {
    padding: 2rem;
    width: 100%;
    height: 8rem;
    color: White;
    overflow: visible;
    caret-color: White;
    background: transparent;
    border: none;
    outline: none;
}

.resume-input label,
.resume-input:focus label {
    position: absolute;
    top: 1rem;
    left: 2rem;
    color: #666666;
    color: var(--myColorText1);
    font-size: 1.5rem;
    transition: all 0.2s ease;
}

.resume-input textarea:focus ~ label, 
.resume-input textarea:valid ~ label {
    top: 0.6rem;
    left: 1.5rem;
    font-size: 1.2rem;
    color: #666666;
    color: var(--myColorText1);
    transition: all 0.2s ease;
}

/* ************************************************************** */
/* admin return buttons */
.btn-return {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    position: fixed;
    justify-content: center;
    padding: 1rem 0 0 0;
    width: 5rem;
    height: 5rem;
    bottom: 2rem;
    left: 2rem;
    border: 3px solid GoldenRod;
    border: 3px solid var(--myColorReturn);
    outline: none;
    background-color: rgb(218, 165, 32, 0.2);
    color: GoldenRod;
    color: var(--myColorReturn);
    border-radius: 50%;
    letter-spacing: 0rem;
    box-shadow: rgba(0,0,0,0.2) 0px 0px 5px;
    cursor: pointer;
    transition: all 0.4s ease;
}

.return-picto {
    color: GoldenRod;
    color: var(--myColorReturn);
    font-size: 2rem;
    opacity: 1;
}

.return-p {
    position: absolute;
    padding-top: 0.2rem;
    line-height: 1;
    font-size: 1rem;
    opacity: 0;
}

.btn-return:hover {
    border-color: Tomato;
    border-color: var(--myColorHover);
    color: Tomato;
    color: var(--myColorHover);
}

.btn-return:hover .return-p {
    opacity: 1;
}

.btn-return:hover .return-picto {
    opacity: 0;
}

.btn-return:active {
    transform: scale(0.95);
}

/* ************************************************************** */
/* confirmation window with OK or Cancel buttons */
.modal-box {
    display: none;
    position: fixed;
    z-index: 1;
    padding-top: 10%;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0, 0, 0, 0.4);
}

.modal-content {
    position: relative;
    margin: auto;
    padding: 2rem;
    width: 80%;
    background-color: #ffffff;
    background-color: var(--myColorBG3);
    border-radius: 0.5rem;
    box-shadow: 5px 5px 20px #777777;
    box-shadow: 5px 5px 20px var(--myColorShadow2);
    animation-name: modalBoxAppear;
    animation-duration: 0.1s
}

@keyframes modalBoxAppear {
    from {
        transform: scale(0.96);
        opacity: 0.5;
    }
    to {
        transform: scale(1);
        opacity: 1;
    }
}

.btn-modal {
    margin: 1rem;
    padding: 1rem 2rem;
    background-color: transparent;
    border: 2px solid #666666;
    border: 2px solid var(--myColorButton);
    border-radius: 0.5rem;
    outline: none;
    color: #666666;
    color: var(--myColorButton);
    white-space: nowrap;
    letter-spacing: 0rem;
    cursor: pointer;}

.btn-modal:hover {
    border-color: Tomato;
    border-color: var(--myColorHover);
    color: Tomato;
    color: var(--myColorHover);
    box-shadow: rgba(0,0,0,0.3) 1px 2px 6px, inset rgba(0,0,0,0.1) 0px -1px 1px;
}

.btn-modal:active {
    transform: scale(0.95);
}

.btn-red {
    background-color: #f2d6d6;
    border-color: FireBrick;
    color: FireBrick;
}

.btn-green {
    background-color: LightGreen;
    border-color: DarkGreen;
    color: DarkGreen;
}

.btn-grey {
    background-color: GhostWhite;
}

/* *****************************************************************
RESPONSIVES STYLES  (MOBILE FIRST)
***************************************************************** */

/* *****************************************************************
RESPONSIVE TABLET VERSION
***************************************************************** */

@media screen and (min-width: 600px) {
    /* *****************************************************************
    GENERALITIES 
    ***************************************************************** */
    body {
        font-size: 1.7rem;
        line-height: 2.7rem;
    }
    
    h2,
    h3,
    h4,
    h5,
    h6 {
        margin: 0 0 2rem 0;
    }
    
    p {
        margin: 0 0 1.7rem 0;
        font-size: 1.6rem;
    }
    
    h1 {
        font-size: 2.5rem;
    }
    
    h2 {
        font-size: 2.5rem;
    }
    
    h3 {
        font-size: 2rem;
    }
    
    h4 {
        font-size: 1.9rem;
    }
    
    h5 {
        font-size: 1.7rem;
    }
    
    h6 {
        line-height: 2.0rem;
        margin: 1.5rem 0 1.5rem 0;
        font-size: 1.3rem;
    }
    
    /* *****************************************************************
    COMMON ELEMENTS / BUTTONS / COOKIE BOX / 
    ***************************************************************** */
    
    /* ************************************************************** */
    /* common buttons */
    .btn-block {
        margin: 3rem auto 0.5rem auto;
        width: 30rem;
        width: fit-content;
        letter-spacing: 0.1rem;
    }
    
    /* ************************************************************** */
    /* cookie box */
    .cookie p {
        font-size: 1.2rem;
        line-height: 1.3;
    }

    .btn-cookie {
        width: 11rem;
        font-size: 1.3rem;
    }

    /* *****************************************************************
    FIRST HEADER  (HEADER OF THE HOME PAGE)
    ***************************************************************** */
    
    /* ************************************************************** */
    /* header */
    .header-home {
        min-height: 75vh;
    }
    
    .header-home h1 {
        margin-bottom: 4rem;
        padding: 0 0 4vh 0;
        font-size: 5rem;
    }
    
    .header-home p {
        font-size: 2rem;
    }
    
    /* *****************************************************************
    COMMON HEADER  (HEADER FOR ALL THE OTHER PAGES)
    ***************************************************************** */
    
    /* ************************************************************** */
    /* common header for all the pages (except homepage) */
    .common-header {
        padding: 2rem;
        height: 6.5rem;
    }
    
    .common-header a {
        font-size: 3rem;
    }
    
    /* ************************************************************** */
    /* nav menu (hamburger) */
    .hamburger {
        top: -1rem;
    }
    
    .scroll-menu {
        width: 55%;
        top: 7rem;
    }
    
    .scroll-menu a {
        font-size: 1.8rem;
    }
    
    /* ************************************************************** */
    /* snack bar to display errors messages, and confirmation messages */
    .snack-error,
    .snack-message {
        width: 40rem;
        margin-left: -20rem;
        padding: 2rem;
    }
    
    .snack-title {
        font-size: 2rem;
        font-weight: bold;
    }
    
    .snack-text {
        font-size: 1.4rem;
        font-weight: normal;
    }
    
    /* *****************************************************************
    MAIN (HOME PAGE)
    ***************************************************************** */
    
    /* ************************************************************** */
    /* main container */
    .container {
        max-width: 700px;
        padding: 1.5rem;
    }
    
    /* ************************************************************** */
    /* white articles with shadow */
    .white-box {
        margin: 6rem auto;
        padding: 4rem 5rem;
    }
    
    .white-box:first-child {
        margin-top: 3.5rem;
    }
    
    /* ************************************************************** */
    /* pictos at the beginning of the articles */
    .picto {
        margin: 0 0 2.5rem 0;
    }

    .picto::before {
        display: inline-block;
        width: 5rem;
        height: 5rem;
        line-height: 5rem;
        font-size: 2.5rem;
    }
    
    /* ************************************************************** */
    /* section specialties */
    .specialties {
        margin: 7rem 0rem;
    }
    
    .card {
        height: 53rem;
    }
    
    .card p {
        margin: 0 2rem;
    }
    
    .card-header {
        height: 24em;
    }
    
    /* *****************************************************************
    MAIN (ARTICLES PAGE)
    ***************************************************************** */
    
    /* ************************************************************** */
    /* articles page */
    .img-left {
        width: 50%;
    }
    
    .slideOne {
        max-height: 40rem;
    }
    
    .slideOne img {
        max-height: 40rem;
    }
    
    /* *****************************************************************
    MAIN (CONTACT PAGE)
    ***************************************************************** */
    
    /* ************************************************************** */
    /* contact form */
    .category-field label {
        min-width: 50%;
    }
    
    /* *****************************************************************
    FOOTER
    ***************************************************************** */
    
    /* ************************************************************** */
    /* common footer */
    .footer {
        padding: 4rem 0 1rem 0;
    }
    
    .copyright {
        flex-direction: row;
        padding: 2rem 0 0 0;  
    }
    
    .copyright a {
        font-size: 1.1rem;
    }
    
    /* *****************************************************************
    ADMIN PAGES
    ***************************************************************** */
    
    /* ************************************************************** */
    /* admin pages */
    .msg-header p,
    .msg-line p,
    .msg-footer p {
        font-size: 1.4rem;
    }
    
    .msg-name {
        width: 40%;
        text-align: left;
    }
    
    .msg-categ {
        width: 24%;
    }
    
    .msg-tel {
        width: 25%;
    }
    
    .msg-del {
        padding: 0rem 0rem 0rem 2rem;
    }
    
    input[type="radio"].btn-radio + label {
        padding: 1rem 4rem;
        height: 3.5rem;
        font-size: 1.5rem;
    }
    
    .small {
        width: 50%;
    }
    
    /* ************************************************************** */
    /* admin return buttons */
    .btn-return {
        padding: 1.4rem 0 0 0;
        width: 6rem;
        height: 6rem;
    }
    
    .return-picto {
        font-size: 2.5rem;
    }
    
    .return-p {
        padding-top: 0.1rem;
        font-size: 1.2rem;
    }
    
    /* ************************************************************** */
    /* confirmation window with OK or Cancel buttons */
    .modal-content {
        padding: 3rem;
        width: 60%;
    }

/* ************************************************************** */
} /* END OF RESPONSIVE TABLET VERSION */
/* ************************************************************** */

/* *****************************************************************
RESPONSIVE DESKTOP VERSION
***************************************************************** */

@media screen and (min-width: 960px) {
    /* *****************************************************************
    GENERALITIES 
    ***************************************************************** */
    body {
        font-size: 2rem;
        line-height: 2.8rem;
    }
    
    h2,
    h3,
    h4,
    h5,
    h6 {
        margin: 0 0 3rem 0;
    }
    
    p {
        margin: 0 0 2rem 0;
        font-size: 1.8rem;
        letter-spacing: 0.02rem;
    }
    
    h1 {
        font-size: 3.5rem;
    }
    
    h2 {
        font-size: 3rem;
    }
    
    h3 {
        font-size: 2.2rem;
    }
    
    h4 {
        font-size: 2rem;
    }
    
    h5 {
        font-size: 1.8rem;
    }
    
    h6 {
        line-height: 1.5rem;
        margin: 2rem 0 2rem 0;
        font-size: 1.5rem;
    }
    
    /* *****************************************************************
    COMMON ELEMENTS / BUTTONS / COOKIE BOX / 
    ***************************************************************** */
    
    /* ************************************************************** */
    /* common buttons */
    .btn-button {
        padding: 1.5rem 3rem;
        font-size: 1.8rem;
    }
    
    .btn-block {
        margin: 4rem auto 0.5rem auto;
        width: 38rem;
        width: fit-content;
    }
    
    /* ************************************************************** */
    /* cookie box */
    .cookie p {
        font-size: 1.3rem;
        line-height: 1.4;
    }
    
    .btn-cookie {
        padding: 0.6rem 1rem;
        width: 14rem;
        font-size: 1.4rem;
    }
    
    .cookie-content {
        padding: 0rem 3rem 2rem 3rem;
    }
    
    /* *****************************************************************
    FIRST HEADER  (HEADER OF THE HOME PAGE)
    ***************************************************************** */
    
    /* ************************************************************** */
    /* header */
    .header-home {
        min-height: 75vh;
        -webkit-clip-path: url(#smile-large);
        clip-path: url(#smile-large);
    }
    
    .svg-header-home {
        display: none;
    }
    
    .svg-header-home-animate {
        display: block;
    }
    
    .header-home h1 {
        margin-bottom: 5rem;
        padding: 0 0 5vh 0;
        font-size: 7rem;
    }
    
    .header-home p {
        padding: 0 1.5rem;
        font-size: 2.2rem;
    }
    
    .scroll-menu {
        width: 45%;
    }
    
    .scroll-menu a {
        font-size: 2rem;
    }
    
    /* ************************************************************** */
    /* snack bar to display errors messages, and confirmation messages */
    .snack-error,
    .snack-message {
        width: 50rem;
        margin-left: -25rem;
        padding: 4rem;
    }
    
    .snack-title {
        font-size: 2.2rem;
        font-weight: bold;
    }
    
    .snack-text {
        font-size: 1.6rem;
        font-weight: normal;
    }
    
    /* *****************************************************************
    MAIN (HOME PAGE)
    ***************************************************************** */
    
    /* ************************************************************** */
    /* main container */
    .container {
        max-width: 1050px;
        padding: 2rem;
    }
    
    /* ************************************************************** */
    /* white articles with shadow */
    .white-box {
        margin: 7rem auto;
        padding: 5rem 8rem;
    }
    
    /* ************************************************************** */
    /* pictos at the beginning of the articles */
    .picto {
        margin: 0 0 3rem 0;
    }

    .picto::before {
        display: inline-block;
        width: 6rem;
        height: 6rem;
        line-height: 6rem;
        font-size: 3rem;
    }
    
    /* ************************************************************** */
    /* section specialties */
    .specialties {
        margin: 11rem 0rem;
    }
    
    .specialties p {
        margin-bottom: 3rem;
    }
    
    .card {
        width: 47%;
        height: 55rem;
        box-shadow: none;
    }
    
    .card p {
        margin: 0 4rem;
    }
    
    .card-header {
        height: 15em;
    }
    
    .card-header h3 {
        padding: 0;
        background-color: transparent;
        letter-spacing: 0.2rem;
    }
    
    .card-header img {
        opacity: 0.5;
    }
    
    .card:hover {
        box-shadow: 5px 5px 15px #aaaaaa;
        box-shadow: 5px 5px 15px var(--myColorShadow);
    }
    .card:hover h3 {
        padding: 1rem;
        background-color: rgba(0, 0, 0, 0.3);
        letter-spacing: 0.4rem;
    }
    .card:hover img {
        opacity: 1;
    }
    
    /* *****************************************************************
    MAIN (ARTICLES PAGE)
    ***************************************************************** */
    
    /* ************************************************************** */
    /* articles page */
    .img-left {
        width: 40%;
    }
    
    .slideOne {
        max-height: 62rem;
    }
    
    .slideOne img {
        max-height: 62rem;
    }
    
    /* *****************************************************************
    MAIN (CONTACT PAGE)
    ***************************************************************** */
    
    /* ************************************************************** */
    /* contact form */
    .contact-informations .coord-input {
        width: 48%;
    }
    
    .category-field {
        flex-direction: row;
    }
    
    .category-field label {
        min-width: 25%;
        font-size: 1.8rem;
    }
    
    input[type="checkbox"] + label {
        font-size: 1.6rem;
    }
    
    /* *****************************************************************
    FOOTER
    ***************************************************************** */
    
    /* ************************************************************** */
    /* common footer */
    .footer {
        padding: 5rem 0 1rem 0;
    }
    
    .social a {
        font-size: 3rem;
        padding: 0 3rem;
    }
    
    .copyright {
        padding: 4rem 0 0 0;
    }
    
    .copyright a {
        font-size: 1.2rem;
    }
    
    /* *****************************************************************
    ADMIN PAGES
    ***************************************************************** */
    
    /* ************************************************************** */
    /* admin pages */
    .msg-header p,
    .msg-line p,
    .msg-footer p {
        font-size: 1.5rem;
    }
    
    .msg-name {
        width: 25%;
    }
    
    .msg-categ {
        width: 14%;
    }
    
    .msg-tel {
        width: 14%;
    }
    
    .msg-mail {
        width: 25%;
    }
    
    .msg-cc {
        width: 5%;
    }
    
    .msg-date {
        width: 12%;
    }
    
    .msg-del {
        width: 5%;
        padding: 2rem 0rem 0rem 1rem;
    }
    
    input[type="radio"].btn-radio + label {
        padding: 1.6rem 5rem;
        height: 5rem;
        font-size: 2rem;
    }
    
    .small {
        width: 33%;
    }
    
    .resume-input {
        width: 65%;
        margin: 3rem auto;
    }
    
    .art-footer {
        padding: 6rem 0 4rem 0;
    }
    
    /* ************************************************************** */
    /* admin return buttons */
    .btn-return {
        padding: 1.7rem 0 0 0;
        width: 7rem;
        height: 7rem;
        bottom: 4rem;
        left: 4rem;
    }
    
    .return-picto {
        font-size: 3rem;
    }
    
    .return-p {
        padding-top: 0.1rem;
        font-size: 1.3rem;
    }
    
    /* ************************************************************** */
    /* confirmation window with OK or Cancel buttons */
    .modal-box {
        padding-top: 12%;
    }
    
    .modal-content {
        width: 50%;
    }

/* ************************************************************** */
} /* END OF RESPONSIVE DESKTOP VERSION */
/* ************************************************************** */

/* *****************************************************************
          END OF  DRC-MACONNERIE Cascading Style Sheet
***************************************************************** */

