/* ! normalize.css v1.0.0 | MIT License | git.io/normalize */

/* ==========================================================================
HTML5 display definitions
========================================================================== */
 
/* * Corrects `block` display not defined in IE 6/7/8/9 and Firefox 3. */
 
article, aside, details, figcaption, figure, footer, header, hgroup, nav, section, summary { display: block; }
/* * Corrects `inline-block` display not defined in IE 6/7/8/9 and Firefox 3. */
audio, canvas, video { display: inline-block; *display: inline; *zoom: 1; }
/* * Prevents modern browsers from displaying `audio` without controls.
* Remove excess height in iOS 5 devices. */
audio:not([controls]) { display: none; height: 0; }
/* * Addresses styling for `hidden` attribute not present in IE 7/8/9, Firefox 3, * and Safari 4.
* Known issue:no IE 6 support. */
[hidden] { display: none; }
/* ==========================================================================
Base
========================================================================== */
/* * 1. Corrects text resizing oddly in IE 6/7 when body `font-size` is set using
*    `em` units.
* 2. Prevents iOS text size adjust after orientation change, without disabling
*    user zoom. */
 
html { font-size: 100%; /* 1 */
	-webkit-text-size-adjust: 100%; /* 2 */
-ms-text-size-adjust: 100%; /* 2 */ }
html, html a { -webkit-font-smoothing: antialiased; text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.004); }
/* * Addresses `font-family` inconsistency between `textarea` and other form
* elements. */
html, button, input, select, textarea { font-family: 'Varela Round', sans-serif; }
/* * Addresses margins handled incorrectly in IE 6/7. */
body { margin: 0; font-family: 'Varela Round', sans-serif; background-color: #171717;}
/* ==========================================================================
Links
========================================================================== */
/* * Addresses `outline` inconsistency between Chrome and other browsers. */
 
a:focus { outline: thin dotted; }
/* * Improves readability when focused and also mouse hovered in all browsers. */
a:active, a:hover { outline: 0; }
/* ==========================================================================
Typography
========================================================================== */
/* * Addresses font sizes and margins set differently in IE 6/7.
* Addresses font sizes within `section` and `article` in Firefox 4+, Safari 5, * and Chrome. */
 
h1 { font-size: 2em; margin: 0.67em 0; color: #E3E3E3; }
h2 { font-size: 1.5em; margin: 0.83em 0;}
h3 { font-size: 1.5em; margin: 0.83em 0;}
h4 { font-size: 1em; margin: 1.33em 0; }
h5 { font-size: 0.83em; margin: 1.67em 0; }
h6 { font-size: 0.75em; margin: 2.33em 0; }
/* * Addresses styling not present in IE 7/8/9, Safari 5, and Chrome. */
abbr[title] { border-bottom: 1px dotted; }
/* * Addresses style set to `bolder` in Firefox 3+, Safari 4/5, and Chrome. */
b, strong { font-weight: bold; }
blockquote { margin: 1em 40px; }
/* * Addresses styling not present in Safari 5 and Chrome. */
dfn { font-style: italic; }
/* * Addresses styling not present in IE 6/7/8/9. */
mark { background: #ff0; color: #000; }
/* * Addresses margins set differently in IE 6/7. */
p, pre { margin: 1em 0; }
/* * Corrects font family set oddly in IE 6, Safari 4/5, and Chrome. */
code, kbd, pre, samp { font-family: monospace, serif; _font-family: 'courier new', monospace; font-size: 1em; }
/* * Improves readability of pre-formatted text in all browsers. */
pre { white-space: pre; white-space: pre-wrap; word-wrap: break-word; }
/* * Addresses CSS quotes not supported in IE 6/7. */
q { quotes: none; }
/* * Addresses `quotes` property not supported in Safari 4. */
q:before, q:after { content: ''; content: none; }
small { font-size: 75%; }
/* * Prevents `sub` and `sup` affecting `line-height` in all browsers. */
sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
sup { top: -0.5em; }
sub { bottom: -0.25em; }
/* ==========================================================================
Lists
========================================================================== */
/* * Addresses margins set differently in IE 6/7. */
 
dl, menu, ol, ul { margin: 1em 0; }
dd { margin: 0 0 0 40px; }
/* * Addresses paddings set differently in IE 6/7. */
menu, ol, ul { padding: 0 0 0 40px; }
/* * Corrects list images handled incorrectly in IE 7. */
nav ul, nav ol { list-style: none; list-style-image: none; }
/* ==========================================================================
Embedded content
========================================================================== */
/* * 1. Removes border when inside `a` element in IE 6/7/8/9 and Firefox 3.
* 2. Improves image quality when scaled in IE 7. */
 
img { border: 0; /* 1 */
-ms-interpolation-mode: bicubic; /* 2 */ }
/* * Corrects overflow displayed oddly in IE 9. */
svg:not(:root) { overflow: hidden; }
/* ==========================================================================
Figures
========================================================================== */
/* * Addresses margin not present in IE 6/7/8/9, Safari 5, and Opera 11. */
 
figure { margin: 0; }
/* ==========================================================================
Forms
========================================================================== */
/* * Corrects margin displayed oddly in IE 6/7. */
 
form { margin: 0; }
/* * Define consistent border, margin, and padding. */
fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; }
/* * 1. Corrects color not being inherited in IE 6/7/8/9.
* 2. Corrects text not wrapping in Firefox 3.
* 3. Corrects alignment displayed oddly in IE 6/7. */
legend { border: 0; /* 1 */
	padding: 0; white-space: normal; /* 2 */
*margin-left: -7px; /* 3 */ }
/* * 1. Corrects font size not being inherited in all browsers.
* 2. Addresses margins set differently in IE 6/7, Firefox 3+, Safari 5, *    and Chrome.
* 3. Improves appearance and consistency in all browsers. */
button, input, select, textarea { font-size: 100%; /* 1 */
	margin: 0; /* 2 */
	vertical-align: baseline; /* 3 */
*vertical-align: middle; /* 3 */ }
/* * Addresses Firefox 3+ setting `line-height` on `input` using ` !important` in
* the UA stylesheet. */
button, input { line-height: normal; }
/* * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
*    and `video` controls.
* 2. Corrects inability to style clickable `input` types in iOS.
* 3. Improves usability and consistency of cursor style between image-type
*    `input` and others.
* 4. Removes inner spacing in IE 7 without affecting normal text inputs.
*    Known issue:inner spacing remains in IE 6. */
button, html input[type="button"], /* 1 */
input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* 2 */
	cursor: pointer; /* 3 */
*overflow: visible; /* 4 */ }
/* * Re-set default cursor for disabled elements. */
button[disabled], input[disabled] { cursor: default; }
/* * 1. Addresses box sizing set to content-box in IE 8/9.
* 2. Removes excess padding in IE 8/9.
* 3. Removes excess padding in IE 7.
*    Known issue:excess padding remains in IE 6. */
input[type="checkbox"], input[type="radio"] { box-sizing: border-box; /* 1 */
	padding: 0; /* 2 */
	*height: 13px; /* 3 */
*width: 13px; /* 3 */ }
/* * 1. Addresses `appearance` set to `searchfield` in Safari 5 and Chrome.
* 2. Addresses `box-sizing` set to `border-box` in Safari 5 and Chrome
*    (include `-moz` to future-proof). */
input[type="search"] { -webkit-appearance: textfield; /* 1 */
	-moz-box-sizing: content-box; -webkit-box-sizing: content-box; /* 2 */
box-sizing: content-box; }
/* * Removes inner padding and search cancel button in Safari 5 and Chrome
* on OS X. */
input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }
/* * Removes inner padding and border in Firefox 3+. */
button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; }
/* * 1. Removes default vertical scrollbar in IE 6/7/8/9.
* 2. Improves readability and alignment in all browsers. */
textarea { overflow: auto; /* 1 */
vertical-align: top; /* 2 */ }
/* ==========================================================================
Tables
========================================================================== */
/* * Remove most spacing between table cells. */
table { border-collapse: collapse; border-spacing: 0; }
/* ==========================================================================
Global Styles
========================================================================== */
a { color: #353535; -webkit-transition: all 0.5s; -moz-transition: all 0.5s; -o-transition: all 0.5s; transition: all 0.5s; }
a:hover, a:focus { color: #3dc9b3; text-decoration: none; }
p { color: #8c9398; word-spacing: 1px; line-height: 25px; font-size: 14px; }
h2 { font-size: 15px; color: #DBDBDB; text-transform: uppercase; font-weight: bold; }
h2::after { content: " "; border: solid 2px #54684F; display: block; width: 35px; margin: 25px auto; }
h3 { font-size: 15px; color: #DBDBDB; font-weight: bold; }
h3::after { content: " "; border: solid 2px #54684F; display: block; width: 35px; margin: 25px auto; }
.section-padding { padding: 60px 0 100px } 
.inner { padding-top: 170px; }
/* ==========================================================================
Navigation
========================================================================== */
nav { background-color: #171717; margin-top: -1px; }
nav ul { list-style: none; padding: 0; }
nav ul li { color: rgba(255, 255, 255, 0.6); display: block; border-bottom: 1px dotted rgba(255, 255, 255, 0.2); transition: all 0.5s ease; -moz-transition: all 0.5s ease; -webkit-transition: all 0.5s ease; -o-transition: all 0.5s ease; padding-left: 0; position: relative; }
nav ul li:last-child { border: none; }
nav ul li a { color: rgba(255, 255, 255, 0.6); display: block; padding: 20px; transition: all 0.5s ease; -moz-transition: all 0.5s ease; -webkit-transition: all 0.5s ease; -o-transition: all 0.5s ease; padding-left: 0; position: relative; }
nav ul li a:hover, nav ul li a:focus { text-decoration: none; color: rgba(255, 255, 255, 1); }
#nav-toggle { position: absolute; right: 15px; top: 0px; }
#nav-toggle { cursor: pointer; padding: 10px 35px 16px 0px; }
#nav-toggle span, #nav-toggle span:before, #nav-toggle span:after { cursor: pointer; border-radius: 1px; -moz-border-radius: 1px; -webkit-border-radius: 1px; -o-border-radius: 1px; height: 5px; width: 35px; background: white; position: absolute; display: block; content: ''; }
#nav-toggle span:before { top: -10px; }
#nav-toggle span:after { bottom: -10px; }
#nav-toggle span, #nav-toggle span:before, #nav-toggle span:after { transition: all 500ms ease-in-out; -webkit-transition: all 500ms ease-in-out; -moz-transition: all 500ms ease-in-out; -o-transition: all 500ms ease-in-out; }
#nav-toggle.active span { background-color: transparent; }
#nav-toggle.active span:before, #nav-toggle.active span:after { top: 0; }
#nav-toggle.active span:before { transform: rotate(45deg); -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); }
#nav-toggle.active span:after { transform: translateY(-10px) rotate(-45deg); -webkit-transform: translateY(-10px) rotate(-45deg); -ms-transform: translateY(-10px) rotate(-45deg); top: 10px; }
.navicon { position: relative; height: 26px; }
.indicator { position: absolute; right: 0 !important; }
.pull { display: none; }
.current {color: white;}

/* Cache le sous-menu par défaut */
.submenu {
    display: none;
    list-style-type: none;
    padding: 0;
    margin: 0;
    transform : translateY(-10px)
  }
  
  /* Montre le sous-menu lorsque l'élément parent a la classe active */
  .has-submenu.active .submenu {
    display: block;
  }
  
  /* CSS pour permettre l'affichage au clic */
  .has-submenu > a {
    cursor: pointer;
  }
  
  
/* ==========================================================================
Hero
========================================================================== */
.hero { background: #000; padding: 45px 0 300px 0; height: auto; position: relative; overflow: hidden; }
#hero-video { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; pointer-events: none; opacity: 0; transition: opacity 1.2s ease; background: #000; }
#hero-video.is-visible { opacity: 1; }
#hero-inner { position: relative; z-index: 2; text-shadow: 0 1px 12px rgba(0, 0, 0, 0.6); }
.hero .container { position: relative; z-index: 200; }
.hero h1 { font-size: 40px; letter-spacing: 12px; margin: 10px; color:white}
.hero h1 span { display: inline-block; }
.hero p { letter-spacing: 1px; color:white}
hr { width: 50%; }
.hero hr { filter: drop-shadow(0 1px 12px rgba(0, 0, 0, 0.6)); }
.hero img {display:inline-block; width:200px; transform: translateY(-55px) translateX(-50px); margin-top: 10px; margin-left: 10px;}
/* Shorter hero on mobile so the (much wider) video isn't zoomed/cropped so hard,
   with the text vertically centered (logo pulled out of flow so it doesn't push it down) */
@media screen and (max-width: 767px) {
    .page-index .hero { padding: 45px 0; min-height: 62vh; display: flex; }
    .page-index .hero .container { width: 100%; display: flex; flex-direction: column; }
    .page-index .hero .container > .row:nth-child(2) { margin-top: auto; margin-bottom: auto; }
    .page-index .hero .inner { padding-top: 0; }
    /* Tighten the (longer) name on narrow screens so it doesn't overflow */
    .page-index .hero h1 { font-size: 32px; letter-spacing: 6px; }
}

/* ==========================================================================
header
========================================================================== */
.header { background-color: #171717; padding: 45px 0 50px 0;}
#logo-header {display:inline-block; width:200px; transform: translateY(-55px) translateX(-50px); margin-top: 10px; margin-left: 10px;}
.prestations{
    padding-left:40px
}

/* Center the line on the "•" itself: the two words share the space equally on
   each side and hug the separator, so the bullet sits at the exact center. */
#videaste { margin-top: -5px; display: flex; justify-content: center; align-items: baseline; }
#videaste .vid-word { flex: 1 1 0; }
#videaste .vid-word:first-child { text-align: right; }
#videaste .vid-word:last-child { text-align: left; }
#videaste .vid-sep { flex: 0 0 auto; padding: 0 0.5em; }
/* ==========================================================================
Portfolio
========================================================================== */
.effects .img { position: relative; margin-bottom: 20px; z-index: 1; overflow: hidden; }
.effects .img:nth-child(n) { margin-right: 5px; }
.effects .img:first-child { margin-left: 20px; }
.effects .img:last-child { margin-right: 20px; }
.effects .img img { display: block; margin: 0; padding: 0; height: auto; }
.portfolio .img img,
.photos .img img,
.videos .img img { width: -webkit-calc(100% + 40px); width: calc(100% + 40px); -webkit-transition: opacity 0.35s, -webkit-transform 0.35s; transition: opacity 0.35s, transform 0.35s; -moz-transition: opacity 0.35s, -moz-transform 0.35s; -o-transition: opacity 0.35s, -o-transform 0.35s; }
.portfolio .img img { -webkit-transform: translate3d(-40px, 0, 0); transform: translate3d(-40px, 0, 0); -ms-transform: translate3d(-40px, 0, 0); }
.portfolio h1 { margin-top: 0; margin-bottom: 50px; }
.description-grid { display: none; margin-top: 20px; }
.description-grid .effects .img { height: 210px; margin-bottom: 0; }
.description-grid .effects .img:nth-child(n) { margin-right: 0; }
.description-grid .effects .img:first-child { margin-left: 0; }
.description-grid .effects .img:last-child { margin-right: 0; }
.description-grid .effects .img img { width: 100%; height: 100%; object-fit: cover; object-position: center; transform: none; transition: transform 0.4s; }
.description-grid .effects .img:hover img { transform: scale(1.06); }
.description-box { max-width: 700px; margin: 0 auto; }
@media (min-width: 768px) {
    .description-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; }
    .description-grid .effects .img { cursor: zoom-in; }
    .description-box { text-align: justify !important; }
}
#portfolio,
#tarifs,
#supplement,
#actualites,
#confiance-section { padding-top: 70px; padding-bottom: 0; margin-bottom: 0; background-color: #171717; }
.confiance ul.slides li:last-child { margin-bottom: 0; }
/* ==========================================================================
Photos
========================================================================== */
.photo { padding-left: 15px;}
.photo .img { position: relative; margin-bottom: 30px; z-index: 1; overflow: hidden; height: 100%; }
.photo .img:nth-child(n) { margin-right: 5px; }
.photo .img:first-child { margin-left: -15px; }
.photo .img:last-child { margin-right: 0;}
.photo .img img { display: block; margin: 0; padding: 0; height: auto; }
#photos { background-color: #171717; margin-bottom: 0; margin-top: -50px;}
/* ==========================================================================
Vidéos
========================================================================== */
.videos { padding-left: 0px;}
.videos .img { position: relative; margin-bottom: 30px; z-index: 1; overflow: hidden; }
.videos .img:nth-child(n) { margin-right: 5px; }
.videos .img:first-child { margin-left: -15px; }
.videos .img:last-child { margin-right: 0; }
.videos .img img { display: block; margin: 0; padding: 0; height: auto; }
#videos { background-color: #171717; margin-bottom: 0; margin-top:-50px}
/* ==========================================================================
Contact
========================================================================== */
.page-contact { min-height: 100vh; display: flex; flex-direction: column; }
/* padding-bottom compensates for the header being taller than the footer, so the
   content lands on the true viewport centre (equal space above icon / below button). */
.page-contact main { flex: 1; display: flex; align-items: center; justify-content: center; padding-bottom: 62px; }
.page-contact #contact { width: 100%; height: auto !important; padding: 40px 0; }
#mail { margin-bottom: 20px; }
#instagram { margin-bottom: 40px; }
/* Booking call-to-action: a native, on-brand button that opens Calendly in an
   overlay popup (avoids the inline iframe's uncontrollable card/border/grey). */
#booking-intro { margin-top: 10px; }
#booking-intro h2 { color: #fff; font-size: 21px; margin: 0 0 16px; }
#booking-btn {
  display: inline-block;
  padding: 12px 30px;
  font-family: 'Varela Round', sans-serif;
  font-size: 15px;
  color: #fff;
  background: transparent;
  border: 1px solid #888;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}
#booking-btn:hover, #booking-btn:focus { background: #fff; color: #171717; border-color: #fff; outline: none; }
.contact .iconify { color: white; }
.contact p { color: #ccc; margin-top: 8px; font-size: 15px; }
.contact p a { color: #ccc; text-decoration: none; }
.contact p a:hover { color: white; text-decoration: underline; }

/* Calendly popup: force a full-screen, fully opaque on-brand overlay so no part
   of the page (header/logo) shows through at the top. */
.calendly-overlay { background-color: #171717 !important; z-index: 100000 !important; }
.calendly-overlay .calendly-popup {
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  margin: 0 !important;
  transform: none !important;
}
.calendly-overlay .calendly-popup .calendly-popup-content { height: 100% !important; }
.photos h1 {font-size: 25px;}
/* ==========================================================================
Footer
========================================================================== */
footer { background-color: #171717; padding: 16px 30px; display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
footer nav { flex: 1; }
footer ul { margin: 0; padding: 0; display: flex; align-items: center; gap: 4px; }
footer nav ul li { display: inline-block; border: none; padding: 0; }
footer nav ul li a { display: inline-block; padding: 0; }
footer a { display: inline-flex; align-items: center; margin: 0 6px; }
footer span { color: white; }
#copyright { color: grey; }
.hero-subtitle { font-size: 18px; }
footer a:hover { filter: brightness(200%); }
.footer { left: 0; bottom: 0; width: 100%; background-color: #171717; }
footer p { flex: 1; margin: 0; color: grey; font-size: 14px; text-align: center; }
.footer-right { flex: 1; display: flex; justify-content: flex-end; }
.footer-contact { border: 1px solid #888; color: #ccc; background: #2e2e2e; padding: 6px 16px; font-size: 14px; border-radius: 3px; text-decoration: none; white-space: nowrap; transition: background 0.2s, color 0.2s; margin: 0; }
.footer-contact:hover { background: #444; color: white; filter: none; }
/* ==========================================================================
FlexSlider Custom CSS
========================================================================== */
ul.slides li { margin-bottom: 20px; }
/* ==========================================================================
Waypoints
========================================================================== */
.wp1, .wp2, .wp3, .wp4, .wp5 { visibility: hidden; }
.fadeInUp, .fadeInDown, .fadeInLeft { visibility: visible; }
header .fadeInUp, header .fadeInDown { text-shadow: 2px 1px #000000; }
.delay-05s { animation-delay: 0.5s; -webkit-animation-delay: 0.5s; }

/* ==========================================================================
Videos
========================================================================== */
.embed-youtube {
    background-color: #000;
    margin-bottom: 0px;
    position: relative;
    padding-top: 56.25%;
    overflow: hidden;
    cursor: pointer;
}
.embed-youtube img {
    width: 100%;
    top: -15px;
    left: 0;
    opacity: 0.7;
}
.embed-youtube .embed-youtube-play {
    width: 68px;
    height: 48px;
    background-color: #333;
    box-shadow: 0 0 30px rgba( 0,0,0,0.6 );
    z-index: 1;
    opacity: 0.8;
    border-radius: 6px;
}
.embed-youtube .embed-youtube-play:before {
    content: "";
    border-style: solid;
    border-width: 15px 0 15px 26.0px;
    border-color: transparent transparent transparent #fff;
}
.embed-youtube img,
.embed-youtube .embed-youtube-play {
    cursor: pointer;
}
.embed-youtube img,
.embed-youtube iframe,
.embed-youtube .embed-youtube-play,
.embed-youtube .embed-youtube-play:before {
    position: absolute;
}
.embed-youtube .embed-youtube-play,
.embed-youtube .embed-youtube-play:before {
    top: 50%;
    left: 50%;
    transform: translate3d( -50%, -50%, 0 );
}
.embed-youtube iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    transform: scale(1.06);
    transform-origin: center center;
}

.embed-youtube .embed-youtube-play:hover {
    background-color: #f00;
}

#text_presta{
    margin-left:10%;
    margin-right:10%;
    margin-top:50px;
    margin-bottom: -50px;
    font-size: medium;
}

h2{
    text-align: center;
}

h3{
    text-align: center;
}

.confiance ul {
    padding: 0;
    list-style: none;
}

.confiance .photo .img {
    height: 180px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.confiance .photo .img img {
    max-height: 180px;
    height: auto;
    width: auto;
    max-width: 100%;
    transform: none;
    -webkit-transform: none;
}

@media screen and (max-width:600px) {
    footer { flex-direction: column; align-items: center; text-align: center; padding: 12px 16px; gap: 10px; }
    footer nav { flex: none; order: 1; }
    .footer-right { flex: none; justify-content: center; order: 2; }
    footer p { flex: none; order: 3; }
}

@media screen and (max-width:991px) {
    .confiance .photo {
        padding-left: 0;
    }
    .confiance .photo .img {
        margin-left: 0;
        overflow: visible;
    }
    .confiance .photo .img img {
        display: block;
        margin: 0 auto;
        width: auto;
    }
}

@media screen and (min-width:992px) {
    .confiance {
        max-width: 900px;
        margin-left: auto;
        margin-right: auto;
        overflow: hidden;
    }
}

/* ==========================================================================
À propos
========================================================================== */
/* Match the space before the footer to the space above the first element (= padding-top),
   instead of the wider default .section-padding bottom. */
.apropos.section-padding { padding-top: 45px; padding-bottom: 45px; }
.apropos-grid {
    display: grid;
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    gap: 60px;
    align-items: start;
    max-width: 1160px;
    margin: 0 auto;
}
/* Tablet/desktop: text on the left, photo on the right (source order keeps the photo
   first so it stays on top in the single-column mobile layout). */
.apropos-text { display: flex; flex-direction: column; order: 1; }
.apropos-photo { margin: 0; order: 2; overflow: hidden; border-radius: 6px; }
/* 1.1x zoom, clipped by the frame, to crop out the trail sign on the left edge. */
.apropos-photo img {
    width: 100%;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    object-position: center;
    display: block;
    transform: scale(1.1);
}
.apropos-name {
    font-size: 32px;
    letter-spacing: 5px;
    text-transform: uppercase;
    font-weight: normal;
    color: #E3E3E3;
    margin: 0;
    line-height: 1.1;
}
.apropos-role {
    color: #8c9398;
    letter-spacing: 2px;
    font-size: 13px;
    text-transform: uppercase;
    margin: 14px 0 0;
}
.apropos-role::after {
    content: "";
    display: block;
    width: 48px;
    border-top: 2px solid #54684F;
    margin: 28px 0 0;
}
.apropos-text p:not(.apropos-role) {
    color: #a7aeb3;
    line-height: 28px;
    font-size: 15px;
    margin: 18px 0 0;
    text-align: justify;
    -webkit-hyphens: auto;
    -ms-hyphens: auto;
    hyphens: auto;
}
.apropos-text strong { color: #f0f1f2; font-weight: bold; }
.apropos-availability { margin-top: 22px; }
.apropos-cta {
    align-self: flex-start;
    display: inline-block;
    margin-top: 30px;
    color: #E3E3E3;
    font-size: 15px;
    letter-spacing: 1px;
    text-decoration: none;
    padding-bottom: 4px;
    border-bottom: 1px solid #54684F;
    transition: color 0.25s ease, border-color 0.25s ease;
}
.apropos-cta:hover, .apropos-cta:focus {
    color: #fff;
    border-color: #fff;
    outline: none;
}
/* Wide desktop: the photo column is wide enough here (container is 1170px) that
   matching the photo's height to the text column reads as balanced rather than
   squeezed, so restore the equal-height layout. */
@media screen and (min-width: 1200px) {
    .apropos-grid { align-items: stretch; }
    .apropos-photo { height: 100%; }
    .apropos-photo img { height: 100%; aspect-ratio: auto; }
}
/* Tablet: at its native 3:4 ratio the photo looks small beside the tall text column,
   so reframe to a taller crop (subject is centred, only side landscape is trimmed). */
@media screen and (min-width: 768px) and (max-width: 1199px) {
    /* Bootstrap caps .container at 750/970px here, leaving large dead margins on wider
       tablets. Make it fluid so the content (and the photo) uses the available width. */
    .apropos .container { width: auto; max-width: 1160px; padding-left: 30px; padding-right: 30px; }
    .apropos-photo img { aspect-ratio: 3 / 5; }
}
@media screen and (max-width: 767px) {
    .apropos-grid { grid-template-columns: 1fr; gap: 30px; padding: 0 12px; }
    /* single column: keep the photo on top (source order), the switch doesn't apply */
    .apropos-photo, .apropos-text { order: 0; }
    .apropos-photo img { aspect-ratio: 4 / 5; max-width: 380px; margin: 0 auto; }
}

/* ==========================================================================
Page-specific hero backgrounds
========================================================================== */
.page-drone .hero          { background-image: url('../img/drone1.webp'); }
.page-clips .hero          { background-image: url('../img/billy.webp'); }
.page-videosevenements .hero { background-image: url('../img/fleurmariage.webp'); }

/* ==========================================================================
Page-specific accent color (prestation pages)
========================================================================== */
.prestation-page a { color: #8AB146; }
.prestation-page nav ul li a { color: rgba(255, 255, 255, 0.6); }
.prestation-page nav ul li a.current { color: #ffffff; }

/* ==========================================================================
Page-specific photo caption alignment (clips page)
========================================================================== */
.page-clips #portfolioSlider .photo h2 { margin-left: -15px; }

/* ==========================================================================
Page-specific typography (prestation pages)
========================================================================== */
.prestation-page h3 { font-size: 16px; font-weight: lighter; }

/* ==========================================================================
Page-specific photo padding (photos & videos pages)
========================================================================== */
.page-photos .photo,
.page-videos .photo { padding-left: 30px; padding-right: 15px; }
.page-photos .photos,
.page-videos .videos { padding-bottom: 0; }

/* ==========================================================================
Lightbox (photos page only)
========================================================================== */
@media (min-width: 768px) {
    .page-photos .photos .photo .img {
        cursor: zoom-in;
    }
    .page-photos .photos .photo .img img {
        transition: opacity 0.35s ease, transform 0.35s ease;
    }
    .page-photos .photos .photo .img:hover img {
        opacity: 1;
        transform: scale(1.04);
    }
    .page-videos .embed-youtube {
        cursor: zoom-in;
    }
}

#lightbox-video-wrapper {
    width: min(85vw, calc(88vh * 1.7778));
    aspect-ratio: 16 / 9;
    position: relative;
    border-radius: 4px;
    overflow: hidden;
    box-shadow: 0 30px 90px rgba(0, 0, 0, 0.85), 0 0 0 1px rgba(255,255,255,0.07);
}
#lightbox-video-wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

#lightbox-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.65);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.4s ease, visibility 0.4s ease;
}
#lightbox-overlay.lb-active {
    opacity: 1;
    visibility: visible;
}
#lightbox-container {
    position: relative;
    transform: scale(0.88);
    transition: transform 0.45s cubic-bezier(0.34, 1.4, 0.64, 1);
}
#lightbox-overlay.lb-active #lightbox-container {
    transform: scale(1);
}
#lightbox-img {
    display: block;
    max-width: 88vw;
    max-height: 88vh;
    border-radius: 4px;
    box-shadow: 0 30px 90px rgba(0, 0, 0, 0.85), 0 0 0 1px rgba(255,255,255,0.07);
}
#lightbox-close {
    position: absolute;
    top: -16px;
    right: -16px;
    width: 38px;
    height: 38px;
    background: #ffffff;
    border: none;
    border-radius: 50%;
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
    color: #111111;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
    transition: transform 0.25s ease, background 0.25s ease, color 0.25s ease;
    z-index: 1;
}
#lightbox-close:hover {
    transform: scale(1.12) rotate(90deg);
    background: #e74c3c;
    color: #ffffff;
}

/* ==========================================================================
Navicon — consistent spacing on all screen sizes
========================================================================== */
.navicon {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    box-sizing: border-box;
    padding-left: 20px;
    margin-top: -10px;
}
#nav-toggle {
    right: 30px;
}

/* ==========================================================================
Fixed footer pages
========================================================================== */
.page-photos .footer,
.page-videos .footer,
.page-drone .footer,
.page-clips .footer,
.page-musiques .footer,
.page-videosevenements .footer { position: fixed; }
