@charset "UTF-8";
/*!
Theme Name: mca
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: mca
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

mca is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Reset
# Fonts
# Typography
# Components
	- Header
	- Navigation
	- Footer
	- Projects Grid
	- Agence Page
	- Actualités Page
	- Single Project
--------------------------------------------------------------*/
/*--------------------------------------------------------------
# Variables & Mixins (load first, used by all components)
--------------------------------------------------------------*/
/**
 * Global Variables
 *
 * Centralized variables for colors, spacing, breakpoints, and layout.
 */
/*!
Theme Name: mca
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: mca
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

mca is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Reset
# Fonts
# Typography
# Components
	- Header
	- Navigation
	- Footer
	- Projects Grid
	- Agence Page
	- Actualités Page
	- Single Project
--------------------------------------------------------------*/
/*--------------------------------------------------------------
# Variables & Mixins (load first, used by all components)
--------------------------------------------------------------*/
/**
 * Global Mixins
 *
 * Reusable mixins for responsive patterns, animations, and common styles.
 */
/*--------------------------------------------------------------
# Reset
--------------------------------------------------------------*/
/**
 * Modern CSS Reset
 *
 * Based on Josh Comeau's CSS Reset and Andy Bell's Modern Reset.
 * Provides sensible defaults for cross-browser consistency.
 */
*,
*::before,
*::after {
  box-sizing: border-box;
}

* {
  margin: 0;
  padding: 0;
}

html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
}

body {
  min-height: 100vh;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

ul[role=list],
ol[role=list] {
  list-style: none;
}

h1,
h2,
h3,
h4,
h5,
h6,
button,
input,
label {
  line-height: 1.1;
}

h1,
h2,
h3,
h4 {
  text-wrap: balance;
}

p {
  text-wrap: pretty;
}

a:not([class]) {
  text-decoration-skip-ink: auto;
  color: currentColor;
}

img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
}

input,
button,
textarea,
select {
  font: inherit;
}

textarea:not([rows]) {
  min-height: 10em;
}

:target {
  scroll-margin-block: 5ex;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
/*--------------------------------------------------------------
# Fonts
--------------------------------------------------------------*/
/**
 * Font Face Declarations
 */
@font-face {
  font-family: "DejaVu Sans Condensed";
  src: url("fonts/DejaVuSansCondensed.woff2") format("woff2"), url("fonts/DejaVuSansCondensed.woff") format("woff");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "DejaVu Sans Condensed";
  src: url("fonts/DejaVuSansCondensed-Bold.woff2") format("woff2"), url("fonts/DejaVuSansCondensed-Bold.woff") format("woff");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
/**
 * Base Typography
 */
body {
  font-family: "DejaVu Sans Condensed", sans-serif;
}

h1,
h2,
h3,
h4,
h5,
h6,
strong,
b {
  font-weight: 700;
}

/*--------------------------------------------------------------
# Typography
--------------------------------------------------------------*/
/*!
Theme Name: mca
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: mca
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

mca is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Reset
# Fonts
# Typography
# Components
	- Header
	- Navigation
	- Footer
	- Projects Grid
	- Agence Page
	- Actualités Page
	- Single Project
--------------------------------------------------------------*/
/*--------------------------------------------------------------
# Variables & Mixins (load first, used by all components)
--------------------------------------------------------------*/
/**
 * Typography System
 *
 * Global typography styles scoped to .prose wrapper.
 * Use .prose class on any container with WYSIWYG/user content.
 */
.prose {
  font-size: 1rem;
  line-height: 1.8;
  color: #000;
}
@media screen and (min-width: 768px) {
  .prose {
    font-size: 1.125rem;
  }
}
@media screen and (min-width: 1600px) {
  .prose {
    font-size: 1.25rem;
  }
}
@media screen and (min-width: 1920px) {
  .prose {
    font-size: 1.375rem;
  }
}
.prose h1 {
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1.2;
}
@media screen and (min-width: 768px) {
  .prose h1 {
    font-size: 3rem;
  }
}
@media screen and (min-width: 1600px) {
  .prose h1 {
    font-size: 3.5rem;
  }
}
@media screen and (min-width: 1920px) {
  .prose h1 {
    font-size: 4rem;
  }
}
.prose h1 {
  margin: 0 0 1.5rem;
}
.prose h2 {
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.25;
}
@media screen and (min-width: 768px) {
  .prose h2 {
    font-size: 2.5rem;
  }
}
@media screen and (min-width: 1600px) {
  .prose h2 {
    font-size: 2.75rem;
  }
}
@media screen and (min-width: 1920px) {
  .prose h2 {
    font-size: 3rem;
  }
}
.prose h2 {
  margin: 2.5rem 0 1rem;
}
.prose h2:first-child {
  margin-top: 0;
}
.prose h3 {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.3;
  margin: 2rem 0 0.75rem;
}
@media screen and (min-width: 768px) {
  .prose h3 {
    font-size: 1.75rem;
  }
}
@media screen and (min-width: 1600px) {
  .prose h3 {
    font-size: 2rem;
  }
}
@media screen and (min-width: 1920px) {
  .prose h3 {
    font-size: 2.25rem;
  }
}
.prose h3:first-child {
  margin-top: 0;
}
.prose h4 {
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.35;
  margin: 1.5rem 0 0.5rem;
}
@media screen and (min-width: 768px) {
  .prose h4 {
    font-size: 1.5rem;
  }
}
@media screen and (min-width: 1600px) {
  .prose h4 {
    font-size: 1.75rem;
  }
}
@media screen and (min-width: 1920px) {
  .prose h4 {
    font-size: 2rem;
  }
}
.prose h4:first-child {
  margin-top: 0;
}
.prose h5 {
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.4;
  margin: 1.5rem 0 0.5rem;
}
@media screen and (min-width: 1600px) {
  .prose h5 {
    font-size: 1.25rem;
  }
}
@media screen and (min-width: 1920px) {
  .prose h5 {
    font-size: 1.375rem;
  }
}
.prose h5:first-child {
  margin-top: 0;
}
.prose h6 {
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.5;
  margin: 1.5rem 0 0.5rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
@media screen and (min-width: 1600px) {
  .prose h6 {
    font-size: 1.125rem;
  }
}
@media screen and (min-width: 1920px) {
  .prose h6 {
    font-size: 1.25rem;
  }
}
.prose h6:first-child {
  margin-top: 0;
}
.prose p {
  margin: 0 0 1.5rem;
}
.prose p:last-child {
  margin-bottom: 0;
}
.prose ul,
.prose ol {
  margin: 0 0 1.5rem;
  padding-left: 1.5rem;
}
.prose ul:last-child,
.prose ol:last-child {
  margin-bottom: 0;
}
.prose ul li,
.prose ol li {
  margin-bottom: 0.5rem;
  line-height: 1.6;
}
.prose ul li:last-child,
.prose ol li:last-child {
  margin-bottom: 0;
}
.prose ul ul,
.prose ul ol,
.prose ol ul,
.prose ol ol {
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
}
.prose ul {
  list-style-type: disc;
}
.prose ul ul {
  list-style-type: circle;
}
.prose ul ul ul {
  list-style-type: square;
}
.prose ol {
  list-style-type: decimal;
}
.prose ol ol {
  list-style-type: lower-alpha;
}
.prose ol ol ol {
  list-style-type: lower-roman;
}
.prose a {
  color: #000;
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: opacity 0.2s ease;
}
.prose a:hover {
  opacity: 0.6;
}
.prose a:visited {
  color: #000;
}
.prose blockquote {
  margin: 2rem 0;
  padding: 0 0 0 1.5rem;
  border-left: 3px solid #000;
  font-style: italic;
}
.prose blockquote:last-child {
  margin-bottom: 0;
}
.prose blockquote p {
  margin-bottom: 1rem;
}
.prose blockquote p:last-child {
  margin-bottom: 0;
}
.prose blockquote cite {
  display: block;
  margin-top: 0.5rem;
  font-size: 0.875rem;
  font-style: normal;
  color: #666;
}
.prose blockquote cite::before {
  content: "— ";
}
.prose strong,
.prose b {
  font-weight: 700;
}
.prose em,
.prose i {
  font-style: italic;
}
.prose small {
  font-size: 0.875rem;
}
.prose mark {
  background-color: #fff3cd;
  padding: 0.125rem 0.25rem;
}
.prose code {
  font-family: monospace;
  font-size: 0.875em;
  background-color: #f5f5f5;
  padding: 0.125rem 0.375rem;
  border-radius: 2px;
}
.prose pre {
  margin: 2rem 0;
  padding: 1rem;
  background-color: #f5f5f5;
  overflow-x: auto;
  font-family: monospace;
  font-size: 0.875rem;
  line-height: 1.5;
}
.prose pre:last-child {
  margin-bottom: 0;
}
.prose pre code {
  background: none;
  padding: 0;
}
.prose hr {
  margin: 2.5rem 0;
  border: none;
  border-top: 1px solid #e0e0e0;
}
.prose img {
  max-width: 100%;
  height: auto;
  margin: 2rem 0;
}
.prose img:first-child {
  margin-top: 0;
}
.prose img:last-child {
  margin-bottom: 0;
}
.prose figure {
  margin: 2rem 0;
}
.prose figure:first-child {
  margin-top: 0;
}
.prose figure:last-child {
  margin-bottom: 0;
}
.prose figure img {
  margin: 0;
}
.prose figure figcaption {
  margin-top: 0.75rem;
  font-size: 0.875rem;
  color: #666;
  text-align: center;
}
.prose table {
  width: 100%;
  margin: 2rem 0;
  border-collapse: collapse;
}
.prose table:last-child {
  margin-bottom: 0;
}
.prose th,
.prose td {
  padding: 0.75rem;
  text-align: left;
  border-bottom: 1px solid #e0e0e0;
}
.prose th {
  font-weight: 700;
  border-bottom-width: 2px;
}
.prose dl {
  margin: 0 0 1.5rem;
}
.prose dl:last-child {
  margin-bottom: 0;
}
.prose dt {
  font-weight: 700;
  margin-bottom: 0.25rem;
}
.prose dd {
  margin: 0 0 1rem 0;
  padding-left: 1rem;
}
.prose dd:last-child {
  margin-bottom: 0;
}

.prose--sm {
  font-size: 0.875rem;
}
@media screen and (min-width: 768px) {
  .prose--sm {
    font-size: 1rem;
  }
}
@media screen and (min-width: 1600px) {
  .prose--sm {
    font-size: 1.125rem;
  }
}
@media screen and (min-width: 1920px) {
  .prose--sm {
    font-size: 1.25rem;
  }
}

.prose--lg {
  font-size: 1.125rem;
}
@media screen and (min-width: 768px) {
  .prose--lg {
    font-size: 1.25rem;
  }
}
@media screen and (min-width: 1600px) {
  .prose--lg {
    font-size: 1.375rem;
  }
}
@media screen and (min-width: 1920px) {
  .prose--lg {
    font-size: 1.5rem;
  }
}

/*--------------------------------------------------------------
# Components
--------------------------------------------------------------*/
/*!
Theme Name: mca
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: mca
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

mca is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Reset
# Fonts
# Typography
# Components
	- Header
	- Navigation
	- Footer
	- Projects Grid
	- Agence Page
	- Actualités Page
	- Single Project
--------------------------------------------------------------*/
/*--------------------------------------------------------------
# Variables & Mixins (load first, used by all components)
--------------------------------------------------------------*/
/**
 * Site Header
 *
 * Styles for the main site header with branding and navigation.
 * Sticky header with background on scroll.
 */
.site-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.5rem;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1001;
  background-color: transparent;
  transition: background-color 0.3s ease, box-shadow 0.3s ease, padding 0.3s ease;
}
.admin-bar .site-header {
  top: 32px;
}
@media screen and (min-width: 768px) {
  .site-header {
    padding: 2rem;
  }
}
@media screen and (min-width: 1600px) {
  .site-header {
    padding: 2.5rem 3rem;
  }
}
@media screen and (min-width: 1920px) {
  .site-header {
    padding: 3rem 3.5rem;
  }
}
.site-header.is-scrolled {
  background-color: #fff;
  box-shadow: 0 2px 20px rgba(0, 0, 0, 0.08);
  padding: 1rem 1.5rem;
}
@media screen and (min-width: 768px) {
  .site-header.is-scrolled {
    padding: 1.25rem 2rem;
  }
}
@media screen and (min-width: 1600px) {
  .site-header.is-scrolled {
    padding: 1.5rem 3rem;
  }
}
@media screen and (min-width: 1920px) {
  .site-header.is-scrolled {
    padding: 1.75rem 3.5rem;
  }
}

body {
  padding-top: 70px;
}
@media screen and (min-width: 768px) {
  body {
    padding-top: 85px;
  }
}
@media screen and (min-width: 1600px) {
  body {
    padding-top: 100px;
  }
}
@media screen and (min-width: 1920px) {
  body {
    padding-top: 115px;
  }
}
body.admin-bar {
  padding-top: 70px;
}
@media screen and (min-width: 783px) {
  body.admin-bar {
    padding-top: calc(85px + 32px);
  }
}
@media screen and (min-width: 1600px) {
  body.admin-bar {
    padding-top: calc(100px + 32px);
  }
}
@media screen and (min-width: 1920px) {
  body.admin-bar {
    padding-top: calc(115px + 32px);
  }
}

.site-branding .custom-logo-link {
  display: block;
  line-height: 0;
  transition: opacity 0.2s ease;
}
.site-branding .custom-logo-link:hover {
  opacity: 0.6;
}
.site-branding .custom-logo {
  height: 1.75rem;
  width: auto;
}
@media screen and (min-width: 1600px) {
  .site-branding .custom-logo {
    height: 2rem;
  }
}
@media screen and (min-width: 1920px) {
  .site-branding .custom-logo {
    height: 2.25rem;
  }
}
.site-branding .site-title {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1;
}
@media screen and (min-width: 1600px) {
  .site-branding .site-title {
    font-size: 1.125rem;
  }
}
@media screen and (min-width: 1920px) {
  .site-branding .site-title {
    font-size: 1.25rem;
  }
}
.site-branding .site-title a {
  text-decoration: none;
  color: #000;
  transition: opacity 0.2s ease;
}
.site-branding .site-title a:hover {
  opacity: 0.6;
}
.site-branding .site-description {
  display: none;
}

/*!
Theme Name: mca
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: mca
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

mca is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Reset
# Fonts
# Typography
# Components
	- Header
	- Navigation
	- Footer
	- Projects Grid
	- Agence Page
	- Actualités Page
	- Single Project
--------------------------------------------------------------*/
/*--------------------------------------------------------------
# Variables & Mixins (load first, used by all components)
--------------------------------------------------------------*/
/**
 * Primary Navigation
 *
 * Desktop horizontal menu and mobile fullscreen overlay.
 */
body.menu-open {
  overflow: hidden;
}

.menu-hamburger {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 32px;
  height: 32px;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
  z-index: 100;
}
@media screen and (min-width: 768px) {
  .menu-hamburger {
    display: none;
  }
}
.menu-hamburger span {
  display: block;
  width: 100%;
  height: 2px;
  background-color: #000;
  transition: opacity 0.2s ease;
}
.menu-hamburger:hover span {
  opacity: 0.6;
}

.menu-close {
  position: absolute;
  top: 1.5rem;
  right: 1.5rem;
  width: 32px;
  height: 32px;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
  z-index: 10001;
}
@media screen and (min-width: 768px) {
  .menu-close {
    display: none;
  }
}
.menu-close::before, .menu-close::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 2px;
  background-color: #000;
  transition: opacity 0.2s ease;
}
.menu-close::before {
  transform: rotate(45deg);
}
.menu-close::after {
  transform: rotate(-45deg);
}
.menu-close:hover::before, .menu-close:hover::after {
  opacity: 0.6;
}

.main-navigation {
  display: flex;
  align-items: center;
}
@media screen and (min-width: 768px) {
  .main-navigation {
    position: relative;
    transform: none;
  }
}
@media screen and (max-width: 767px) {
  .main-navigation {
    position: fixed;
    top: 0;
    right: 0;
    width: 100vw;
    height: 100vh;
    background-color: #fff;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-end;
    padding: 2rem;
  }
}
.main-navigation ul {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 1.5rem;
}
@media screen and (max-width: 767px) {
  .main-navigation ul {
    flex-direction: column;
    align-items: flex-end;
    gap: 0;
  }
}
@media screen and (min-width: 1600px) {
  .main-navigation ul {
    gap: 2rem;
  }
}
@media screen and (min-width: 1920px) {
  .main-navigation ul {
    gap: 2.5rem;
  }
}
.main-navigation li {
  margin: 0;
  padding: 0;
}
@media screen and (max-width: 767px) {
  .main-navigation li {
    transform: translateX(50px);
    opacity: 0;
    margin-bottom: 1.5rem;
  }
  .main-navigation li:last-child {
    margin-bottom: 0;
  }
}
.main-navigation a {
  display: block;
  font-size: 0.875rem;
  text-decoration: none;
  color: #000;
  transition: opacity 0.2s ease;
  text-transform: uppercase;
}
.main-navigation a:hover, .main-navigation a:focus {
  opacity: 0.6;
}
.main-navigation a:visited {
  color: #000;
}
@media screen and (max-width: 767px) {
  .main-navigation a {
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: 0.05em;
  }
}
@media screen and (min-width: 1600px) {
  .main-navigation a {
    font-size: 1rem;
  }
}
@media screen and (min-width: 1920px) {
  .main-navigation a {
    font-size: 1.125rem;
  }
}
.main-navigation .current-menu-item > a,
.main-navigation .current_page_item > a {
  font-weight: 700;
}

/*!
Theme Name: mca
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: mca
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

mca is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Reset
# Fonts
# Typography
# Components
	- Header
	- Navigation
	- Footer
	- Projects Grid
	- Agence Page
	- Actualités Page
	- Single Project
--------------------------------------------------------------*/
/*--------------------------------------------------------------
# Variables & Mixins (load first, used by all components)
--------------------------------------------------------------*/
/**
 * Site Footer
 *
 * Styles for the main site footer.
 */
.site-footer {
  padding: 1.5rem;
  border-top: 1px solid #000;
}
@media screen and (min-width: 768px) {
  .site-footer {
    padding: 2rem;
  }
}
@media screen and (min-width: 1600px) {
  .site-footer {
    padding: 2.5rem 3rem;
  }
}
@media screen and (min-width: 1920px) {
  .site-footer {
    padding: 3rem 3.5rem;
  }
}
.site-footer .site-info {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}
.site-footer__copyright {
  margin: 0;
  font-size: 0.75rem;
  color: #666;
}
@media screen and (min-width: 1600px) {
  .site-footer__copyright {
    font-size: 0.875rem;
  }
}
@media screen and (min-width: 1920px) {
  .site-footer__copyright {
    font-size: 1rem;
  }
}

.social-links {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.social-links__link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  background-color: #000;
  color: #fff;
  border-radius: 4px;
  transition: opacity 0.2s ease;
}
.social-links__link:hover, .social-links__link:focus {
  opacity: 0.7;
}
.social-links__link:focus {
  outline: 2px solid #000;
  outline-offset: 2px;
}
.social-links__icon {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}

/*!
Theme Name: mca
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: mca
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

mca is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Reset
# Fonts
# Typography
# Components
	- Header
	- Navigation
	- Footer
	- Projects Grid
	- Agence Page
	- Actualités Page
	- Single Project
--------------------------------------------------------------*/
/*--------------------------------------------------------------
# Variables & Mixins (load first, used by all components)
--------------------------------------------------------------*/
/**
 * Projects Grid
 *
 * Styles for the homepage projects grid layout.
 * Portrait-oriented cards with permanent overlay.
 */
.projects-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  padding: 1.5rem 1.5rem;
  max-width: 1400px;
  margin: 0 auto;
}
@media screen and (min-width: 600px) {
  .projects-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (min-width: 768px) {
  .projects-grid {
    gap: 2rem;
    padding: 1.5rem 2rem;
  }
}
@media screen and (min-width: 1024px) {
  .projects-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 3rem;
    padding: 1.5rem 3rem;
  }
}
@media screen and (min-width: 1600px) {
  .projects-grid {
    max-width: 1600px;
    gap: 3.5rem;
    padding: 1.5rem 3rem;
  }
}
@media screen and (min-width: 1920px) {
  .projects-grid {
    max-width: 1800px;
    gap: 4rem;
    padding: 3.5rem;
  }
}
@media screen and (min-width: 2560px) {
  .projects-grid {
    max-width: 2200px;
    grid-template-columns: repeat(4, 1fr);
    gap: 5rem;
    padding: 1.5rem 5rem;
  }
}
.projects-grid__empty {
  grid-column: 1/-1;
  text-align: center;
  padding: 3rem;
  color: #666;
}

.project-card {
  margin: 0;
  padding: 0;
  list-style: none;
}
.project-card__link {
  display: block;
  text-decoration: none;
  color: inherit;
}
.project-card__link:visited {
  color: inherit;
}
.project-card__image-wrapper {
  position: relative;
  aspect-ratio: 0.75;
  max-height: 70vh;
  overflow: hidden;
  background-color: #f0f0f0;
}
.project-card__image-wrapper:hover .project-card__image {
  transform: scale(1.05);
}
.project-card__image-wrapper:hover .project-card__overlay {
  opacity: 1;
}
.project-card__image-wrapper:hover .project-card__title,
.project-card__image-wrapper:hover .project-card__lieu {
  transform: translateY(0);
  opacity: 1;
}
.project-card__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.project-card__overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 1.5rem;
  background: rgba(255, 255, 255, 0.5);
  color: #000;
  text-align: center;
  opacity: 0;
  transition: opacity 0.3s ease;
}
.project-card__title {
  margin: 0 0 0.25rem;
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.3;
  transform: translateY(1rem);
  opacity: 0;
  transition: transform 0.3s ease, opacity 0.3s ease;
}
@media screen and (min-width: 1024px) {
  .project-card__title {
    font-size: 1.5rem;
  }
}
@media screen and (min-width: 1920px) {
  .project-card__title {
    font-size: 1.75rem;
  }
}
.project-card__lieu {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 400;
  transform: translateY(1rem);
  opacity: 0;
  transition: transform 0.3s ease 0.05s, opacity 0.3s ease 0.05s;
}
@media screen and (min-width: 1024px) {
  .project-card__lieu {
    font-size: 1rem;
  }
}
@media screen and (min-width: 1920px) {
  .project-card__lieu {
    font-size: 1.125rem;
  }
}
.project-card__placeholder {
  position: relative;
  aspect-ratio: 0.75;
  max-height: 70vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 1.5rem;
  border: 1px solid #e0e0e0;
  transition: border-color 0.3s ease;
}
.project-card__placeholder .project-card__title,
.project-card__placeholder .project-card__lieu {
  transform: none;
  opacity: 1;
}
.project-card__placeholder .project-card__title {
  transition: letter-spacing 0.4s ease;
}
.project-card__placeholder::before, .project-card__placeholder::after {
  content: "";
  position: absolute;
  background: #000;
  transition: transform 0.4s ease;
}
.project-card__placeholder::before {
  top: -1px;
  left: 0;
  width: 100%;
  height: 1px;
  transform: scaleX(0);
  transform-origin: left;
}
.project-card__placeholder::after {
  bottom: -1px;
  right: 0;
  width: 100%;
  height: 1px;
  transform: scaleX(0);
  transform-origin: right;
}
.project-card--no-image .project-card__link:hover .project-card__placeholder {
  border-color: transparent;
}
.project-card--no-image .project-card__link:hover .project-card__placeholder::before, .project-card--no-image .project-card__link:hover .project-card__placeholder::after {
  transform: scaleX(1);
}
.project-card--no-image .project-card__link:hover .project-card__placeholder .project-card__title {
  letter-spacing: 0.05em;
}

/*!
Theme Name: mca
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: mca
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

mca is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Reset
# Fonts
# Typography
# Components
	- Header
	- Navigation
	- Footer
	- Projects Grid
	- Agence Page
	- Actualités Page
	- Single Project
--------------------------------------------------------------*/
/*--------------------------------------------------------------
# Variables & Mixins (load first, used by all components)
--------------------------------------------------------------*/
/**
 * Agence Page
 *
 * Two-column layout: text content (left), sticky map (right).
 * Typography handled by global .prose class in _typography.scss
 */
.agence-layout {
  display: grid;
  grid-template-columns: 1fr;
}
@media screen and (min-width: 1024px) {
  .agence-layout {
    grid-template-columns: 55% 45%;
    gap: 0;
    min-height: 100vh;
  }
}
@media screen and (min-width: 1600px) {
  .agence-layout {
    grid-template-columns: 58% 42%;
  }
}
.agence-layout__content {
  padding: 1.5rem;
}
@media screen and (min-width: 1024px) {
  .agence-layout__content {
    padding: 2rem;
    padding-left: max(2rem, (100vw - 1400px) * 0.5 + 2rem);
  }
}
@media screen and (min-width: 1600px) {
  .agence-layout__content {
    padding: 3rem;
    padding-left: max(3rem, (100vw - 1600px) * 0.5 + 3rem);
  }
}
@media screen and (min-width: 1920px) {
  .agence-layout__content {
    padding-left: max(3rem, (100vw - 1800px) * 0.5 + 3rem);
  }
}
.agence-layout__map {
  height: 350px;
  border-top: 1px solid #000;
  border-bottom: 1px solid #000;
}
@media screen and (min-width: 768px) {
  .agence-layout__map {
    height: 450px;
  }
}
@media screen and (min-width: 1024px) {
  .agence-layout__map {
    position: sticky;
    top: 0;
    height: 100vh;
    border-top: none;
    border-bottom: none;
    border-left: 1px solid #000;
  }
}

.agence-page .page-title {
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1.2;
}
@media screen and (min-width: 768px) {
  .agence-page .page-title {
    font-size: 3rem;
  }
}
@media screen and (min-width: 1600px) {
  .agence-page .page-title {
    font-size: 3.5rem;
  }
}
@media screen and (min-width: 1920px) {
  .agence-page .page-title {
    font-size: 4rem;
  }
}
.agence-page .page-title {
  padding-bottom: 2rem;
  opacity: 0;
  transform: translateY(30px);
}

.agence-prose {
  margin-bottom: 3rem;
}
@media screen and (min-width: 1600px) {
  .agence-prose {
    margin-bottom: 4rem;
  }
}
.agence-prose__content {
  font-size: 0.8125rem;
  line-height: 1.6;
}
@media screen and (min-width: 1600px) {
  .agence-prose__content {
    font-size: 0.875rem;
  }
}
@media screen and (min-width: 1920px) {
  .agence-prose__content {
    font-size: 1rem;
  }
}
.agence-prose__content h2,
.agence-prose__content h3 {
  font-size: 1.25rem;
  line-height: 1.2;
}
@media screen and (min-width: 1024px) {
  .agence-prose__content h2,
  .agence-prose__content h3 {
    font-size: 1.4rem;
  }
}
@media screen and (min-width: 1600px) {
  .agence-prose__content h2,
  .agence-prose__content h3 {
    font-size: 1.6rem;
  }
}
@media screen and (min-width: 1920px) {
  .agence-prose__content h2,
  .agence-prose__content h3 {
    font-size: 1.8rem;
  }
}
.agence-prose .agence-prose__content > *:not(.page-title) {
  opacity: 0;
  transform: translateY(20px);
}

.agence-map {
  width: 100%;
  height: 100%;
  opacity: 0;
}
.agence-map__container {
  position: relative;
  width: 100%;
  height: 100%;
}

.map-touch-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.5);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease, visibility 0.2s ease;
  z-index: 1000;
  pointer-events: none;
}
.map-touch-overlay--visible {
  opacity: 1;
  visibility: visible;
}
.map-touch-overlay__text {
  padding: 0.75rem 1.25rem;
  background: #fff;
  color: #000;
  font-size: 0.875rem;
  font-weight: 600;
  text-align: center;
  max-width: 80%;
}
@media screen and (min-width: 768px) {
  .map-touch-overlay__text {
    font-size: 1rem;
    padding: 1rem 1.5rem;
  }
}

.leaflet-popup-content-wrapper {
  border-radius: 0 !important;
  border: 1px solid #000;
  box-shadow: 4px 4px 0 rgba(0, 0, 0, 0.1);
  padding: 0;
}
@media screen and (min-width: 1600px) {
  .leaflet-popup-content-wrapper {
    box-shadow: 6px 6px 0 rgba(0, 0, 0, 0.1);
  }
}

.leaflet-popup-content {
  margin: 0;
  width: 240px !important;
}
@media screen and (min-width: 1600px) {
  .leaflet-popup-content {
    width: 280px !important;
  }
}
@media screen and (min-width: 1920px) {
  .leaflet-popup-content {
    width: 320px !important;
  }
}

.leaflet-popup-tip-container {
  margin-top: -1px;
}

.leaflet-popup-tip {
  border: 1px solid #000;
  border-top: none;
  border-right: none;
  box-shadow: none;
  background: #fff;
}

.leaflet-popup-close-button {
  top: 0.5rem !important;
  right: 0.5rem !important;
  width: 1.5rem !important;
  height: 1.5rem !important;
  font-size: 1.25rem !important;
  line-height: 1.5rem !important;
  color: #000 !important;
  font-weight: 400;
  transition: opacity 0.2s ease;
}
@media screen and (min-width: 1600px) {
  .leaflet-popup-close-button {
    top: 0.75rem !important;
    right: 0.75rem !important;
  }
}
.leaflet-popup-close-button:hover {
  color: #000 !important;
  opacity: 0.6;
}

.map-popup {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  padding: 1.25rem 1.5rem;
}
@media screen and (min-width: 1600px) {
  .map-popup {
    gap: 0.5rem;
    padding: 1.5rem 1.75rem;
  }
}
@media screen and (min-width: 1920px) {
  .map-popup {
    padding: 1.75rem 2rem;
  }
}
.map-popup__title {
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.3;
  margin: 0;
  padding-right: 1rem;
}
@media screen and (min-width: 1600px) {
  .map-popup__title {
    font-size: 1.125rem;
  }
}
@media screen and (min-width: 1920px) {
  .map-popup__title {
    font-size: 1.25rem;
  }
}
.map-popup__lieu {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #666;
}
@media screen and (min-width: 1600px) {
  .map-popup__lieu {
    font-size: 0.8125rem;
  }
}
@media screen and (min-width: 1920px) {
  .map-popup__lieu {
    font-size: 0.875rem;
  }
}
.map-popup__lieu {
  margin: 0;
}
.map-popup__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  align-self: flex-start;
  margin-top: 0.75rem;
  padding: 0.6rem 1rem;
  font-size: 0.75rem !important;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #fff !important;
  background: #000;
  text-decoration: none !important;
  border: 2px solid transparent;
  transition: background-color 0.3s ease, color 0.3s ease;
}
@media screen and (min-width: 1600px) {
  .map-popup__link {
    font-size: 0.8125rem !important;
    padding: 0.7rem 1.125rem;
    margin-top: 1rem;
  }
}
@media screen and (min-width: 1920px) {
  .map-popup__link {
    font-size: 0.875rem !important;
    padding: 0.8rem 1.25rem;
  }
}
.map-popup__link::before, .map-popup__link::after {
  content: "";
  position: absolute;
  width: 0;
  height: 0;
  border: 2px solid transparent;
  box-sizing: border-box;
  pointer-events: none;
}
.map-popup__link::before {
  top: -2px;
  left: -2px;
  border-top-color: transparent;
  border-right-color: transparent;
  transition: width 0.2s ease, height 0.2s ease 0.2s, border-color 0s ease 0.4s;
}
.map-popup__link::after {
  bottom: -2px;
  right: -2px;
  border-bottom-color: transparent;
  border-left-color: transparent;
  transition: width 0.2s ease, height 0.2s ease 0.2s, border-color 0s ease 0.4s;
}
.map-popup__link:hover {
  background: #fff;
  color: #000 !important;
}
.map-popup__link:hover::before {
  width: calc(100% + 4px);
  height: calc(100% + 4px);
  border-top-color: #000;
  border-right-color: #000;
  transition: width 0.2s ease, height 0.2s ease 0.2s;
}
.map-popup__link:hover::after {
  width: calc(100% + 4px);
  height: calc(100% + 4px);
  border-bottom-color: #000;
  border-left-color: #000;
  transition: width 0.2s ease, height 0.2s ease 0.2s;
}
.map-popup__link:focus {
  outline: 2px solid #000;
  outline-offset: 2px;
}
.map-popup__link:focus:not(:focus-visible) {
  outline: none;
}
.map-popup__link:focus-visible {
  outline: 2px solid #000;
  outline-offset: 2px;
}

.mca-cluster-icon {
  background: #000;
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
}
.mca-cluster-icon span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  color: #fff;
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1;
}

.agence-team {
  padding-top: 2rem;
  padding-bottom: 3rem;
}
@media screen and (min-width: 1600px) {
  .agence-team {
    padding-top: 3rem;
    padding-bottom: 4rem;
  }
}
.agence-team h2 {
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.2;
  margin: 0 0 1.5rem;
  opacity: 0;
  transform: translateY(20px);
}
@media screen and (min-width: 1024px) {
  .agence-team h2 {
    font-size: 1.4rem;
  }
}
@media screen and (min-width: 1600px) {
  .agence-team h2 {
    font-size: 1.6rem;
  }
}
@media screen and (min-width: 1920px) {
  .agence-team h2 {
    font-size: 1.8rem;
  }
}
.agence-team__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.agence-team__member {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.5rem;
  padding: 0.875rem 0;
  border-bottom: 1px solid #e0e0e0;
  opacity: 0;
  transform: translateX(-20px);
}
.agence-team__member:first-child {
  border-top: 1px solid #e0e0e0;
}
.agence-team__name {
  font-size: 0.8125rem;
  font-weight: 700;
}
@media screen and (min-width: 768px) {
  .agence-team__name {
    font-size: 0.875rem;
  }
}
@media screen and (min-width: 1600px) {
  .agence-team__name {
    font-size: 1rem;
  }
}
.agence-team__role {
  font-size: 0.75rem;
  color: #666;
}
@media screen and (min-width: 768px) {
  .agence-team__role {
    font-size: 0.8125rem;
  }
}
@media screen and (min-width: 1600px) {
  .agence-team__role {
    font-size: 0.875rem;
  }
}
.agence-team__role::before {
  content: "—";
  margin-right: 0.5rem;
}

/*!
Theme Name: mca
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: mca
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

mca is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Reset
# Fonts
# Typography
# Components
	- Header
	- Navigation
	- Footer
	- Projects Grid
	- Agence Page
	- Actualités Page
	- Single Project
--------------------------------------------------------------*/
/*--------------------------------------------------------------
# Variables & Mixins (load first, used by all components)
--------------------------------------------------------------*/
/**
 * Agence Contact Section
 *
 * Minimal contact section with black border-top separator.
 */
@media screen and (min-width: 1600px) {
  .agence-contact {
    padding-top: 3rem;
  }
}
.agence-contact__wrapper {
  position: relative;
}
.agence-contact h2 {
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.2;
  margin: 0 0 1.5rem;
  opacity: 0;
  transform: translateY(20px);
}
@media screen and (min-width: 1024px) {
  .agence-contact h2 {
    font-size: 1.4rem;
  }
}
@media screen and (min-width: 1600px) {
  .agence-contact h2 {
    font-size: 1.6rem;
  }
}
@media screen and (min-width: 1920px) {
  .agence-contact h2 {
    font-size: 1.8rem;
  }
}
.agence-contact__nom {
  font-size: 0.875rem;
  font-weight: 700;
  opacity: 0;
  transform: translateY(20px);
}
@media screen and (min-width: 1600px) {
  .agence-contact__nom {
    font-size: 1rem;
  }
}
@media screen and (min-width: 1920px) {
  .agence-contact__nom {
    font-size: 1.125rem;
  }
}
.agence-contact__email {
  margin: 1rem 0 1rem;
  opacity: 0;
  transform: scale(0.9);
}
.agence-contact__email a {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.8rem 1.25rem;
  font-size: 0.8125rem;
  font-weight: 700;
  text-decoration: none;
  background: transparent;
  color: #000;
  border: 1px solid #000;
  transition: background-color 0.2s ease, color 0.2s ease;
}
@media screen and (min-width: 1600px) {
  .agence-contact__email a {
    padding: 1rem 1.5rem;
    font-size: 0.875rem;
  }
}
@media screen and (min-width: 1920px) {
  .agence-contact__email a {
    padding: 1.125rem 1.75rem;
    font-size: 1rem;
  }
}
.agence-contact__email a:hover {
  background-color: #000;
  color: #fff;
}
.agence-contact__email a:visited {
  color: #000;
}
.agence-contact__email a:visited:hover {
  color: #fff;
}
.agence-contact__adresse {
  margin: 0;
  font-style: normal;
  opacity: 0;
  transform: translateY(20px);
}
.agence-contact__adresse p {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.6;
}
@media screen and (min-width: 1600px) {
  .agence-contact__adresse p {
    font-size: 0.875rem;
  }
}
@media screen and (min-width: 1920px) {
  .agence-contact__adresse p {
    font-size: 1rem;
  }
}

/*!
Theme Name: mca
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: mca
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

mca is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Reset
# Fonts
# Typography
# Components
	- Header
	- Navigation
	- Footer
	- Projects Grid
	- Agence Page
	- Actualités Page
	- Single Project
--------------------------------------------------------------*/
/*--------------------------------------------------------------
# Variables & Mixins (load first, used by all components)
--------------------------------------------------------------*/
/**
 * Actualités Page
 *
 * Styles for the news listing page.
 * Two-column layout: content (60%) left, gallery (40%) right.
 */
.actualites-header {
  max-width: 1400px;
  margin: 0 auto;
}
@media screen and (min-width: 1600px) {
  .actualites-header {
    max-width: 1600px;
  }
}
@media screen and (min-width: 1920px) {
  .actualites-header {
    max-width: 1800px;
  }
}
.actualites-header {
  padding: 3rem 1.5rem;
}
@media screen and (min-width: 768px) {
  .actualites-header {
    padding: 4rem 2rem;
  }
}
@media screen and (min-width: 1600px) {
  .actualites-header {
    padding: 5rem 3rem;
  }
}
.actualites-header__title {
  margin: 0;
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1.2;
}
@media screen and (min-width: 768px) {
  .actualites-header__title {
    font-size: 3rem;
  }
}
@media screen and (min-width: 1600px) {
  .actualites-header__title {
    font-size: 3.5rem;
  }
}
@media screen and (min-width: 1920px) {
  .actualites-header__title {
    font-size: 4rem;
  }
}
.actualites-header__title {
  opacity: 0;
  transform: translateY(20px);
}

.actualites-list {
  opacity: 0;
  animation: fadeIn 0.3s ease forwards;
  animation-delay: 0.1s;
}

@keyframes fadeIn {
  to {
    opacity: 1;
  }
}
.actualites-list {
  max-width: 1400px;
  margin: 0 auto;
}
@media screen and (min-width: 1600px) {
  .actualites-list {
    max-width: 1600px;
  }
}
@media screen and (min-width: 1920px) {
  .actualites-list {
    max-width: 1800px;
  }
}
.actualites-list__empty {
  padding: 2rem;
  text-align: center;
  color: #666;
}

.actualite-item {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  padding: 3rem 1.5rem;
  border-top: 1px solid #000;
}
.actualite-item .actualite-item__date,
.actualite-item .actualite-item__text,
.actualite-item .actualite-item__footer {
  opacity: 0;
  transform: translateY(20px);
}
.actualite-item .actualite-item__gallery-item {
  opacity: 0;
  transform: scale(1.05);
}
@media screen and (min-width: 1024px) {
  .actualite-item {
    grid-template-columns: 45% 50%;
    gap: 3rem;
    padding: 4rem 2rem;
  }
}
@media screen and (min-width: 1600px) {
  .actualite-item {
    gap: 4rem;
    padding: 5rem 3rem;
  }
}
@media screen and (min-width: 1920px) {
  .actualite-item {
    gap: 5rem;
    padding: 6rem 3rem;
  }
}
.actualite-item--first {
  border-top: none;
  padding-top: 0;
}
.actualite-item__content {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
@media screen and (min-width: 1024px) {
  .actualite-item__content {
    order: 2;
  }
}
.actualite-item__date {
  display: block;
  font-size: 0.6875rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #666;
  font-weight: 400;
}
@media screen and (min-width: 1600px) {
  .actualite-item__date {
    font-size: 0.75rem;
  }
}
@media screen and (min-width: 1920px) {
  .actualite-item__date {
    font-size: 0.8125rem;
  }
}
.actualite-item__text {
  flex: 1;
  font-size: 0.8125rem;
  line-height: 1.6;
}
@media screen and (min-width: 1600px) {
  .actualite-item__text {
    font-size: 0.875rem;
  }
}
@media screen and (min-width: 1920px) {
  .actualite-item__text {
    font-size: 1rem;
  }
}
.actualite-item__footer {
  margin-top: auto;
  padding-top: 1rem;
  text-align: end;
}
.actualite-item__project-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.8rem 1.25rem;
  font-size: 0.8125rem;
  font-weight: 700;
  text-decoration: none;
  background: transparent;
  color: #000;
  border: 1px solid #000;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease;
}
@media screen and (min-width: 1600px) {
  .actualite-item__project-link {
    padding: 1rem 1.5rem;
    font-size: 0.875rem;
  }
}
@media screen and (min-width: 1920px) {
  .actualite-item__project-link {
    padding: 1.125rem 1.75rem;
    font-size: 1rem;
  }
}
.actualite-item__project-link:hover {
  background-color: #000;
  color: #fff;
}
.actualite-item__project-link:visited {
  color: #000;
}
.actualite-item__project-link:visited:hover {
  color: #fff;
}
.actualite-item__gallery {
  order: -1;
}
@media screen and (min-width: 1024px) {
  .actualite-item__gallery {
    order: 0;
  }
}
.actualite-item__gallery-grid {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.actualite-item__gallery-item {
  margin: 0;
}
.actualite-item__gallery-item a {
  display: block;
}
.actualite-item__gallery-item img {
  width: 100%;
  height: auto;
  display: block;
}
.actualite-item__gallery-item--full {
  width: 100%;
}
.actualite-item__gallery-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.5rem;
}
@media screen and (min-width: 768px) {
  .actualite-item__gallery-row {
    grid-template-columns: 1fr 1fr;
  }
}
.actualite-item__gallery-item--half img {
  width: 100%;
  height: auto;
  display: block;
}

.actualite-single__navigation {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.5rem;
  position: relative;
}
.actualite-single__navigation::before {
  content: "";
  position: absolute;
  background-color: #000;
  left: 0;
  top: 0;
  width: 0;
  height: 1px;
  width: 100%;
}
@media screen and (min-width: 1024px) {
  .actualite-single__navigation {
    padding: 2rem;
  }
}
@media screen and (min-width: 1600px) {
  .actualite-single__navigation {
    padding: 3rem;
  }
}

.actualite-single__nav-link {
  text-decoration: none;
  color: #000;
  font-size: 0.6875rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  transition: opacity 0.2s ease;
}
.actualite-single__nav-link:hover {
  opacity: 0.6;
}
.actualite-single__nav-link--prev {
  margin-right: auto;
}
.actualite-single__nav-link--all {
  text-align: center;
}
.actualite-single__nav-link--next {
  margin-left: auto;
  text-align: right;
}
@media screen and (min-width: 1600px) {
  .actualite-single__nav-link {
    font-size: 0.75rem;
  }
}
@media screen and (min-width: 1920px) {
  .actualite-single__nav-link {
    font-size: 0.8125rem;
  }
}

/*!
Theme Name: mca
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: mca
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

mca is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Reset
# Fonts
# Typography
# Components
	- Header
	- Navigation
	- Footer
	- Projects Grid
	- Agence Page
	- Actualités Page
	- Single Project
--------------------------------------------------------------*/
/*--------------------------------------------------------------
# Variables & Mixins (load first, used by all components)
--------------------------------------------------------------*/
/**
 * Single Project Page
 *
 * Two-column layout: gallery (60%) left, sticky info sidebar (40%) right.
 */
.projet-single {
  max-width: 1400px;
  margin: 0 auto;
}
@media screen and (min-width: 1600px) {
  .projet-single {
    max-width: 1600px;
  }
}
@media screen and (min-width: 1920px) {
  .projet-single {
    max-width: 1800px;
  }
}
.projet-single__layout {
  display: grid;
  grid-template-columns: 1fr;
  padding: 1.5rem;
}
@media screen and (min-width: 1024px) {
  .projet-single__layout {
    grid-template-columns: 55% 45%;
    gap: 0;
    padding: 0;
    min-height: 100vh;
  }
}
@media screen and (min-width: 1600px) {
  .projet-single__layout {
    grid-template-columns: 58% 42%;
  }
}
@media screen and (min-width: 1024px) {
  .projet-single__layout--no-gallery {
    grid-template-columns: 1fr;
    min-height: auto;
  }
}
@media screen and (min-width: 1600px) {
  .projet-single__layout--no-gallery {
    grid-template-columns: 1fr;
  }
}
@media screen and (min-width: 1024px) {
  .projet-single__layout--no-gallery .projet-single__info {
    position: static;
    height: auto;
    max-width: 800px;
  }
  .projet-single__layout--no-gallery .projet-single__info::before {
    display: none;
  }
}
.projet-single__gallery {
  order: 2;
}
@media screen and (min-width: 1024px) {
  .projet-single__gallery {
    order: 1;
    padding: 3rem;
  }
}
@media screen and (min-width: 1600px) {
  .projet-single__gallery {
    padding: 3.5rem;
  }
}
@media screen and (min-width: 1024px) {
  .projet-single__gallery-grid {
    display: flex;
    flex-direction: column;
    gap: 1rem;
  }
}
@media screen and (min-width: 1600px) {
  .projet-single__gallery-grid {
    gap: 1.5rem;
  }
}
.projet-single__gallery-item {
  margin: 0;
  opacity: 0;
  transform: scale(1.02);
}
@media screen and (max-width: 1023px) {
  .projet-single__gallery-item {
    margin-top: 1rem;
  }
}
.projet-single__gallery-item a {
  display: block;
}
.projet-single__gallery-item img {
  width: 100%;
  height: auto;
  display: block;
}
.projet-single__gallery-item--full {
  width: 100%;
}
.projet-single__gallery-row {
  display: block;
}
@media screen and (min-width: 1024px) {
  .projet-single__gallery-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
  }
}
@media screen and (min-width: 1600px) {
  .projet-single__gallery-row {
    gap: 1.5rem;
  }
}
.projet-single__gallery-item--half a {
  height: 100%;
}
.projet-single__gallery-item--half img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.projet-single__info {
  order: 1;
  position: relative;
}
@media screen and (min-width: 1024px) {
  .projet-single__info {
    order: 2;
    position: sticky;
    top: 0;
    height: 100vh;
    overflow-y: auto;
    align-self: start;
    padding: 2rem;
    padding-bottom: 9rem;
    margin-top: 0;
    scrollbar-width: thin;
    scrollbar-color: transparent transparent;
  }
  .projet-single__info--scrolled {
    top: 6.5rem;
    height: calc(100vh - 9rem);
  }
  .projet-single__info:hover {
    scrollbar-color: rgba(102, 102, 102, 0.4) transparent;
  }
  .projet-single__info::-webkit-scrollbar {
    width: 4px;
  }
  .projet-single__info::-webkit-scrollbar-track {
    background: transparent;
  }
  .projet-single__info::-webkit-scrollbar-thumb {
    background-color: transparent;
    border-radius: 2px;
  }
  .projet-single__info:hover::-webkit-scrollbar-thumb {
    background-color: rgba(102, 102, 102, 0.4);
  }
  .projet-single__info::before {
    content: "";
    position: absolute;
    background-color: #000;
    left: 0;
    top: 0;
    width: 1px;
    height: 0;
  }
  .projet-single__info::after {
    content: "";
    position: sticky;
    bottom: -7rem;
    left: 0;
    display: block;
    width: 100%;
    height: 4rem;
    background: linear-gradient(to top, #fff, transparent);
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.3s ease;
  }
  .projet-single__info--can-scroll::after {
    opacity: 1;
  }
}
@media screen and (min-width: 1600px) {
  .projet-single__info {
    padding: 2rem 3rem;
    padding-bottom: 4rem;
  }
}
.projet-single__title {
  margin: 0 0 2rem;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.2;
  text-transform: uppercase;
  opacity: 0;
  transform: translateY(20px);
}
@media screen and (min-width: 1024px) {
  .projet-single__title {
    font-size: 1.4rem;
  }
}
@media screen and (min-width: 1600px) {
  .projet-single__title {
    font-size: 1.6rem;
    margin-bottom: 2.5rem;
  }
}
@media screen and (min-width: 1920px) {
  .projet-single__title {
    font-size: 1.8rem;
    margin-bottom: 3rem;
  }
}
.projet-single__meta {
  margin-bottom: 1.5rem;
}
@media screen and (min-width: 1600px) {
  .projet-single__meta {
    margin-bottom: 2rem;
  }
}
.projet-single__meta-item {
  margin-bottom: 0.5rem;
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  opacity: 0;
  transform: translateX(-15px);
}
.projet-single__meta-item:last-child {
  margin-bottom: 0;
}
@media screen and (min-width: 1600px) {
  .projet-single__meta-item {
    margin-bottom: 0.75rem;
  }
}
.projet-single__meta-label {
  display: block;
  font-size: 0.6875rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #666;
  min-width: 7.5rem;
}
@media screen and (min-width: 1600px) {
  .projet-single__meta-label {
    font-size: 0.75rem;
  }
}
@media screen and (min-width: 1920px) {
  .projet-single__meta-label {
    font-size: 0.8125rem;
  }
}
.projet-single__meta-value {
  display: block;
  font-size: 0.8125rem;
  line-height: 1.25;
  margin-top: -1px;
}
@media screen and (min-width: 1600px) {
  .projet-single__meta-value {
    font-size: 0.875rem;
  }
}
@media screen and (min-width: 1920px) {
  .projet-single__meta-value {
    font-size: 1rem;
  }
}
.projet-single__specificites {
  margin-bottom: 1rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid #e0e0e0;
  opacity: 0;
  transform: translateY(15px);
}
@media screen and (min-width: 1600px) {
  .projet-single__specificites {
    margin-bottom: 1.5rem;
    padding-bottom: 2rem;
  }
}
.projet-single__specificites-title {
  font-size: 0.6875rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #666;
  margin: 0 0 0.75rem;
  font-weight: 400;
}
@media screen and (min-width: 1600px) {
  .projet-single__specificites-title {
    font-size: 0.75rem;
    margin-bottom: 1rem;
  }
}
@media screen and (min-width: 1920px) {
  .projet-single__specificites-title {
    font-size: 0.8125rem;
  }
}
.projet-single__specificites-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.projet-single__specificites-item {
  font-size: 0.8125rem;
  line-height: 1.6;
  margin-bottom: 0.25rem;
}
@media screen and (min-width: 1600px) {
  .projet-single__specificites-item {
    font-size: 0.875rem;
  }
}
@media screen and (min-width: 1920px) {
  .projet-single__specificites-item {
    font-size: 1rem;
  }
}
.projet-single__specificites-item::before {
  content: "— ";
  color: #666;
}
.projet-single__description {
  font-size: 0.8125rem;
  line-height: 1.6;
  opacity: 0;
  transform: translateY(15px);
}
@media screen and (min-width: 1600px) {
  .projet-single__description {
    font-size: 0.875rem;
  }
}
@media screen and (min-width: 1920px) {
  .projet-single__description {
    font-size: 1rem;
  }
}
.projet-single__chantier {
  padding: 1.5rem;
  position: relative;
  opacity: 0;
  transform: translateY(30px);
}
@media screen and (min-width: 1024px) {
  .projet-single__chantier {
    padding: 2rem;
  }
}
@media screen and (min-width: 1600px) {
  .projet-single__chantier {
    padding: 3rem;
  }
}
.projet-single__chantier-title {
  font-size: 0.6875rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #666;
  font-weight: 400;
  margin: 0 0 1rem;
}
@media screen and (min-width: 1600px) {
  .projet-single__chantier-title {
    margin-bottom: 1.25rem;
  }
}
@media screen and (min-width: 1920px) {
  .projet-single__chantier-title {
    margin-bottom: 1.5rem;
  }
}
.projet-single__navigation {
  display: flex;
  justify-content: space-between;
  padding: 1.5rem;
  position: relative;
  opacity: 0;
  transform: translateY(20px);
}
.projet-single__navigation::before {
  content: "";
  position: absolute;
  background-color: #000;
  left: 0;
  top: 0;
  width: 0;
  height: 1px;
}
@media screen and (min-width: 1024px) {
  .projet-single__navigation {
    padding: 2rem;
  }
}
@media screen and (min-width: 1600px) {
  .projet-single__navigation {
    padding: 3rem;
  }
}
.projet-single__nav-link {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  text-decoration: none;
  color: #000;
  max-width: 45%;
  transition: opacity 0.2s ease;
}
.projet-single__nav-link:hover {
  opacity: 0.6;
}
.projet-single__nav-link--prev {
  align-items: flex-start;
}
.projet-single__nav-link--next {
  align-items: flex-end;
  margin-left: auto;
  text-align: right;
}
.projet-single__nav-label {
  font-size: 0.6875rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #666;
}
@media screen and (min-width: 1600px) {
  .projet-single__nav-label {
    font-size: 0.75rem;
  }
}
@media screen and (min-width: 1920px) {
  .projet-single__nav-label {
    font-size: 0.8125rem;
  }
}
.projet-single__nav-title {
  font-weight: 700;
  font-size: 0.8125rem;
  line-height: 1.6;
}
@media screen and (min-width: 1600px) {
  .projet-single__nav-title {
    font-size: 0.875rem;
  }
}
@media screen and (min-width: 1920px) {
  .projet-single__nav-title {
    font-size: 1rem;
  }
}

/*!
Theme Name: mca
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: mca
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

mca is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Reset
# Fonts
# Typography
# Components
	- Header
	- Navigation
	- Footer
	- Projects Grid
	- Agence Page
	- Actualités Page
	- Single Project
--------------------------------------------------------------*/
/*--------------------------------------------------------------
# Variables & Mixins (load first, used by all components)
--------------------------------------------------------------*/
/**
 * Swiper Carousel Customization
 *
 * Custom styles for the construction photos carousel on single project pages.
 */
.projet-single__chantier {
  position: relative;
}

.projet-single__chantier-carousel {
  overflow: hidden;
}
.projet-single__chantier-carousel .swiper-wrapper {
  align-items: stretch;
}
.projet-single__chantier-carousel .swiper-slide {
  width: auto;
  height: auto;
}
.projet-single__chantier-carousel .swiper-slide a {
  display: block;
}
.projet-single__chantier-carousel .swiper-slide img {
  width: auto;
  height: 220px;
  object-fit: cover;
  display: block;
}
@media screen and (min-width: 768px) {
  .projet-single__chantier-carousel .swiper-slide img {
    height: 280px;
  }
}
@media screen and (min-width: 1024px) {
  .projet-single__chantier-carousel .swiper-slide img {
    height: 320px;
  }
}
@media screen and (min-width: 1600px) {
  .projet-single__chantier-carousel .swiper-slide img {
    height: 380px;
  }
}
@media screen and (min-width: 1920px) {
  .projet-single__chantier-carousel .swiper-slide img {
    height: 450px;
  }
}

.projet-carousel__nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 1rem;
  margin-top: 1.5rem;
}
@media screen and (min-width: 1600px) {
  .projet-carousel__nav {
    gap: 1.25rem;
    margin-top: 2rem;
  }
}
@media screen and (min-width: 1920px) {
  .projet-carousel__nav {
    gap: 1.5rem;
    margin-top: 2.5rem;
  }
}

.projet-carousel__prev,
.projet-carousel__next {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: transparent;
  border: 1px solid #000;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease;
}
@media screen and (min-width: 1600px) {
  .projet-carousel__prev,
  .projet-carousel__next {
    width: 48px;
    height: 48px;
  }
}
@media screen and (min-width: 1920px) {
  .projet-carousel__prev,
  .projet-carousel__next {
    width: 56px;
    height: 56px;
  }
}
.projet-carousel__prev:hover,
.projet-carousel__next:hover {
  background-color: #000;
  color: #fff;
}
.projet-carousel__prev:hover svg,
.projet-carousel__next:hover svg {
  stroke: #fff;
}
.projet-carousel__prev.swiper-button-disabled,
.projet-carousel__next.swiper-button-disabled {
  opacity: 0.3;
  cursor: not-allowed;
}
.projet-carousel__prev.swiper-button-disabled:hover,
.projet-carousel__next.swiper-button-disabled:hover {
  background-color: transparent;
}
.projet-carousel__prev.swiper-button-disabled:hover svg,
.projet-carousel__next.swiper-button-disabled:hover svg {
  stroke: #000;
}
.projet-carousel__prev svg,
.projet-carousel__next svg {
  width: 16px;
  height: 16px;
  stroke: #000;
  stroke-width: 2;
  fill: none;
  transition: stroke 0.2s ease;
}
@media screen and (min-width: 1600px) {
  .projet-carousel__prev svg,
  .projet-carousel__next svg {
    width: 20px;
    height: 20px;
  }
}
@media screen and (min-width: 1920px) {
  .projet-carousel__prev svg,
  .projet-carousel__next svg {
    width: 24px;
    height: 24px;
  }
}

.projet-carousel__pagination {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
@media screen and (max-width: 767px) {
  .projet-carousel__pagination {
    display: none;
  }
}
@media screen and (min-width: 1600px) {
  .projet-carousel__pagination {
    gap: 0.625rem;
  }
}
@media screen and (min-width: 1920px) {
  .projet-carousel__pagination {
    gap: 0.75rem;
  }
}
.projet-carousel__pagination .swiper-pagination-bullet {
  width: 8px;
  height: 8px;
  background: #ccc;
  border-radius: 50%;
  opacity: 1;
  cursor: pointer;
  transition: background-color 0.2s ease, transform 0.2s ease;
}
@media screen and (min-width: 1600px) {
  .projet-carousel__pagination .swiper-pagination-bullet {
    width: 10px;
    height: 10px;
  }
}
@media screen and (min-width: 1920px) {
  .projet-carousel__pagination .swiper-pagination-bullet {
    width: 12px;
    height: 12px;
  }
}
.projet-carousel__pagination .swiper-pagination-bullet:hover {
  background: #999;
}
.projet-carousel__pagination .swiper-pagination-bullet-active {
  background: #000;
  transform: scale(1.2);
}

/*!
Theme Name: mca
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: mca
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

mca is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Reset
# Fonts
# Typography
# Components
	- Header
	- Navigation
	- Footer
	- Projects Grid
	- Agence Page
	- Actualités Page
	- Single Project
--------------------------------------------------------------*/
/*--------------------------------------------------------------
# Variables & Mixins (load first, used by all components)
--------------------------------------------------------------*/
/**
 * GLightbox Overrides
 *
 * White UI on dark overlay for project gallery lightbox.
 */
.goverlay {
  background: rgba(0, 0, 0, 0.92) !important;
}

.glightbox-container .gclose {
  top: 1rem;
  right: 1rem;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 1px solid #fff;
  border-radius: 0;
  opacity: 1;
  transition: opacity 0.2s ease;
}
.glightbox-container .gclose svg {
  width: 18px;
  height: 18px;
  stroke: #fff;
  fill: none;
}
.glightbox-container .gclose:hover {
  opacity: 0.7;
}
@media screen and (min-width: 768px) {
  .glightbox-container .gclose {
    top: 1.5rem;
    right: 1.5rem;
  }
}

.glightbox-container .gprev,
.glightbox-container .gnext {
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 1px solid #fff;
  border-radius: 0;
  opacity: 1;
  top: 50%;
  transform: translateY(-50%);
  transition: opacity 0.2s ease;
}
.glightbox-container .gprev svg,
.glightbox-container .gnext svg {
  width: 20px;
  height: 20px;
  stroke: #fff;
  fill: none;
}
.glightbox-container .gprev:hover,
.glightbox-container .gnext:hover {
  opacity: 0.7;
}
@media screen and (max-width: 767px) {
  .glightbox-container .gprev,
  .glightbox-container .gnext {
    width: 36px;
    height: 36px;
  }
  .glightbox-container .gprev svg,
  .glightbox-container .gnext svg {
    width: 16px;
    height: 16px;
  }
}
@media screen and (min-width: 768px) {
  .glightbox-container .gprev,
  .glightbox-container .gnext {
    width: 48px;
    height: 48px;
  }
}

.glightbox-container .gprev {
  left: 1rem;
}
@media screen and (min-width: 768px) {
  .glightbox-container .gprev {
    left: 1.5rem;
  }
}

.glightbox-container .gnext {
  right: 1rem;
}
@media screen and (min-width: 768px) {
  .glightbox-container .gnext {
    right: 1.5rem;
  }
}

.glightbox-container .gslide-counter {
  position: absolute;
  bottom: 1.5rem;
  left: 50%;
  transform: translateX(-50%);
  color: #fff;
  font-size: 0.8125rem;
  letter-spacing: 0.1em;
  opacity: 0.8;
}
@media screen and (min-width: 768px) {
  .glightbox-container .gslide-counter {
    font-size: 0.875rem;
    bottom: 2rem;
  }
}

.glightbox-container .gslide-image img {
  max-height: 90vh;
}
@media screen and (max-width: 767px) {
  .glightbox-container .gslide-image img {
    max-height: 80vh;
  }
}

.glightbox-container .gslide-description {
  background: transparent;
}

/*!
Theme Name: mca
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: mca
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

mca is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Reset
# Fonts
# Typography
# Components
	- Header
	- Navigation
	- Footer
	- Projects Grid
	- Agence Page
	- Actualités Page
	- Single Project
--------------------------------------------------------------*/
/*--------------------------------------------------------------
# Variables & Mixins (load first, used by all components)
--------------------------------------------------------------*/
/**
 * 404 Error Page Styles
 *
 * Full-viewport layout with glitch canvas background and centered content overlay.
 */
.error-404 {
  position: relative;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.error-404__scene {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}
.error-404__scene canvas {
  display: block;
  width: 100%;
  height: 100%;
}
.error-404__content {
  position: relative;
  z-index: 1;
  text-align: center;
  padding: 1.5rem;
  max-width: 600px;
}
@media screen and (min-width: 768px) {
  .error-404__content {
    padding: 2rem;
  }
}
.error-404__title {
  font-size: 2.5rem;
  font-weight: 700;
  margin: 0 0 1rem;
  color: #000;
}
@media screen and (min-width: 768px) {
  .error-404__title {
    font-size: 3rem;
  }
}
@media screen and (min-width: 1024px) {
  .error-404__title {
    font-size: 3.5rem;
  }
}
.error-404__message {
  font-size: 0.875rem;
  color: #666;
  margin: 0 0 2rem;
  line-height: 1.6;
}
@media screen and (min-width: 768px) {
  .error-404__message {
    font-size: 1rem;
  }
}
@media screen and (min-width: 1024px) {
  .error-404__message {
    font-size: 1.125rem;
    margin-bottom: 2.5rem;
  }
}
.error-404__actions {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  align-items: center;
}
@media screen and (min-width: 600px) {
  .error-404__actions {
    flex-direction: row;
    justify-content: center;
  }
}
.error-404__link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.8rem 1.25rem;
  font-weight: 700;
  text-decoration: none;
  position: relative;
  border: 2px solid transparent;
  transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}
@media screen and (min-width: 1600px) {
  .error-404__link {
    padding: 1rem 1.5rem;
    font-size: 1.125rem;
  }
}
@media screen and (min-width: 1920px) {
  .error-404__link {
    padding: 1.125rem 1.75rem;
    font-size: 1.25rem;
  }
}
.error-404__link {
  text-decoration: none;
  min-width: 200px;
  justify-content: center;
}
.error-404__link--primary {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.8rem 1.25rem;
  font-weight: 700;
  text-decoration: none;
  position: relative;
  border: 2px solid transparent;
  transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}
@media screen and (min-width: 1600px) {
  .error-404__link--primary {
    padding: 1rem 1.5rem;
    font-size: 1.125rem;
  }
}
@media screen and (min-width: 1920px) {
  .error-404__link--primary {
    padding: 1.125rem 1.75rem;
    font-size: 1.25rem;
  }
}
.error-404__link--primary::before, .error-404__link--primary::after {
  content: "";
  position: absolute;
  width: 0;
  height: 0;
  border: 2px solid transparent;
  box-sizing: border-box;
  pointer-events: none;
}
.error-404__link--primary::before {
  top: -2px;
  left: -2px;
  border-top-color: transparent;
  border-right-color: transparent;
  transition: width 0.2s ease, height 0.2s ease 0.2s, border-color 0s ease 0.4s;
}
.error-404__link--primary::after {
  bottom: -2px;
  right: -2px;
  border-bottom-color: transparent;
  border-left-color: transparent;
  transition: width 0.2s ease, height 0.2s ease 0.2s, border-color 0s ease 0.4s;
}
.error-404__link--primary {
  background: #000;
  color: #fff;
}
.error-404__link--primary:hover {
  background: #fff;
  color: #000;
}
.error-404__link--primary:hover::before {
  width: calc(100% + 4px);
  height: calc(100% + 4px);
  border-top-color: #000;
  border-right-color: #000;
  transition: width 0.2s ease, height 0.2s ease 0.2s;
}
.error-404__link--primary:hover::after {
  width: calc(100% + 4px);
  height: calc(100% + 4px);
  border-bottom-color: #000;
  border-left-color: #000;
  transition: width 0.2s ease, height 0.2s ease 0.2s;
}
.error-404__link--secondary {
  background: transparent;
  color: #000;
  border: 2px solid #000;
}
.error-404__link--secondary:hover {
  background: #000;
  color: #fff;
}

@media (prefers-reduced-motion: reduce) {
  .error-404__scene {
    opacity: 0.7;
  }
}
@media screen and (max-width: 599px) {
  .error-404__scene {
    opacity: 0.5;
  }
}
/*!
Theme Name: mca
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: mca
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

mca is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Reset
# Fonts
# Typography
# Components
	- Header
	- Navigation
	- Footer
	- Projects Grid
	- Agence Page
	- Actualités Page
	- Single Project
--------------------------------------------------------------*/
/*--------------------------------------------------------------
# Variables & Mixins (load first, used by all components)
--------------------------------------------------------------*/
/**
 * Mentions Légales Page
 *
 * Scoped styles for the legal notices page.
 * Full-width, no sidebar, centered readable content.
 */
.mentions-legales__container {
  max-width: 800px;
  margin: 0 auto;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
@media screen and (min-width: 768px) {
  .mentions-legales__container {
    padding-left: 2rem;
    padding-right: 2rem;
  }
}
@media screen and (min-width: 1600px) {
  .mentions-legales__container {
    padding-left: 3rem;
    padding-right: 3rem;
  }
}
.mentions-legales__container {
  padding-top: 4rem;
  padding-bottom: 4rem;
}
@media screen and (min-width: 1600px) {
  .mentions-legales__container {
    padding-top: 5rem;
    padding-bottom: 5rem;
  }
}
.mentions-legales .page-title {
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1.2;
}
@media screen and (min-width: 768px) {
  .mentions-legales .page-title {
    font-size: 3rem;
  }
}
@media screen and (min-width: 1600px) {
  .mentions-legales .page-title {
    font-size: 3.5rem;
  }
}
@media screen and (min-width: 1920px) {
  .mentions-legales .page-title {
    font-size: 4rem;
  }
}
.mentions-legales .page-title {
  margin: 0 0 3rem;
}
@media screen and (min-width: 1600px) {
  .mentions-legales .page-title {
    margin-bottom: 4rem;
  }
}
.mentions-legales__content h2 {
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.3;
  margin: 3rem 0 1rem;
}
@media screen and (min-width: 768px) {
  .mentions-legales__content h2 {
    font-size: 1.4rem;
  }
}
@media screen and (min-width: 1600px) {
  .mentions-legales__content h2 {
    font-size: 1.6rem;
    margin-top: 4rem;
  }
}
@media screen and (min-width: 1920px) {
  .mentions-legales__content h2 {
    font-size: 1.8rem;
  }
}
.mentions-legales__content h2:first-child {
  margin-top: 0;
}
.mentions-legales__content br {
  display: block;
  content: "";
  margin-top: 0.25rem;
}

/*--------------------------------------------------------------
# Accessibility
--------------------------------------------------------------*/
/*!
Theme Name: mca
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: mca
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

mca is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Reset
# Fonts
# Typography
# Components
	- Header
	- Navigation
	- Footer
	- Projects Grid
	- Agence Page
	- Actualités Page
	- Single Project
--------------------------------------------------------------*/
/*--------------------------------------------------------------
# Variables & Mixins (load first, used by all components)
--------------------------------------------------------------*/
/**
 * Accessibility Utilities
 *
 * WCAG 2.1 Level AA compliance styles including:
 * - Focus state management
 * - Screen reader utilities
 * - Skip links
 * - Reduced motion support
 * - Touch target sizing
 *
 * @package mca
 */
a:focus-visible {
  outline: 2px solid #000;
  outline-offset: 2px;
}

button:focus-visible {
  outline: 2px solid #000;
  outline-offset: 2px;
}

input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 2px solid #000;
  outline-offset: 2px;
}

:focus:not(:focus-visible) {
  outline: none;
}

@supports not selector(:focus-visible) {
  a:focus,
  button:focus,
  input:focus,
  textarea:focus,
  select:focus {
    outline: 2px solid #000;
    outline-offset: 2px;
  }
}
.skip-link {
  position: absolute;
  top: -100px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 100000;
  padding: 0.75rem 1.5rem;
  background-color: #000;
  color: #fff;
  font-size: 1rem;
  font-weight: 600;
  text-decoration: none;
  border-radius: 0 0 4px 4px;
  transition: top 0.2s ease;
}
.skip-link:focus, .skip-link:focus-visible {
  top: 8px;
  outline: 2px solid #fff;
  outline-offset: -2px;
}

.sr-only, .current-menu-item > a::after,
.current_page_item > a::after, .current-menu-item > a[aria-live]::after,
.current_page_item > a[aria-live]::after, [aria-live].sr-only,
.screen-reader-text {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.sr-only.skip-link:focus, .current-menu-item > a.skip-link:focus::after,
.current_page_item > a.skip-link:focus::after, .sr-only:focus-visible, .current-menu-item > a:focus-visible::after,
.current_page_item > a:focus-visible::after,
.screen-reader-text.skip-link:focus,
.screen-reader-text:focus-visible {
  position: static !important;
  width: auto !important;
  height: auto !important;
  padding: 0.75rem 1.5rem !important;
  margin: 0 !important;
  overflow: visible !important;
  clip: auto !important;
  white-space: normal !important;
}

.focusable:focus {
  outline: 2px solid #000;
  outline-offset: 2px;
}

[tabindex="-1"]:focus {
  outline: none;
}

.touch-target {
  min-width: 44px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.touch-target--sm {
  min-width: 32px;
  min-height: 32px;
}

@media (forced-colors: active) {
  a:focus-visible,
  button:focus-visible,
  input:focus-visible,
  textarea:focus-visible,
  select:focus-visible {
    outline: 2px solid CanvasText;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  .project-card__image-wrapper:hover .project-card__image {
    transform: none;
  }
  .project-card__title,
  .project-card__lieu {
    transform: none !important;
    opacity: 1 !important;
  }
  .project-card__overlay {
    opacity: 0;
  }
  .project-card__image-wrapper:hover .project-card__overlay,
  .project-card__image-wrapper:focus-within .project-card__overlay {
    opacity: 1;
  }
}
.menu-hamburger:focus-visible {
  outline: 2px solid #000;
  outline-offset: 2px;
}

.menu-close:focus-visible {
  outline: 2px solid #000;
  outline-offset: 2px;
}

.main-navigation a:focus-visible {
  outline: 2px solid #000;
  outline-offset: 2px;
  opacity: 1;
}

.project-card__link:focus-visible {
  outline: 2px solid #000;
  outline-offset: 2px;
}
.project-card__link:focus-visible .project-card__overlay {
  opacity: 1;
}
.project-card__link:focus-visible .project-card__title,
.project-card__link:focus-visible .project-card__lieu {
  transform: translateY(0);
  opacity: 1;
}

.projet-carousel__prev:focus-visible,
.projet-carousel__next:focus-visible {
  outline: 2px solid #000;
  outline-offset: 2px;
  background-color: #000;
}
.projet-carousel__prev:focus-visible svg,
.projet-carousel__next:focus-visible svg {
  stroke: #fff;
}

.swiper-pagination-bullet:focus-visible {
  outline: 2px solid #000;
  outline-offset: 2px;
  outline-offset: 3px;
}

.site-branding .site-title a:focus-visible {
  outline: 2px solid #000;
  outline-offset: 2px;
  opacity: 1;
}

.projet-single__nav-link:focus-visible {
  outline: 2px solid #000;
  outline-offset: 2px;
}

.site-footer a:focus-visible {
  outline: 2px solid #000;
  outline-offset: 2px;
}

.agence-contact__email a:focus-visible {
  outline: 2px solid #000;
  outline-offset: 2px;
}

.map-popup__link:focus-visible {
  outline: 2px solid #000;
  outline-offset: 2px;
}

[aria-disabled=true],
button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

.current-menu-item > a::after,
.current_page_item > a::after {
  content: " (page actuelle)";
}

/*# sourceMappingURL=style.css.map */
