/* cyrillic-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/cormorant-garamond-400-italic-cyrillic-ext.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/cormorant-garamond-400-italic-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/cormorant-garamond-400-italic-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/cormorant-garamond-400-italic-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/cormorant-garamond-400-italic-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/cormorant-garamond-400-italic-cyrillic-ext.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/cormorant-garamond-400-italic-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/cormorant-garamond-400-italic-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/cormorant-garamond-400-italic-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/cormorant-garamond-400-italic-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/cormorant-garamond-400-cyrillic-ext.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/cormorant-garamond-400-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/cormorant-garamond-400-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/cormorant-garamond-400-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/cormorant-garamond-400-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/cormorant-garamond-400-cyrillic-ext.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/cormorant-garamond-400-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/cormorant-garamond-400-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/cormorant-garamond-400-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/cormorant-garamond-400-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/cormorant-garamond-400-cyrillic-ext.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/cormorant-garamond-400-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/cormorant-garamond-400-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/cormorant-garamond-400-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/cormorant-garamond-400-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("fonts/jost-300-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* latin-ext */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("fonts/jost-300-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("fonts/jost-300-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/jost-300-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* latin-ext */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/jost-300-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/jost-300-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/jost-300-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* latin-ext */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/jost-300-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/jost-300-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


  * { box-sizing: border-box; }
  html { scroll-behavior: smooth; }
  body { margin: 0; background: #FFFFFF; }
  @keyframes gyScrollL { from { transform: translateX(0); } to { transform: translateX(-50%); } }
  @keyframes gyScrollR { from { transform: translateX(-50%); } to { transform: translateX(0); } }
  @keyframes gyFade { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
  @keyframes gyZoom { from { transform: scale(1.08); } to { transform: scale(1); } }
  /* ---- Mobile ---- */
  @media (max-width: 760px) {
    div[style*="grid-template-columns"] { grid-template-columns: 1fr !important; }
    div[style*="grid-column: span 2"] { grid-column: auto !important; }
    #accueil { height: auto !important; min-height: 0 !important; }
    #accueil > div:first-child { padding: 32px 22px 40px !important; }
    #accueil > div:last-child { height: 120vw; max-height: 560px; }
    h1 { font-size: 46px !important; }
    h2 { font-size: 34px !important; }
    nav { padding: 14px 16px !important; gap: 12px !important; }
    div[style*="padding: 96px 48px"], div[style*="padding: 96px 60px"], div[style*="padding: 84px 48px"],
    div[style*="padding: 20px 48px"], div[style*="padding: 60px 48px"], div[style*="padding: 96px 48px 50px"],
    div[style*="padding: 96px 60px 50px"] { padding: 52px 20px !important; }
    div[style*="height: 560px"] { height: 420px !important; }
    div[style*="font-size: 42px"] { font-size: 28px !important; }
  }
  @keyframes gyHeroFirst { 0% { opacity: 1; } 22% { opacity: 1; } 28% { opacity: 0; } 100% { opacity: 0; } }
  @keyframes gyHeroCycle { 0% { opacity: 0; } 3% { opacity: 1; } 22% { opacity: 1; } 28% { opacity: 0; } 100% { opacity: 0; } }
  input::placeholder, textarea::placeholder { color: #6f6353; }
  summary::-webkit-details-marker { display: none; }


/* ---- enveloppe de page (était un <div> dans le bundle) ---- */
body { background: #FFFFFF; font-family: 'Jost', sans-serif; color: #1B140F; margin: 0; }

/* ---- états :hover (issus des attributs style-hover) ---- */
.hv1:hover { opacity: 0.6; }
.hv2:hover { color: #8a6a3f; }
.hv3:hover { background: #1B140F; color: #FFFFFF; border-color: #1B140F; }
.hv4:hover { background: #E4C79E; }
.hv5:hover { transform: scale(1.06); }
.hv6:hover { transform: scale(1.03); }
.hv7:hover { transform: translateY(-6px); }

/* ---- le <h1> de chaque page garde l'apparence du <h2> d'origine ---- */
@media (max-width: 760px) { h1.titre-page { font-size: 34px !important; } }

/* ---- liens ---- */
a { text-decoration: none; color: inherit; }
a[data-card] { display: block; }

/* ---- mosaïque du portfolio : vignettes régulières, dernière rangée centrée ---- */
.portfolio-mosaique { display: flex; flex-wrap: wrap; gap: 18px; justify-content: center; }
.portfolio-mosaique > div { flex: 1 1 300px; max-width: calc(33.333% - 12px); }
@media (max-width: 900px) { .portfolio-mosaique > div { max-width: calc(50% - 9px); } }
@media (max-width: 620px) { .portfolio-mosaique > div { max-width: 100%; flex-basis: 100%; } }

/* ---- menu mobile ---- */
.gy-burger {
  display: none; flex-direction: column; justify-content: center; gap: 5px;
  width: 42px; height: 38px; padding: 0 9px; background: none; cursor: pointer;
  border: 1px solid rgba(27,20,15,0.28); border-radius: 6px; flex: none;
}
.gy-burger span {
  display: block; height: 1.5px; background: #1B140F; border-radius: 2px;
  transition: transform 0.25s ease, opacity 0.2s ease;
}
nav.gy-ouvert .gy-burger span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
nav.gy-ouvert .gy-burger span:nth-child(2) { opacity: 0; }
nav.gy-ouvert .gy-burger span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

@media (max-width: 860px) {
  .gy-burger { display: flex; }
  nav { overflow: visible !important; flex-wrap: wrap !important; }
  .gy-menu {
    display: none !important; order: 3; width: 100%;
    flex-direction: column !important; gap: 0 !important;
    margin: 14px -16px -14px; padding: 6px 0 10px;
    border-top: 1px solid rgba(169,130,90,0.22); background: rgba(255,255,255,0.96);
  }
  nav.gy-ouvert .gy-menu { display: flex !important; }
  .gy-menu > a {
    padding: 15px 22px; font-size: 13px !important;
    border-bottom: 1px solid rgba(169,130,90,0.13);
  }
  .gy-menu > a:last-child { border-bottom: none; }
}

/* ---- galeries : deux colonnes plutôt qu'une seule interminable ---- */
@media (max-width: 760px) {
  div[style*="repeat(4, 1fr)"][style*="gap: 18px"] {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  div[style*="overflow: hidden; height: 280px"] { height: 210px !important; }
}
@media (max-width: 620px) { .portfolio-mosaique > div { max-width: calc(50% - 9px); } }
@media (max-width: 430px) { .portfolio-mosaique > div { max-width: 100%; } }

/* ---- typographie mobile : les titres d'origine restaient trop grands ---- */
@media (max-width: 760px) {
  h1 { font-size: 32px !important; line-height: 1.18 !important; }
  h1.titre-page { font-size: 29px !important; }
  h2 { font-size: 26px !important; line-height: 1.2 !important; }
  h3 { font-size: 23px !important; line-height: 1.25 !important; }
  div[style*="font-size: 42px"], div[style*="font-size: 40px"] { font-size: 25px !important; }
  div[style*="font-size: 34px"] { font-size: 23px !important; }
  div[style*="font-size: 30px"] { font-size: 25px !important; }
  p { font-size: 15px !important; line-height: 1.75 !important; }
  div[style*="letter-spacing: 0.4em"] { letter-spacing: 0.22em !important; }
}

/* ---- filet de sécurité mobile ---- */
@media (max-width: 760px) {
  /* toute section à marges 48px passe à 20px, quelle que soit sa valeur verticale */
  main div[style*="px 48px"] { padding-left: 20px !important; padding-right: 20px !important; }
  /* une vignette qui s'étend sur deux rangées n'a plus de sens en colonne unique */
  div[style*="grid-row: span 2"] { grid-row: auto !important; height: 340px !important; }
  /* aucune image ne doit dépasser la largeur de l'écran */
  img { max-width: 100%; }
}

/* ---- pied de page : les 3 colonnes s'empilent, le téléphone reste sur une ligne ---- */
@media (max-width: 760px) {
  div[style*="gap: 56px"] { flex-direction: column !important; gap: 26px !important; }
  a[href^="tel:"] { white-space: nowrap; }
}

/* ---- formulaire de contact : une seule colonne sur mobile ---- */
@media (max-width: 760px) {
  #gy-form { grid-template-columns: 1fr !important; }
  #gy-form > div[style*="span 2"] { grid-column: 1 !important; }
}
html { overflow-x: hidden; }

/* ---- forfaits mariage : 5 cartes, dernière rangée centrée ---- */
.forfaits-grille { display: flex; flex-wrap: wrap; gap: 20px; justify-content: center; }
.forfaits-grille > div { flex: 1 1 280px; max-width: calc(33.333% - 14px); }
.forfaits-grille a:hover { color: #1B140F; }
@media (max-width: 900px) { .forfaits-grille > div { max-width: calc(50% - 10px); } }
@media (max-width: 620px) { .forfaits-grille > div { max-width: 100%; flex-basis: 100%; } }

/* ---- bandeaux de photos : défilement à la main ---- */
.gy-piste {
  overflow-x: auto; overflow-y: hidden;
  scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch;
  cursor: grab; scrollbar-width: thin; scrollbar-color: rgba(169,130,90,0.5) transparent;
}
.gy-piste.gy-tire { cursor: grabbing; scroll-snap-type: none; }
.gy-piste::-webkit-scrollbar { height: 6px; }
.gy-piste::-webkit-scrollbar-thumb {
  background: rgba(169,130,90,0.45); border-radius: 99px;
}
.gy-piste::-webkit-scrollbar-track { background: transparent; }
.gy-rail { animation: none !important; }
.gy-rail > img, .gy-rail > div { scroll-snap-align: center; }
.gy-piste img { user-select: none; -webkit-user-drag: none; pointer-events: none; }
.gy-indice {
  text-align: center; font-size: 11px; letter-spacing: 0.18em;
  text-transform: uppercase; color: #6f6353; margin: 0 0 44px;
}

/* ---- grille des avis : dernière rangée centrée ---- */
.avis-grille { display: flex; flex-wrap: wrap; gap: 26px; justify-content: center; }
.avis-grille > div { flex: 1 1 300px; max-width: calc(33.333% - 18px); }
@media (max-width: 760px) { .avis-grille > div { max-width: 100%; flex-basis: 100%; } }

/* ---- réseaux sociaux ---- */
a.reseau {
  display: flex; align-items: center; gap: 9px;
  color: #6b5f4e; line-height: 2;
  transition: color 0.25s ease;
}
a.reseau:hover { color: #A9825A; }
a.reseau svg { flex: none; opacity: 0.85; }
a.reseau:hover svg { opacity: 1; }

a.reseau-btn {
  display: inline-flex; align-items: center; gap: 10px;
  border: 1px solid rgba(169,130,90,0.4); border-radius: 999px;
  padding: 13px 26px; color: #1B140F;
  font-size: 12.5px; letter-spacing: 0.1em;
  transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}
a.reseau-btn:hover { background: #1B140F; color: #FFFFFF; border-color: #1B140F; }

/* pastille WhatsApp flottante */
a.wa-bulle {
  position: fixed; right: 22px; bottom: 22px; z-index: 200;
  width: 52px; height: 52px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: #EFE7D9; color: #1B140F;
  border: 1px solid rgba(169,130,90,0.45);
  box-shadow: 0 4px 18px rgba(27,20,15,0.14);
  transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}
a.wa-bulle:hover { background: #A9825A; color: #FFFFFF; transform: translateY(-2px); }
@media (max-width: 760px) { a.wa-bulle { right: 16px; bottom: 16px; } }
@media print { a.wa-bulle { display: none; } }
main { display: block; }
details > summary { list-style: none; cursor: pointer; }
details > summary::-webkit-details-marker { display: none; }
img { max-width: 100%; }


/* ---- agrandissement d'une photo au clic ---- */
.portfolio-mosaique img { cursor: zoom-in; transition: opacity 0.25s ease; }
.portfolio-mosaique > div:hover img { opacity: 0.88; }

#gy-loupe {
  position: fixed; inset: 0; z-index: 1000; display: none;
  align-items: center; justify-content: center;
  background: rgba(27, 20, 15, 0.94); padding: 28px;
  opacity: 0; transition: opacity 0.2s ease;
}
#gy-loupe.gy-visible { display: flex; opacity: 1; }
#gy-loupe img {
  max-width: 100%; max-height: 100%;
  object-fit: contain; box-shadow: 0 10px 50px rgba(0,0,0,0.5);
}
#gy-loupe figcaption {
  position: absolute; left: 0; right: 0; bottom: 20px; text-align: center;
  font-size: 12.5px; letter-spacing: 0.14em; color: #d8ccba; padding: 0 60px;
}
.gy-loupe-btn {
  position: absolute; background: none; border: 1px solid rgba(228,199,158,0.45);
  color: #E4C79E; width: 46px; height: 46px; border-radius: 50%; cursor: pointer;
  font-size: 20px; line-height: 1; display: flex; align-items: center;
  justify-content: center; transition: background 0.2s ease, color 0.2s ease;
}
.gy-loupe-btn:hover { background: #E4C79E; color: #1B140F; }
#gy-fermer { top: 20px; right: 20px; }
#gy-prec { left: 20px; top: 50%; transform: translateY(-50%); }
#gy-suiv { right: 20px; top: 50%; transform: translateY(-50%); }
@media (max-width: 620px) {
  #gy-loupe { padding: 14px; }
  #gy-prec { left: 8px; } #gy-suiv { right: 8px; }
  .gy-loupe-btn { width: 40px; height: 40px; }
  #gy-loupe figcaption { padding: 0 16px; font-size: 11.5px; }
}


/* ---- page Shooting & Branding : publications puis éditoriaux ---- */
.gy-publications {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px;
  max-width: 1220px; margin: 0 auto; padding: 0 48px; align-items: start;
}
.gy-publications .gy-presse-large { grid-column: 1 / -1; }
.gy-presse img { cursor: zoom-in; transition: opacity 0.25s ease; }
.gy-presse:hover img { opacity: 0.9; }

.gy-editoriaux {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px;
  max-width: 1220px; margin: 0 auto; padding: 0 48px;
}
.gy-editoriaux > div { height: 380px; }
.gy-editoriaux img { cursor: zoom-in; transition: opacity 0.25s ease; }
.gy-editoriaux > div:hover img { opacity: 0.88; }

.gy-defile {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px;
  max-width: 1220px; margin: 0 auto; padding: 0 48px;
}
.gy-defile > div { height: 500px; }
.gy-defile > .gy-defile-large { grid-column: 1 / -1; height: 520px; }
.gy-defile img { cursor: zoom-in; transition: opacity 0.25s ease; }
.gy-defile > div:hover img { opacity: 0.88; }

@media (max-width: 900px) {
  .gy-defile { grid-template-columns: repeat(2, 1fr); }
  .gy-defile > .gy-defile-large { height: 380px; }
  .gy-defile > div:last-child:not(.gy-defile-large) { grid-column: 1 / -1; }
  .gy-publications, .gy-editoriaux { grid-template-columns: repeat(2, 1fr); }
  .gy-publications .gy-presse-large { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .gy-publications, .gy-editoriaux, .gy-defile { padding: 0 20px !important; }
  .gy-editoriaux > div { height: 260px; }
  .gy-defile > div { height: 340px; }
  .gy-defile > .gy-defile-large { height: 260px; }
}
@media (max-width: 520px) {
  .gy-publications { grid-template-columns: 1fr; }
}
