/*
Theme Name: Hedhera Child
Template: hedhera
Version: 0.1
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: hedhera-child

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned with others.
*/
/* ScrollSmoother — config alignée sur Marie (opérationnelle).
   overflow: visible partout — ScrollSmoother applique ses propres
   styles inline sur #smooth-wrapper. overflow-x: clip évite le
   scroll horizontal sans créer de contexte de formatage parasite. */
html, body {
    overflow-x: clip;
    overflow-y: visible;
}
body {
    background: #fff;
}
#smooth-wrapper {
    overflow: visible;
}
/* will-change crée un layer GPU dédié pour #smooth-content
   qui reçoit translateY à chaque frame — réduit les saccades.
   Ref: https://gsap.com/community/forums/topic/36932 */
#smooth-content {
    overflow: visible;
    background-color: #ffffff;
    will-change: transform;
}
p {
    font-weight: 100;
}
h1, h2 {
    letter-spacing: 1px;
    color: #000;
}
header .container, footer .container {
    max-width: 1260px;
}
.page-id-342 header .container,
.page-id-342 footer .container {
  max-width: 1260px;
}
/* Header layout */
header .container-flex {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
header .logo {
    position: relative;
    z-index: 9999;
}
header .logo img {
    display: block;
    width: 220px;
}
@font-face {
    font-family: 'Chiswick Poster';
    src: url('fonts/ChiswickPoster-Extralight-Web.woff2') format('woff2');
    font-weight: 200;
    font-style: normal;
    font-display: block;
}
@font-face {
    font-family: 'Salty Feathers';
    src: url('fonts/Salty-Feathers.woff2') format('woff2');
    font-weight: normal;
    font-style: normal;
    font-display: block;
}
@font-face {
    font-family: 'Atlas Grotesk';
    src: url('fonts/AtlasGrotesk-Thin.woff2') format('woff2');
    font-weight: 100;
    font-style: normal;
    font-display: block;
}
@font-face {
    font-family: 'Atlas Grotesk';
    src: url('fonts/AtlasGrotesk-Light.woff2') format('woff2');
    font-weight: 300;
    font-style: normal;
    font-display: block;
}
[data-speed] {
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}
.wpb_content_element {
    margin-bottom: 0 !important;
}
.top-heading h1 {
    font-family: 'Chiswick Poster';
    font-size: 48px;
    letter-spacing: 5px;
    line-height: 1.4;
    font-weight: 200;
    text-transform: uppercase;
    color: #000;
    text-align: center;
}
.top-heading h1 em {
    font-style: normal;
    display: block;
    overflow: hidden;
}
.top-heading h1 em small {
    display: block;
}
.top-heading h1 em.line-plume small {
    font-family: 'Salty Feathers';
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0px;
    font-size: 66px;
}
.top-heading h1 br, .para-text p br {
    display: none;
}
.top-heading h2 {
    font-family: 'Chiswick Poster';
    font-size: 48px;
    letter-spacing: 5px;
    line-height: 1.4;
    font-weight: 200;
    text-transform: uppercase;
    color: #000;
    text-align: center;
}
.top-heading h2 em {
    font-style: normal;
    display: block;
    overflow: hidden;
}
.top-heading h2 em small {
    display: block;
}
.top-heading h2 br, .para-text p br {
    display: none;
}
.para-text {
    overflow: hidden;
	max-width: 330px;
}
.para-text p {
    font-family: "Montserrat", sans-serif;
    font-size: 11px;
	text-transform: uppercase;
	font-weight: 300;
	letter-spacing: 1.5px;
    line-height: 2;
    color: #000;
    margin: 0 auto;

}
.para-text h3 {
    font-family: 'ivyora-display';
    font-size: 14px;
    line-height: 1.7;
    text-transform: uppercase;
    letter-spacing: 3px;
    color: #000;
    margin: 30px auto;
    font-weight: 500;
}
.para-text h4 {
    font-family: "Montserrat", sans-serif;
    font-size: 11px;
	text-transform: uppercase;
	font-weight: 300;
	letter-spacing: 1.5px;
    line-height: 2;
    color: #000;
    margin: 15px auto 0;

}

.para-text h5 {
    font-family: "ivyora-display", serif;
    font-weight: 300;
    font-size: 14px;
    letter-spacing: 2px;
    font-style: italic;
    line-height: 1.5;
    color: #000;
    margin: 30px auto 0;

}
.para-text h6 {
    font-family: "ivyora-display", serif;
    font-weight: 300;
    font-size: 14px;
    letter-spacing: 2px;
    font-style: italic;
    line-height: 1.5;
    color: #000;
    margin: 0 auto 0;
}
.top-heading h5 {
    font-family: "ivyora-display", serif;
    font-weight: 300;
    font-size: 14px;
    letter-spacing: 2px;
    font-style: italic;
    text-align: center;
    line-height: 1.5;
    color: #000;
    margin: 0 auto 0;
}
a.btnn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 42px;
    padding: 0 20px;
    margin: 0.5rem auto;
    border: 1px solid #aaa;
    font-family: 'Chiswick Poster';
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1px;
    color: #000;
    transition: all 0.6s;
}
a.btnn:hover {
    border: 1px solid #000;
    color: #fff;
    background: #000;
}
a {
    display: inline-block;
    text-decoration: none;
}
/* ============================================================
   CURTAIN ANIMATION
   ============================================================ */
.c-folding-animation {
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 99999;
    pointer-events: none;
}
.my-element-to-clip {
    height: 125vh;
    background: #bc001b;
    clip-path: url(#myCurve);
    transition: height 1.5s cubic-bezier(.5, .2, .1, 1.14);
}
.c-folding-animation.actv .my-element-to-clip {
    height: 0;
    pointer-events: none;
}
.c-folding-animation.actv {
    pointer-events: none;
    /* Hide wrapper after height transition completes — delay matches transition duration */
    visibility: hidden;
    transition: visibility 0s linear 1.5s;
}
.my-element-to-clip img {
    width: 150px;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
}
/* FOOTER */
footer {
    background: #fff;
	border-top: 0.5px solid #bc001b;
}
footer .ftr-main-flex {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 25px 0;
}
footer .ftr-main-flex ul {
    display: flex;
    align-items: center;
    gap: 0 60px;
}
footer .ftr-main-flex ul li a {
    font-family: "Montserrat", sans-serif;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: #bc001b;
    font-weight: 400;
    transition: all .3s ease-in-out;
}
footer .ftr-main-flex ul li a:hover {
    transform: translatey(-2px);
}
footer .ftr-main-flex .left ul {
    justify-content: flex-start;
}
footer .ftr-main-flex .right ul {
    justify-content: flex-end;
}
footer .ftr-main-flex .left {
    flex: 1;
}
footer .ftr-main-flex .mid {
    flex: 1;
    text-align: center;
}
footer .ftr-main-flex .right {
    flex: 1;
}
footer .ftr-main-flex .mid img {
    width: 50px;
}
/* FOOTER */
/* HERO SECTION */
.hero {
    height: 100vh;
    overflow: hidden;
}
.hero img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
/* HERO SECTION */
/* HOME SECTION TWO */
.hm-section2 {
    padding: 50px 0 150px;
    text-align: center;
	max-width: 330px;
	margin: 0 auto;
}
.hm-section2-2 {
    padding: 50px 0 0;
    text-align: center;
	max-width: 330px;
	margin: 0 auto;
}
.hm-section2-3 {
    padding: 0 0 150px;
    text-align: center;
	max-width: 530px;
	margin: 0 auto;
}
.sec2-content .top-heading {
    max-width: 640px;
    margin: auto;
}
.sec2-content .para-text {
    max-width: 450px;
    margin: 40px auto 30px;
}
/* HOME SECTION TWO */
/* HOME SECTION THREE */
.hm-section3 {
    padding: 150px 0 80px;
}
.hm-sec3-flex {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0 160px;
}
/* Left image — fixed frame */
.hm-sec3-flex .img-left {
    position: relative;
    width: 390px;
    height: 519px;
    flex-shrink: 0;
}
.hm-sec3-flex .img-left img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
/* Absolute overlay image — fixed frame */
.hm-sec3-flex .img-abs {
    position: absolute;
    top: -30%;
    right: -50%;
    width: 270px;
    height: 380px;
}
.hm-sec3-flex .img-abs img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
/* Right image — fixed frame */
.hm-sec3-flex .img-right {
    position: relative;
    z-index: 2;
    width: 400px;
    height: 270px;
    flex-shrink: 0;
}
.hm-sec3-flex .img-right img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
/* HOME SECTION THREE */
/* HOME SECTION SEVEN */
.hm-section7 {
    padding: 100px 0 0;
}
.hm-section7 .container-fluid {
    padding: 0 !important;
}
.hm-section7 .row {
    align-items: stretch;
    margin: 0 !important;
    --bs-gutter-x: 0;
    min-height: 600px;
}
.hm-section7 .row > div {
    padding: 0 !important;
    align-self: stretch;
}
.hm-section7 .left {
    overflow: hidden;
    height: 100%;
    max-height: 620px;
    min-height: 500px;
}
.hm-section7 .left img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.hm-section7 .right {
    overflow: hidden;
    height: 100%;
    max-height: 620px;
    min-height: 500px;
}
.hm-section7 .right img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.hm-section7 .mid {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    padding: 40px 20px;
}
.hm-section7 .mid .btnn-wrap {
    margin-top: 30px;
}
.hm-section7 .top-heading h2 em.line-plume {
    line-height: 1.6;
}
.hm-section7 .top-heading h2 em.line-plume small {
    font-family: 'Salty Feathers';
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0px;
    font-size: 66px;
    line-height: 1.6;
}
.top-heading h2 em.line-plume {
    overflow: visible;
}
/* HOME SECTION SEVEN */
/* ================================================
   ABOUT SEC BOTTOM
   ================================================ */
.about-sec-btm {
    padding: 180px 0 180px;
    background: #fff;
    margin-bottom: -1px;
}

/* Limit container width for both section variants */
.about-sec-btm .container {
    max-width: 1000px;
}

/* Override Bootstrap row with custom flexbox */
.abt-btm-row1,
.abt-btm-row2 {
    display: flex;
    align-items: center;
    gap: 200px;
    flex-wrap: nowrap;
}

/* Row 2 : reverse order + top spacing */
.abt-btm-row2 {
    margin-top: 200px;
    flex-direction: row-reverse;
}

/* Neutralize Bootstrap .row > * overrides */
.abt-btm-row1 > .about-btm-left,
.abt-btm-row1 > .about-btm-right,
.abt-btm-row2 > .about-btm-left,
.abt-btm-row2 > .about-btm-right {
    width: auto;
    max-width: none;
    padding-right: 0;
    padding-left: 0;
}

/* ------------------------------------------------
   Image block
   Total visual width: 530px (440px main + 90px small overflow)
   padding-bottom absorbs the small image bottom overflow
   ------------------------------------------------ */
.abt-btm-row1 > .about-btm-left,
.abt-btm-row2 > .about-btm-left {
    flex-shrink: 0;
    width: 440px;
    max-width: 440px;
    position: relative;
    padding-bottom: 48px;
}

/* Main image wrapper — dimensions live here, not on <img> */
.abt-left-img-main {
    position: relative;
    width: 440px;
}

/* ------------------------------------------------
   Fixed-size containers for both images
   <img> fills the container via object-fit: cover
   so the layout is immune to the uploaded image dimensions
   ------------------------------------------------ */
.abt-img-wrap {
    overflow: hidden;
    display: block;
}

.abt-img-wrap--main {
    width: 400px;
    height: 546px;
}

.abt-img-wrap--small {
    width: 196px;
    height: 276px;
}

/* Images fill their fixed container — never stretch the layout */
.abt-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Small image : bottom-right of main
   - overlaps 130px horizontally
   - overlaps vertically, sticks out 48px below */
.about-left-img-sm {
    position: absolute;
    bottom: 0;
    right: -60px;
}

/* ------------------------------------------------
   Text block : centered vertically, offset 88px
   bottom to align with main image center
   ------------------------------------------------ */
.abt-btm-row1 > .about-btm-right,
.abt-btm-row2 > .about-btm-right {
    flex: 1;
    max-width: 370px;
    align-self: center;
    padding-bottom: 88px;
}

.about-btm-right h3 {
    font-family: "Salty Feathers";
    font-size: 70px;
	color: #bc001b;
}

.about-btm-right h4 {
    margin-top: 40px;
    font-family: "Montserrat", sans-serif;
    text-transform: uppercase;
    font-size: 12px;
    letter-spacing: 3px;
    font-weight: 500;
    margin-bottom: 20px;
}

.about-btm-right h5 {
    font-family: "ivyora-display", serif;
    font-weight: 300;
    letter-spacing: 2px;
    font-style: italic;
    font-size: 20px;
    margin-bottom: 15px;
}

.about-btm-right p {
    font-family: "Montserrat", sans-serif;
    font-size: 12px;
    line-height: 1.7;
    letter-spacing: 0.5px;
    color: #000;
    text-align: left;
    font-weight: 300;
	margin: 0 auto;
}

/* NOTE: .about-btm-right p br { display: none } intentionally removed
   — nl2br() generates <br /> tags from WPBakery textarea newlines,
   hiding them would cancel the line break rendering */

/* ================================================
   ABOUT SEC BOTTOM ALT (white background variant)
   Inherits all layout rules above — only bg differs
   ================================================ */
.about-sec-btm-alt {
    padding: 0 0 180px;
    background: #fff;
}

.about-sec-btm-alt .container {
    max-width: 1000px;
}

/* ------------------------------------------------
   Optional italic text block (e.g. dress code)
   Displayed below the main <p>, ivyora-display italic
   ------------------------------------------------ */
.about-btm-right .abt-text-italic {
    font-family: "ivyora-display", serif;
    font-style: italic;
    font-weight: 300;
    font-size: 14px;
    letter-spacing: 2px;
	line-height: 1.5;
    text-transform: none;
    margin-top: 0px;
    color: #000;
}
/* ================================================
   ABOUT SEC 5
   ================================================ */
.about-sec5 {
    padding-top: 150px;
}
/* ============================================================
   CONTACT FORM WRAPPER
   ============================================================ */
.hed-contact-wrap {
    max-width: 900px;
    margin: 0 auto;
    padding: 100px 0 180px;
}
.contact-input {
    margin: 0 0 50px 0 !important;
    position: relative;
    z-index: 1;
}
.hed-contact-wrap .row {
    position: relative;
    z-index: 1;
}
/* ============================================================
   LABELS
   ============================================================ */
.contact-input label {
    display: block;
    font-family: "Montserrat", sans-serif;
    font-size: 10px;
    font-weight: 300;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #282828;
    margin-bottom: 14px;
}
.contact-input label span, .contact-input label span.wpcf7-required, .contact-input label abbr, .contact-input label abbr.wpcf7-required, .contact-input .wpcf7-form-control-wrap abbr, .contact-input .wpcf7-form-control-wrap abbr.wpcf7-required {
    color: #7a273d !important;
    text-decoration: none !important;
}
/* ============================================================
   INPUTS / TEXTAREA / SELECT
   ============================================================ */
.contact-input input, .contact-input textarea, .contact-input select {
    font-family: "Montserrat", sans-serif;
    font-weight: 100;
    font-size: 11px;
    width: 100%;
    height: 44px;
    background: transparent;
    color: #282828;
    border: 1px solid #aaa;
    padding: 0 8px;
    text-transform: none;
    letter-spacing: 0.5px;
    outline: none;
    appearance: none;
    -webkit-appearance: none;
    border-radius: 0;
    transition: border-color 0.3s ease;
    display: block;
}
.contact-input input:focus, .contact-input textarea:focus, .contact-input select:focus {
    border: 1px solid #f0ede9;
}
.contact-input textarea {
    height: 150px;
    resize: none;
    padding: 8px;
}
/* ============================================================
   DATE FIELD
   ============================================================ */
.contact-input input[type="date"] {
    color: #282828;
}
.contact-input input[type="date"]::-webkit-calendar-picker-indicator {
    opacity: 0.4;
    cursor: pointer;
}
/* ============================================================
   REMOVE NATIVE BROWSER UI
   ============================================================ */
.contact-input input[type="number"]::-webkit-inner-spin-button, .contact-input input[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
.contact-input input[type="number"] {
    -moz-appearance: textfield;
}
.contact-input input::-webkit-credentials-auto-fill-button, .contact-input input::-webkit-contacts-auto-fill-button {
    display: none;
    visibility: hidden;
    pointer-events: none;
}
/* ============================================================
   LUXURY CUSTOM SELECT
   ============================================================ */
.hed-select-wrapper {
    position: relative;
    width: 100%;
    z-index: 50;
}
.hed-select-wrapper.open {
    z-index: 500;
}
.hed-select-selected {
    font-family: "Montserrat", sans-serif;
    font-weight: 100;
    font-size: 11px;
    text-transform: none;
    letter-spacing: 0.5px;
    color: #282828;
    border: 1px solid #aaa;
    height: 44px;
    padding: 0 8px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    transition: border-color 0.3s ease;
    background: transparent;
}
.hed-select-selected::after {
    display: none;
}
.hed-select-text {
    flex: 1;
}
.hed-select-arrow {
    display: inline-block;
    width: 12px;
    height: 7px;
    flex-shrink: 0;
    margin-left: 12px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 7' fill='none'%3E%3Cpath d='M1 1L6 6L11 1' stroke='%23282828' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: contain;
    transform-origin: center;
}
.hed-select-wrapper.open .hed-select-selected {
    border: 1px solid #f0ede9;
}
/* List détachée dans le body */
.hed-select-list--detached {
    position: absolute;
    background: #ffffff;
    border: 1px solid #f0ede9;
    list-style: none;
    margin: 0;
    padding: 0;
    z-index: 99999;
    overflow: visible;
    display: none;
}
.hed-select-list--detached li {
    font-family: "Montserrat", sans-serif;
    font-weight: 100;
    font-size: 11px;
    text-transform: none;
    letter-spacing: 0.5px;
    color: #282828;
    padding: 14px 20px;
    cursor: pointer;
    border-bottom: 1px solid #f0ede9;
	border-top: 0px solid #f0ede9;
	border-left: 0px solid #f0ede9;
	border-right: 0px solid #f0ede9;
    background: #ffffff;
    position: relative;
    z-index: 1;
    transition: background 0.25s ease, letter-spacing 0.35s ease;
}
.hed-select-list--detached li:last-child {
    border-bottom: none;
}
.hed-select-list--detached li:hover {
    background: #f9f8f3 !important;
    letter-spacing: 1px;
}
/* ============================================================
   SUBMIT BUTTON
   ============================================================ */
.submit_btn input[type="submit"] {
    font-family: 'Chiswick Poster';
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #000;
    background: transparent;
    border: 1px solid #aaa;
    padding: 12px 30px;
    width: auto;
    cursor: pointer;
    transition: all 0.5s ease;
    outline: none;
    appearance: none;
    border-radius: 0;
}
.submit_btn input[type="submit"]:hover {
    background: #000;
    border-color: #000;
    color: #fff;
}
/* ============================================================
   CF7 VALIDATION
   ============================================================ */
.wpcf7-not-valid-tip {
    font-family: "Montserrat", sans-serif;
    font-size: 10px;
    color: #bc001b;
    margin-top: 8px;
    letter-spacing: 1px;
}
.wpcf7-response-output {
    font-family: "Montserrat", sans-serif;
    font-size: 11px;
    letter-spacing: 1px;
    border: none !important;
    padding: 10px 0 !important;
    margin: 10px 0 0 !important;
}
/* THANK YOU PAGE */
.thank_you_page_wrapper {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 80px 0 0;
}
.thank_you_page_wrapper > p:empty {
    display: none;
}
.thank_you_page_wrapper h1 {
    font-family: 'Chiswick Poster';
    font-size: 10vw;
    text-transform: uppercase;
    text-align: center;
}
/* SERVICE SECTION BOTTOM */
.srv-section-btm {
    padding: 150px 0;
    text-align: center;
}
.srv-btm-content .top-heading {
    max-width: 640px;
    margin: auto;
}
.srv-btm-content .para-text {
    max-width: 500px;
    margin: 40px auto 30px;
}
#rsvp {
    padding: 150px 0 0;
}
/* SERVICE SECTION BOTTOM */
/* ============================================================
   INNER BANNER
   ============================================================ */
.inner-banner-sec {
    padding: 120px 0;
    position: relative;
    width: 100vw;
    margin-left: calc(-50vw + 50%);
    overflow: hidden;
}
body.page-id-12 .inner-banner-sec {
    padding: 80px 0;
}
.inner-banner-sec .row {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
}
.inner-banner-sec .row > [class*="col-"] {
    padding-left: 0;
    padding-right: 0;
}
.inner-banner-sec h1 {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Chiswick Poster';
    font-size: 112px;
    letter-spacing: 6px;
    font-weight: 100;
    text-transform: uppercase;
    z-index: 99;
    white-space: nowrap;
    margin: 0;
    pointer-events: none;
}
.inner-banner-btn {
    text-align: center;
    margin-top: 2rem;
}
/* ============================================================
   INNER BANNER PORTRAIT
   ============================================================ */
.inner-banner-sec--portrait {
    position: relative;
}

.inner-banner-sec--portrait h1 {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Chiswick Poster';
    font-size: 112px;
    letter-spacing: 6px;
    font-weight: 100;
    text-transform: uppercase;
    color: #fff;
    mix-blend-mode: difference;
    z-index: 999;
    white-space: nowrap;
    margin: 0;
    pointer-events: none;
}
.inner-banner-sec--portrait .inner-banner-img-left {
    text-align: left;
}
.inner-banner-sec--portrait .inner-banner-img-mid {
    text-align: center;
}
.inner-banner-sec--portrait .inner-banner-img-right {
    text-align: right;
}
.inner-banner-img-container {
    overflow: hidden;
    position: relative;
    display: inline-block;
}
.inner-banner-img-container img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    max-width: none;
}
.inner-banner-img-container--side {
    width: 365px;
    height: 531px;
}
.inner-banner-img-container--mid {
    width: 250px;
    height: 364px;
}
/* ============================================================
   MENTIONS LÉGALES 
   ============================================================ */
.ml-container {
    max-width: 820px;
    margin: 0 auto;
    padding: 0 40px 120px;
}
.ml-container h2 {
    font-family: 'Chiswick Poster';
    font-weight: 200;
    font-size: 26px;
    margin-top: 60px;
    margin-bottom: 20px;
    color: #000;
    letter-spacing: 0.5px;
}
.ml-container h3 {
    font-family: "Montserrat", sans-serif;
    font-weight: 400;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-top: 40px;
    margin-bottom: 20px;
    color: #000;
}
.ml-container p {
    font-family: "Montserrat", sans-serif;
    font-weight: 300;
    font-size: 14px;
    line-height: 1.8;
    margin-bottom: 18px;
    text-align: justify;
    color: #333;
}
.ml-container a {
    color: #1a1a1a;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: opacity 0.3s ease;
}
.ml-container a:hover {
    opacity: 0.6;
}
.ml-container ul {
    list-style: none;
    padding-left: 0;
    margin-bottom: 18px;
}
.ml-container ul li {
    font-family: "Montserrat", sans-serif;
    font-weight: 300;
    font-size: 14px;
    line-height: 1.8;
    padding-left: 20px;
    position: relative;
    margin-bottom: 8px;
    color: #333;
}
.ml-container ul li::before {
    content: '—';
    position: absolute;
    left: 0;
    color: #999;
}
.ml-separator {
    width: 40px;
    height: 1px;
    background: #ccc;
    margin: 50px 0;
}
.ml-info-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px 40px;
    margin-bottom: 24px;
    font-size: 14px;
}
.ml-info-grid dt {
    font-family: "Montserrat", sans-serif;
    color: #999;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    margin-top: 12px;
}
.ml-info-grid dd {
    font-family: "Montserrat", sans-serif;
    font-weight: 300;
    color: #1a1a1a;
    margin-bottom: 4px;
}
.ml-footer-note {
    margin-top: 80px;
    padding-top: 30px;
    border-top: 1px solid #e5e5e5;
    font-family: "Montserrat", sans-serif;
    font-size: 13px;
    font-weight: 300;
    color: #999;
    text-align: center;
}
#sb_instagram #sbi_images {
    padding: 0;
}
#sb_instagram .sbi_type_carousel .fa-clone {
    display: none !important;
}
#sb_instagram .sbi_type_carousel .svg-inline--fa.fa-play, #sb_instagram .sbi_type_video .svg-inline--fa.fa-play, .sbi_type_carousel svg.fa-clone {
    display: none !important;
}
/* ============================================================
   FULLSCREEN BANNER
   100vh × 100vw image with parallax.
   The wrapper clips the image overflow caused by parallax.
   ============================================================ */
#hed-fullscreen-banner {
    padding: 0 0;
}
.hed-fullscreen-banner {
    position: relative;
    width: 100vw;
    margin-left: calc(-50vw + 50%);
    height: 100vh;
    height: 100dvh;
    overflow: hidden;
}
.hed-fullscreen-banner__img-wrap {
    position: absolute;
    top: -100px;
    left: 0;
    right: 0;
    bottom: -100px;
    overflow: hidden;
}
.hed-fullscreen-banner__img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.nav-plume-text {
    font-family: 'Salty Feathers';
    font-weight: 400;
    font-size: 46px;
    color: #bc001b;
    text-transform: none;
}
/* ====================================
   PORTFOLIO PAGE
   ==================================== */
/* --- Full-width page wrapper --- */
.portfolio-listing-page {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    max-width: none !important;
    padding: 0 !important;
}
.portfolio-listing-page :where(.container, .container-fluid, .vc_row, .wpb_row, .wpb_wrapper) {
    max-width: none !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}
/* --- Hero / intro section --- */
.portfolio-listing-page .port-sec1 {
    padding: 120px 0 30px;
    text-align: center;
}
.portfolio-listing-page .port-sec1 h1 {
    font-family: 'Chiswick Poster';
    font-size: 110px;
    font-weight: 200;
    color: #000;
    text-align: center;
    text-transform: uppercase;
    margin-bottom: 24px;
}
.portfolio-listing-page .port-sec1 h1 em {
    font-style: normal;
    display: inline-block;
    /* opacity and transform handled by GSAP */
}
.portfolio-listing-page .port-sec1 p {
    font-family: "Montserrat", sans-serif;
    font-weight: 100;
    font-size: 20px;
    line-height: 1.4;
    text-align: center;
    max-width: 665px;
    margin: 0 auto 10px;
    color: #181818;
}
/* --- Grid --- */
.portfolio-listing-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 90px;
    padding: 90px;
    box-sizing: border-box;
    justify-items: stretch;
    align-items: stretch;
}
.portfolio-listing-grid > *:not(.portfolio-listing-thumb):not(a) {
    display: contents !important;
}
.portfolio-listing-grid p {
    display: none !important;
}
/* --- Thumbnail item --- */
.portfolio-listing-thumb {
    position: relative;
    display: block;
    overflow: hidden;
    aspect-ratio: 360 / 530;
    background: #fff;
    cursor: pointer;
    text-decoration: none;
}
.portfolio-listing-thumb img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 0 !important;
    transform: scale(1.001);
    transition: transform 1.6s cubic-bezier(.16, .72, .1, .98);
}
.portfolio-listing-thumb:hover img {
    transform: scale(1.012);
}
.portfolio-listing-thumb__info {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 35px 30px 30px;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.45) 0%, rgba(0, 0, 0, 0.18) 35%, rgba(0, 0, 0, 0.05) 60%, transparent 100%);
    opacity: 0;
    transition: opacity 0.8s cubic-bezier(0.16, 0.72, 0.1, 0.98);
    pointer-events: none;
    backdrop-filter: blur(1px);
}
.portfolio-listing-thumb:hover .portfolio-listing-thumb__info {
    opacity: 1;
}
.portfolio-listing-thumb__info h3 {
    font-family: 'sackersGothic';
    color: #fff;
    font-size: 11px;
    margin: 0;
    font-weight: 400;
    letter-spacing: 0.5px;
    text-align: center;
    text-transform: uppercase;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
    opacity: 0.95;
}
.portfolio-listing-page .portfolio-listing-thumb {
    pointer-events: auto !important;
    cursor: pointer !important;
}
/* --- GSAP Lightbox --- */
.port-lightbox {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, .94);
    opacity: 0;
    visibility: hidden;
    transition: opacity .45s ease, visibility .45s ease;
    cursor: zoom-out;
}
.port-lightbox.active {
    opacity: 1;
    visibility: visible;
}
.port-lightbox__img {
    max-width: 88vw;
    max-height: 88vh;
    border-radius: 0 !important;
    box-shadow: none;
    transform: none;
    transition: none;
}
.port-lightbox__img.imgA {
    position: relative;
    z-index: 2;
}
.port-lightbox__img.imgB {
    position: absolute;
    z-index: 1;
}
.port-lightbox__btn, .port-lightbox__close {
    position: fixed;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .18);
    backdrop-filter: blur(4px);
    opacity: .9;
    transition: opacity .2s ease;
    text-decoration: none;
    cursor: pointer;
}
.port-lightbox__btn:hover, .port-lightbox__close:hover {
    opacity: 1;
}
.port-lightbox__btn--prev {
    left: 24px;
    top: 50%;
    transform: translateY(-50%);
}
.port-lightbox__btn--next {
    right: 24px;
    top: 50%;
    transform: translateY(-50%);
}
.port-lightbox__close {
    right: 22px;
    top: 18px;
    font-size: 22px;
    line-height: 1;
    color: rgba(255, 255, 255, 0.6);
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.18);
    opacity: 0.7;
    transition: color 0.25s ease, opacity 0.25s ease, background 0.25s ease;
}
.port-lightbox__close:hover {
    color: #fff;
    opacity: 1;
    background: rgba(255, 255, 255, 0.15);
}
.port-lightbox__icon {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: #fff;
    stroke-width: 2;
}
/* ================================================
   PAGE TITLE SECTION — text only, no image
   ================================================ */
.page-title-sec {
    padding: 180px 0 0;
}

.page-title-sec .title h1 {
    font-family: 'Chiswick Poster';
    font-size: 110px;
    font-weight: 200;
    color: #bc001b;
    text-align: center;
    text-transform: uppercase;
    margin-bottom: 24px;
}

.page-title-sec .title h1 em {
    font-style: normal;
    display: inline-block;
    /* opacity and transform handled by GSAP */
}
/* ============================================================
   HEBERGEMENTS PAGE — heb-*
   ============================================================ */
:root {
    --heb-red:   #bc001b;
    --heb-grey:  #e8e3da;
    --heb-muted: #7a7269;
}
.heb-header {
    text-align: center;
    padding: 120px 40px 40px;
}
.heb-eyebrow {
    font-family: "Montserrat", sans-serif;
    font-weight: 400;
    font-size: 13px;
    letter-spacing: .32em;
    text-transform: uppercase;
    color: var(--heb-red);
    margin-bottom: 20px;
	display: none;
}
.heb-title {
    font-family: 'Chiswick Poster', serif;
    font-weight: 200;
    font-size: clamp(82px, 7vw, 110px);
    letter-spacing: 5px;
    text-transform: uppercase;
    line-height: 1.15;
    color: #000;
    margin: 0;
}
.heb-intro {
    font-family: 'Atlas Grotesk', sans-serif;
    font-weight: 100;
    font-size: 14px;
    line-height: 2;
    color: var(--heb-muted);
    max-width: 520px;
    margin: 24px auto 0;
}
.heb-liste {
    max-width: 1100px;
    margin: 0 auto;
    padding: 70px 40px 100px;
}
.heb-card {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    border-bottom: 1px solid var(--heb-grey);
    padding: 60px 0;
}
.heb-card:first-child { padding-top: 0; }
.heb-card:last-child  { border-bottom: none; }
.heb-card__img-wrap {
    position: relative;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    background: var(--heb-grey);
}
.heb-card__img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transform: scale(1);
    transition: transform 1.5s cubic-bezier(.43, .05, .57, .95);
}
.heb-card:hover .heb-card__img-wrap img {
    transform: scale(1.03);
    transition: transform 3s cubic-bezier(.43, .05, .57, .95);
}
.heb-card__img-link {
    display: block;
    width: 100%;
    height: 100%;
    overflow: hidden;
}
.heb-card__img-placeholder {
    width: 100%;
    height: 100%;
    background: var(--heb-grey);
}
.heb-card__badge {
    position: absolute;
    bottom: 16px;
    left: 16px;
    background: rgba(0, 0, 0, .72);
    color: #fff;
    font-family: 'Atlas Grotesk', sans-serif;
    font-weight: 100;
    font-size: 10px;
    letter-spacing: .22em;
    text-transform: uppercase;
    padding: 7px 14px;
}
.heb-card__info {
    padding: 0 0 0 56px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.heb-card__categorie {
    font-family: "Montserrat", sans-serif;
    font-weight: 400;
    font-size: 10px;
    letter-spacing: .28em;
    text-transform: uppercase;
    color: var(--heb-red);
    margin: 0 0 12px;
}
.heb-card__nom {
    font-family: 'Chiswick Poster', serif;
    font-weight: 200;
    font-size: clamp(24px, 2.8vw, 36px);
    letter-spacing: 2px;
    text-transform: uppercase;
    line-height: 1.2;
    color: #000;
    margin: 0 0 12px;
}
.heb-card__stars {
    display: flex;
    gap: 4px;
    margin-bottom: 20px;
}
.heb-star {
    color: var(--heb-red);
    font-size: 12px;
}
.heb-star--empty {
    color: var(--heb-grey);
}
.heb-card__desc {
    font-family: "Montserrat", sans-serif;
    font-weight: 300;
    font-size: 13px;
    line-height: 2;
    color: var(--heb-muted);
    max-width: 380px;
    margin: 0 0 28px;
}
.heb-card__meta {
    list-style: none;
    padding: 0;
    margin: 0;
    padding-top: 22px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.heb-card__meta li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-family: "Montserrat", sans-serif;
    font-weight: 300;
    font-size: 13px;
    line-height: 1.7;
    color: #000;
}
.heb-meta-icon {
    color: var(--heb-red);
    font-size: 13px;
    flex-shrink: 0;
    margin-top: 2px;
}
.heb-card__meta a {
    color: #000;
    text-decoration: none;
    position: relative;
}
.heb-card__meta a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 0.5px;
    background: var(--heb-red);
    transition: width .4s cubic-bezier(.16, .72, .1, .98);
}
.heb-card__meta a:hover::after {
    width: 100%;
}
.heb-empty {
    font-family: "Montserrat", sans-serif;
    font-weight: 300;
    font-size: 13px;
    color: var(--heb-muted);
    text-align: center;
    padding: 60px 40px;
}
/* ============================================================
   PASSWORD GATE PAGE
   ============================================================ */
.gate-body {
    margin: 0;
    padding: 0;
    overflow: hidden;
    background: #1a160f;
}
.gate-bg {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
}
.gate-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}
.gate-bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        rgba(18, 14, 9, 0.40) 0%,
        rgba(18, 14, 9, 0.58) 100%
    );
}
.gate-layout {
    position: fixed;
    inset: 0;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px 20px;
}
.gate-monogram {
    margin-bottom: 36px;
    opacity: 0;
    transform: translateY(12px);
    animation: gateMonoIn 0.9s cubic-bezier(.16,.72,.1,.98) 0.2s forwards;
}
.gate-monogram img {
    width: clamp(80px, 10vw, 130px);
    height: auto;
    display: block;
    filter: brightness(0) invert(1);
}
.gate-card {
    width: 100%;
    max-width: 400px;
    text-align: center;
    opacity: 0;
    transform: translateY(16px);
    animation: gateCardIn 0.9s cubic-bezier(.16,.72,.1,.98) 0.45s forwards;
}
.gate-card-title {
    font-family: 'Cormorant Garamond', 'ivyora-display', Georgia, serif;
    font-size: 24px;
    font-weight: 300;
    font-style: italic;
    color: #fff;
    letter-spacing: 0.03em;
    margin-bottom: 6px;
}
.gate-card-sub {
    font-family: "Montserrat", sans-serif;
    font-size: 9px;
    font-weight: 300;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.55);
    margin-bottom: 36px;
}
.gate-sep {
    width: 32px;
    height: 1px;
    background: rgba(255,255,255,0.30);
    margin: 0 auto 36px;
}
.gate-field-wrap {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: stretch;
}
.gate-input-wrapper {
    position: relative;
    margin-bottom: 28px;
    width: 100%;
}
.gate-input {
    width: 100%;
    background: transparent;
    border: none;
    border-bottom: 1px solid rgba(255,255,255,0.30);
    padding: 14px 0;
    font-family: "Montserrat", sans-serif;
    font-size: 12px;
    font-weight: 300;
    letter-spacing: 0.2em;
    color: #fff;
    text-align: center;
    outline: none;
    transition: border-color 0.4s ease;
    -webkit-appearance: none;
    border-radius: 0;
}
.gate-input::placeholder {
    color: rgba(255,255,255,0.45);
    letter-spacing: 0.3em;
    font-size: 10px;
    text-transform: uppercase;
}
.gate-input:focus {
    border-bottom-color: rgba(255,255,255,0.70);
}
.gate-input:-webkit-autofill {
    -webkit-box-shadow: 0 0 0 1000px transparent inset;
    -webkit-text-fill-color: #fff;
    transition: background-color 5000s ease-in-out 0s;
}
.gate-toggle {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    cursor: pointer;
    padding: 4px;
    color: rgba(255,255,255,0.45);
    transition: color 0.2s;
    line-height: 1;
}
.gate-toggle:hover {
    color: #fff;
}
.gate-submit {
    width: 100%;
    background: transparent;
    color: #fff;
    border: 1px solid rgba(255,255,255,0.30);
    padding: 16px 32px;
    font-family: "Montserrat", sans-serif;
    font-size: 9px;
    font-weight: 400;
    letter-spacing: 0.4em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background 0.4s ease, border-color 0.4s ease;
    display: block;
}
.gate-submit:hover {
    background: rgba(255,255,255,0.10);
    border-color: rgba(255,255,255,0.60);
}
.gate-submit:disabled {
    opacity: 0.30;
    cursor: not-allowed;
}
.gate-message {
    margin-top: 20px;
    font-family: "Montserrat", sans-serif;
    font-size: 9px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    min-height: 14px;
    line-height: 1.8;
}
.gate-message--error  { color: #e8c4c4; }
.gate-message--locked { color: #e8c4c4; }
.gate-footer-note {
    position: fixed;
    bottom: 24px;
    left: 0;
    right: 0;
    text-align: center;
    font-family: "Montserrat", sans-serif;
    font-size: 8px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.25);
    z-index: 1;
}
@keyframes gateMonoIn {
    to { opacity: 1; transform: translateY(0); }
}
@keyframes gateCardIn {
    to { opacity: 1; transform: translateY(0); }
}

#goToTop {
    display: none;
}

/* ============================================================
   RESPONSIVE WEB
   ============================================================ */
@media (min-width: 1601px) {
    header .container, footer .container {
        max-width: 1740px;
    }
	.page-id-342 header .container, .page-id-342 footer .container {
  max-width: 1740px;
}
}
@media(max-width: 1370px) {
    .hm-sec9-mid {
        left: -70px;
    }
    .mid-img-main, .mid-img-main img {
        width: 26vw;
        height: 37vw;
    }
    .mid-img2, .mid-img2 img {
        width: 13vw;
        height: 18.5vw;
    }
    .mid-img2 {
        bottom: -3vw;
        left: -5.5vw;
    }
    .mid-img3, .mid-img3 img {
        width: 11.5vw;
        height: 16vw;
    }
    .mid-img3 {
        top: 3.5vw;
        right: -5.5vw;
    }
    .hm-sec9-left .left-img-main, .hm-sec9-left .left-img-main img {
        width: 17vw;
        height: 24vw;
    }
    .right-img1, .right-img1 img {
        width: 14vw;
        height: 20vw;
    }
    .right-img2, .right-img2 img {
        width: 24vw;
        height: 17vw;
    }
    .right-img2 {
        left: -17vw;
        top: -3.5vw;
    }
}
@media (max-width: 1200px) {
    .hm-sec9-mid {
        left: -5vw;
    }
    .mid-img-main, .mid-img-main img {
        width: 24vw;
        height: 34vw;
    }
    .mid-img2, .mid-img2 img {
        width: 12vw;
        height: 17vw;
    }
    .mid-img2 {
        bottom: -3vw;
        left: -5vw;
    }
    .mid-img3, .mid-img3 img {
        width: 10.5vw;
        height: 15vw;
    }
    .mid-img3 {
        top: 3vw;
        right: -5vw;
    }
    .hm-sec9-left .left-img-main, .hm-sec9-left .left-img-main img {
        width: 15.5vw;
        height: 22vw;
    }
    .right-img1, .right-img1 img {
        width: 13vw;
        height: 18.5vw;
    }
    .right-img2, .right-img2 img {
        width: 22vw;
        height: 15.5vw;
    }
    .right-img2 {
        left: -15.5vw;
        top: -3vw;
    }
    .portfolio-listing-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 60px;
        padding: 60px;
    }
    .portfolio-listing-page .port-sec1 h1 {
        font-size: 80px;
    }
    .page-title-sec .title h1 {
        font-size: 90px;
    }
}
    .about-sec3-con {
        gap: 10px;
    }
    .about-sec3-con img {
        width: 100%;
    }
}
@media(max-width: 1024px) {
    header .container, footer .container {
        max-width: 884px;
    }
    .hm-sec9-mid {
        left: -4vw;
    }
    .mid-img-main, .mid-img-main img {
        width: 22vw;
        height: 31vw;
    }
    .mid-img2, .mid-img2 img {
        width: 11vw;
        height: 16vw;
    }
    .mid-img2 {
        bottom: -3vw;
        left: -4vw;
    }
    .mid-img3, .mid-img3 img {
        width: 10vw;
        height: 14vw;
    }
    .mid-img3 {
        top: 3vw;
        right: -4vw;
    }
    .hm-sec9-left .left-img-main, .hm-sec9-left .left-img-main img {
        width: 14vw;
        height: 20vw;
    }
    .right-img1, .right-img1 img {
        width: 12vw;
        height: 17vw;
    }
    .right-img2, .right-img2 img {
        width: 20vw;
        height: 14vw;
    }
    .right-img2 {
        left: -14vw;
        top: -3vw;
    }
    footer .ftr-main-flex ul {
        gap: 0px 50px;
    }
    footer .ftr-main-flex ul li a {
        font-size: 10px;
    }
    .about-sec-btm-alt .container {
        max-width: 800px;
    }
    .abt-btm-row1 > .about-btm-left, .abt-btm-row2 > .about-btm-left {
        width: 360px;
        max-width: 360px;
    }
    .about-sec-btm, .about-sec-btm-alt {
        padding: 100px 60px 150px;

    }
    .abt-btm-row1, .abt-btm-row2 {
        gap: 80px;
    }
    .abt-btm-row2 {
        margin-top: 120px;
    }
    .about-sec3 {
        overflow: hidden;
    }
    .about-sec3-con {
        align-items: center;
    }
    .about-sec3-con .img {
        flex-shrink: 1;
        transform: none !important;
    }
    .about-sec3-con .img.portrait {
        width: 16vw;
        height: 23.5vw;
    }
    .about-sec3-con .img.paysage {
        width: 22vw;
        height: 15vw;
    }
    .about-sec5-inner {
        width: 85vw;
        height: 52vw;
    }
    .about-sec5-left .img2 {
        left: 14.5vw;
        width: 32vw;
        height: 46vw;
    }
    .about-sec5-left .img2 img {
        width: 32vw;
        height: 46vw;
    }
    .about-sec5-left .img1-abs {
        top: 10vw;
        left: 0;
        width: 18.5vw;
        height: 27vw;
    }
    .about-sec5-left .img1-abs img {
        width: 18.5vw;
        height: 27vw;
    }
    .about-sec5-right .img3 {
        top: 18vw;
        left: 45vw;
        width: 23.5vw;
        height: 34vw;
    }
    .about-sec5-right .img3 > img {
        width: 23.5vw;
        height: 34vw;
    }
    .about-sec5-right .img4-abs {
        top: 5.5vw;
        left: 60.5vw;
        width: 25.5vw;
        height: 17.5vw;
    }
    .about-sec5-right .img4-abs img {
        width: 25.5vw;
        height: 17.5vw;
    }
    .hm-section3 {
        padding: 100px 0 80px;
    }
    .hm-sec3-flex {
        gap: 0 100px;
    }
    .hm-sec3-flex .img-left {
        width: 293px;
        height: 389px;
    }
    .hm-sec3-flex .img-abs {
        width: 203px;
        height: 285px;
    }
    .hm-sec3-flex .img-right {
        width: 300px;
        height: 203px;
    }
    .inner-banner-sec--portrait {
        padding: 120px 0 100px;
    }
    .inner-banner-sec .row {
        position: relative;
    }
    .inner-banner-sec h1 {
        font-size: 72px;
    }
    .hed-contact-wrap {
        padding: 150px 20px 150px;
    }
    .inner-banner-img-container--side {
        width: 280px;
        height: 407px;
    }
    .inner-banner-img-container--mid {
        width: 200px;
        height: 291px;
    }
    .heb-liste {
        padding: 60px 30px 80px;
    }
    .heb-card__info {
        padding-left: 40px;
    }
    .gate-monogram img {
        width: 110px;
    }
    .gate-card {
        max-width: 360px;
    }
}
@media(max-width: 991px) {
    .about-four-col-sec .col-flex {
        flex-wrap: wrap;
        gap: 12px;
    }
    .four-col-content {
        height: 400px;
        width: 49.3%;
    }
    .four-col-content .top-logo img {
        width: 150px;
    }
    .top-heading h2 {
        font-size: 38px;
    }
    .img-abs img {
        width: 200px;
    }
    .container {
        max-width: 900px;
    }
    .hed-port-item {
        width: 50%;
    }
    .inner-banner-sec {
        padding: 120px 0 50px;
    }
    .inner-banner-sec h1 {
        font-size: 60px;
    }
    .hm-section2 {
        padding: 120px 0;
    }
    .hm-section3 {
        padding: 120px 0;
    }
    .hm-sec3-flex {
        gap: 0 50px;
    }
    .hm-sec3-flex .img-left {
        width: 210px;
        height: 280px;
    }
    .hm-sec3-flex .img-abs {
        width: 140px;
        height: 197px;
    }
    .hm-sec3-flex .img-right {
        width: 200px;
        height: 135px;
    }
    .about-sec3-con .img.portrait {
        width: 14vw;
        height: 20.5vw;
    }
    .about-sec3-con .img.paysage {
        width: 19vw;
        height: 13vw;
    }
    /* Section 9 — collage images */
    .hm-sec9-mid {
        left: -3.5vw;
    }
    .mid-img-main, .mid-img-main img {
        width: 23vw;
        height: 33vw;
    }
    .mid-img2, .mid-img2 img {
        width: 11.5vw;
        height: 16.5vw;
    }
    .mid-img2 {
        bottom: -3vw;
        left: -4vw;
    }
    .mid-img3, .mid-img3 img {
        width: 10.5vw;
        height: 14.5vw;
    }
    .mid-img3 {
        top: 3vw;
        right: -4vw;
    }
    .hm-sec9-left .left-img-main, .hm-sec9-left .left-img-main img {
        width: 15vw;
        height: 21vw;
    }
    .right-img1, .right-img1 img {
        width: 13vw;
        height: 18vw;
    }
    .right-img2, .right-img2 img {
        width: 21vw;
        height: 15vw;
    }
    .right-img2 {
        left: -14.5vw;
        top: -3vw;
    }
    /* About sec bottom */
    .about-sec-btm {
        padding: 80px 40px 120px;
    }
    .about-sec-btm-alt {
        padding: 80px 40px 120px;
    }
    .abt-btm-row1, .abt-btm-row2 {
        gap: 40px;
    }
    .abt-btm-row2 {
        margin-top: 120px;
    }
    .abt-btm-row1 > .about-btm-left, .abt-btm-row2 > .about-btm-left {
        width: 320px;
        max-width: 320px;
        flex-shrink: 0;
    }
    /* Resize image containers at this breakpoint — img fills via object-fit: cover */
    .abt-left-img-main {
        width: 280px;
    }
    .abt-img-wrap--main {
        width: 280px;
        height: 373px; /* preserves original 440x586 ratio */
    }
    .abt-img-wrap--small {
        width: 160px;
        height: 214px; /* preserves original 236x316 ratio */
    }
    .about-btm-right h3 {
        font-size: 62px;
    }
    .about-btm-right h4 {
        margin-top: 40px;
    }
    .about-testimonials {
        padding: 120px 0;
    }
    .about-testimonials .about-testi-wrapper {
        max-width: 640px;
    }
    .about-sec5-inner {
        width: 68vw;
        height: 42vw;
    }
    .about-sec5-left .img2 {
        left: 11.5vw;
        width: 25.5vw;
        height: 37vw;
    }
    .about-sec5-left .img2 img {
        width: 25.5vw;
        height: 37vw;
    }
    .about-sec5-left .img1-abs {
        top: 8vw;
        left: 0;
        width: 15vw;
        height: 21.5vw;
    }
    .about-sec5-left .img1-abs img {
        width: 15vw;
        height: 21.5vw;
    }
    .about-sec5-right .img3 {
        top: 14.5vw;
        left: 36vw;
        width: 19vw;
        height: 27vw;
    }
    .about-sec5-right .img3 > img {
        width: 19vw;
        height: 27vw;
    }
    .about-sec5-right .img4-abs {
        top: 4.5vw;
        left: 48.5vw;
        width: 20.5vw;
        height: 14vw;
    }
    .about-sec5-right .img4-abs img {
        width: 20.5vw;
        height: 14vw;
    }
    .para-text {
        max-width: 370px;
    }
    .hm-section7 {
        padding: 120px 0 0;
    }
    .port-sec1 {
        padding: 120px 20px 60px;
        text-align: center;
    }
    .port-sec1 h1 {
        font-size: 45px;
        margin-bottom: 30px !important;
    }
    .port-sec1 p {
        font-size: 16px;
    }
    .page-title-sec {
        padding: 140px 0 0;
    }
    .page-title-sec .title h1 {
        font-size: 72px;
    }
	.hm-section2-2 {
  padding: 80px 0 0;
}
	.hm-section2-3 {
  padding: 0 0 120px;
}
}
@media (max-width: 768px) {
    .about-sec-btm {
        padding: 100px 0;
    }
    .about-sec-btm-alt {
        padding: 0 0 100px;
        margin-top: 0;
    }
    .abt-btm-row1, .abt-btm-row2 {
        flex-direction: column;
        gap: 60px;
        align-items: center;
    }
    .abt-btm-row2 {
        flex-direction: column;
        margin-top: 100px;
    }
    .abt-btm-row1 > .about-btm-left, .abt-btm-row2 > .about-btm-left {
        width: 90%;
        max-width: 375px;
        margin: 0 auto;
		padding-bottom: 38px;
    }
    /* At mobile, image block fills 80% of screen width — containers adapt accordingly */
    .abt-left-img-main {
        width: 100%;
    }
    .abt-img-wrap--main {
        width: 100%;
        height: auto;
        aspect-ratio: 440 / 586; /* maintains portrait ratio without fixed px */
    }
    .about-left-img-sm {
        bottom: -30px;
    }
    .abt-img-wrap--small {
        width: 130px;
        height: 174px; /* preserves original 236x316 ratio at smaller size */
    }
    .abt-btm-row1 > .about-btm-right, .abt-btm-row2 > .about-btm-right {
        max-width: 100%;
        padding: 0 12px;
        text-align: center;
    }
    .about-btm-right h3 {
        font-size: 60px;
    }
    .about-btm-right p {
        text-align: center;
    }
    .about-four-col-sec {
        padding: 40px 10px;
    }
    .four-col-content {
        height: auto;
        width: 100%;
    }
    .about-four-col-sec .col-flex {
        flex-direction: column;
    }
    .about-testimonials .about-testi-arrows {
        margin-top: 20px;
    }
    .about-testimonials {
        padding: 0;
    }
    .about-sec3-con {
        justify-content: center;
        gap: 12px;
        padding: 0 12px 100px;
    }
    .about-sec3-con .img {
        display: none;
    }
    .about-sec3-con .img.img3, .about-sec3-con .img.img4 {
        display: block;
        width: calc(50% - 8px);
        height: 280px;
    }
    .hm-section9 {
        justify-content: center;
    }
    .hm-sec9-left, .hm-sec9-right {
        display: none;
    }
    .hm-sec9-mid {
        position: static;
        left: 0;
        display: flex;
        gap: 12px;
        width: 100%;
        padding: 0 12px;
    }
    .mid-img-main, .mid-img2 {
        position: static;
        width: 50%;
        height: 280px;
    }
    .mid-img-main img, .mid-img2 img {
        width: 100%;
        height: 100%;
    }
    .mid-img3 {
        display: none;
    }
    footer .ftr-main-flex {
        flex-direction: column;
        gap: 0;
        padding: 30px 0;
    }
    footer .ftr-main-flex .mid {
        order: -1;
        padding-bottom: 0px;
    }
    footer .ftr-main-flex .left, footer .ftr-main-flex .right {
        display: none;
    }
    footer .ftr-main-flex ul {
        gap: 0 20px;
    }
    footer .ftr-main-flex ul li a {
        font-size: 9px;
    }
    header nav .logo img {
        width: 120px;
    }
    /* Hide center image - just bg + links */
    .hm-section7 {
        padding: 79px 0;
    }
    .hm-section7 .mid {
        margin-top: 60px;
        padding: 40px 20px 0;
    }
    .hm-section7 .row {
        min-height: 0;
    }
    .hm-section7 .left, .hm-section7 .right {
        max-height: none;
    }
    .hm-section7 .right {
        display: none;
    }
    .hm-section7 .right img {
        display: none;
    }
    .about-sec5 {
        padding: 0 0 100px;
    }
    .about-sec5-inner {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 12px;
        width: 100%;
        height: auto;
        padding: 0 12px;
    }
    .about-sec5-left, .about-sec5-right {
        display: contents;
    }
    .about-sec5-left .img2, .about-sec5-left .img1-abs, .about-sec5-right .img3, .about-sec5-right .img4-abs {
        position: relative;
        top: auto;
        left: auto;
        right: auto;
        bottom: auto;
        width: 100%;
        height: 220px;
    }
    .about-sec5-left .img2 img, .about-sec5-left .img1-abs img, .about-sec5-right .img3 > img, .about-sec5-right .img4-abs img {
        width: 100%;
        height: 220px;
        object-fit: cover;
        object-position: center;
        display: block;
    }
    footer .ftr-main-flex .mid img {
        width: 60px;
    }
    .hed-port-flex {
        flex-direction: column;
        gap: 5px;
    }
    .hed-port-item {
        width: 100%;
        aspect-ratio: 2/3;
        padding-bottom: 0;
    }
    /* Name always visible on mobile (no hover on touch devices) */
    .hed-port-name {
        opacity: 1;
        transform: translateY(0);
    }
    .hed-port-overlay {
        padding-bottom: 14px;
    }
    .inner-banner-sec {
        padding: 0 0 56px;
    }
    .inner-banner-sec h1 {
        font-size: 40px;
        white-space: normal;
        text-align: center;
        width: 100%;
    }
    .inner-banner-sec--portrait h1 {
        font-size: 70px;
    }
    .hed-contact-wrap {
        max-width: 330px;
        padding: 100px 0 100px;
    }
    .hm-section2 {
        padding: 0 0 100px;
    }
    .hm-section3 {
        padding: 0 0;
    }
    #hed-fullscreen-banner {
        padding: 0 0;
    }
    .about-sec3 {
        padding: 0;
    }
	
.hm-sec3-flex {
    flex-direction: column;
    align-items: center;
}
.hm-sec3-flex .img-right {
    display: none;
}
.hm-sec3-flex .img-left {
    position: static;
    width: 330px;
    max-width: 100%;
    height: auto;
}
.hm-sec3-flex .img-left > img {
    display: none;
}
.hm-sec3-flex .img-abs {
    position: static;
    width: 100%;
    height: auto;
    aspect-ratio: 270 / 380;
    top: auto;
    right: auto;
}
.hm-sec3-flex .img-abs img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
    .about-four-col-sec .col-flex {
        flex-wrap: wrap;
        gap: 12px;
        padding: 0;
    }
    .four-col-content {
        flex: none;
        width: 100%;
    }
    .srv-section-btm {
        padding: 60px 0 100px;
    }
    .ml-container {
        padding: 60px 24px 80px;
    }
    .ml-container h2 {
        font-size: 22px;
        margin-top: 40px;
    }
    .ml-info-grid {
        grid-template-columns: 1fr;
    }
    .inner-banner-img-container--side {
        width: 200px;
        height: 291px;
    }
    .inner-banner-img-container--mid {
        width: 160px;
        height: 233px;
    }
    #rsvp {
        padding: 100px 0 0;
    }
    .portfolio-listing-grid {
        gap: 40px;
        padding: 40px;
    }
    .portfolio-listing-page .port-sec1 {
        padding: 110px 20px 10px;
    }
    .portfolio-listing-page .port-sec1 h1 {
        font-size: 45px;
        margin-bottom: 30px;
    }
    .portfolio-listing-page .port-sec1 p {
        font-size: 18px;
    }
    .port-lightbox__btn--prev {
        left: 12px;
    }
    .port-lightbox__btn--next {
        right: 12px;
    }
    .port-lightbox__close {
        right: 12px;
        top: 12px;
    }
    .page-title-sec {
        padding: 120px 20px 0;
    }
    .page-title-sec .title h1 {
        font-size: 56px;
    }
	.nav-plume-text {
  font-size: 34px;
}
    .heb-header {
        padding: 110px 24px 30px;
    }
    .heb-card {
        grid-template-columns: 1fr;
        direction: ltr !important;
        padding: 48px 0;
        gap: 28px;
    }
    .heb-card__info {
        padding: 0;
    }
    .heb-liste {
        padding: 48px 24px 72px;
    }
    .heb-card__desc {
        max-width: 100%;
    }
    .gate-card {
        max-width: 320px;
    }
    .gate-card-title {
        font-size: 20px;
    }
    .gate-footer-note {
        bottom: 16px;
    }
    #goToTop {
        display: none;
        position: fixed;
        bottom: 24px;
        right: 20px;
        width: 44px;
        height: 44px;
        border: none;
        border-radius: 50%;
        background: #bc001b;
        color: #fff;
        cursor: pointer;
        z-index: 9999;
        align-items: center;
        justify-content: center;
        box-shadow: 0;
    }
    #goToTop svg {
        width: 18px;
        height: 18px;
        stroke: #fff;
        display: block;
    }
    #goToTop:active {
        transform: scale(0.92);
    }
}
@media(max-width: 575px) {
    .about-sec5-left img, .about-sec5-right img {
        width: 150px;
        height: 200px;
        object-fit: cover;
    }
    .about-sec5-left img, .about-sec5-right img {
        width: 150px;
        height: 200px;
        object-fit: cover;
    }
    .left-img-main img {
        width: 100%;
        height: auto;
    }
    .inner-banner-sec--portrait .inner-banner-img-left, .inner-banner-sec--portrait .inner-banner-img-right {
        display: none;
    }
    .inner-banner-sec--portrait .inner-banner-img-mid {
        text-align: center;
    }
    .inner-banner-img-container--mid {
        width: 100vw;
        height: 100vh;
        height: 100dvh;
        display: block;
    }
    .inner-banner-sec--portrait {
        position: relative;
        display: block;
        padding: 0;
    }
    .inner-banner-sec--portrait h1 {
        position: absolute;
        bottom: -19px;
        top: auto !important;
        left: 0;
        width: 100%;
        text-align: center;
        z-index: 999;
        margin-bottom: 0 !important;
    }
	.hm-section7 .top-heading h2 em.line-plume small {
  font-size: 52px;
}
    .hm-section7 .left {
        height: 100vh;
        height: 100dvh;
        max-height: none;
        min-height: 0;
    }
    .hm-section7 .left img {
        height: 100%;
        width: 100%;
        object-fit: cover;
    }
    .para-text p {
        max-width: 330px;
    }
    .portfolio-listing-grid {
        grid-template-columns: 1fr;
        gap: 20px;
        padding: 30px 20px;
    }
    .portfolio-listing-page .port-sec1 p {
        font-size: 16px;
    }
    .portfolio-listing-thumb__info h3 {
        font-size: 9px;
    }
    .port-lightbox__img {
        max-width: 92vw;
        max-height: 92vh;
    }
    .port-lightbox__btn--prev, .port-lightbox__btn--next {
        top: auto;
        bottom: 20px;
        transform: none;
    }
    .port-lightbox__btn--prev {
        left: calc(50% - 60px);
    }
    .port-lightbox__btn--next {
        right: calc(50% - 60px);
    }
    .page-title-sec {
        padding: 100px 20px 0;
    }
	 .abt-img-wrap--small {
    display: none;
  }
    .heb-title {
        font-size: 40px;
        letter-spacing: 2px;
    }
    .heb-card__nom {
        font-size: 22px;
    }
	header .logo img {
  width: 196px;
   }
    .gate-monogram img {
        width: 80px;
    }
    .gate-card {
        max-width: 290px;
    }
    .gate-card-title {
        font-size: 18px;
    }
    .gate-card-sub {
        margin-bottom: 28px;
    }
    .gate-sep {
        margin-bottom: 28px;
    }
}
/* RESPONSIVE */