.sh-gallery{
  --sh-ink:#203437;
  --sh-muted:#637174;
  --sh-accent:#527c78;
  --sh-radius:20px;
  max-width:1280px;
  margin:0 auto;
  padding:clamp(38px,6vw,82px) 20px;
  color:var(--sh-ink);
}
.sh-gallery *{box-sizing:border-box}
.sh-gallery__header{text-align:center;max-width:800px;margin:0 auto 34px}
.sh-gallery__eyebrow{
  margin:0 0 9px;
  color:var(--sh-accent);
  text-transform:uppercase;
  letter-spacing:.17em;
  font-size:.76rem;
  font-weight:750;
}
.sh-gallery__header h2{
  position:relative;
  margin:0 0 26px;
  font-size:clamp(2rem,4.2vw,3.45rem);
  line-height:1.06;
  text-wrap:balance;
}
.sh-gallery__header h2::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:-14px;
  width:86px;
  height:2px;
  border-radius:2px;
  background:var(--sh-accent);
  transform:translateX(-50%);
}
.sh-gallery__header p{
  color:var(--sh-muted);
  font-size:clamp(1rem,1.5vw,1.12rem);
  line-height:1.65;
}
.sh-gallery__presentation{
  margin:0 auto 10px;
  max-width:790px;
  font-weight:650;
  color:var(--sh-ink) !important;
}
.sh-gallery__invitation{
  margin:0;
}
.sh-gallery__grid{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  grid-auto-rows:225px;
  gap:14px;
}
.sh-gallery__item{
  position:relative;
  overflow:hidden;
  border:0;
  border-radius:var(--sh-radius);
  padding:0;
  background:#e7eeee;
  cursor:pointer;
  text-align:left;
  box-shadow:0 12px 34px rgba(27,54,58,.12);
  isolation:isolate;
}
.sh-gallery__item--featured{grid-column:span 8;grid-row:span 2}
.sh-gallery__item--wide{grid-column:span 4}
.sh-gallery__item--portrait{grid-column:span 4;grid-row:span 2}
.sh-gallery__item--standard{grid-column:span 4}
.sh-gallery__item--panorama{grid-column:span 8}
.sh-gallery__item img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .55s ease,filter .55s ease;
}
.sh-gallery__shade{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(5,19,21,0) 30%,rgba(5,19,21,.84) 100%);
  transition:background .45s ease;
}
.sh-gallery__text{
  position:absolute;
  inset:auto 0 0;
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:54px 20px 18px;
  color:#fff;
  transform:translateY(26px);
  transition:transform .42s ease;
}
.sh-gallery__text small{
  font-size:.69rem;
  font-weight:760;
  text-transform:uppercase;
  letter-spacing:.13em;
  opacity:.82;
}
.sh-gallery__text strong{
  font-size:clamp(1.02rem,1.5vw,1.34rem);
  line-height:1.2;
  text-wrap:balance;
}
.sh-gallery__text span{
  max-height:0;
  overflow:hidden;
  font-size:.86rem;
  line-height:1.45;
  opacity:0;
  transition:max-height .42s ease,opacity .35s ease;
}
.sh-gallery__item:hover img,
.sh-gallery__item:focus-visible img{transform:scale(1.04);filter:saturate(1.045)}
.sh-gallery__item:hover .sh-gallery__shade,
.sh-gallery__item:focus-visible .sh-gallery__shade{
  background:linear-gradient(180deg,rgba(5,19,21,.02) 18%,rgba(5,19,21,.9) 100%);
}
.sh-gallery__item:hover .sh-gallery__text,
.sh-gallery__item:focus-visible .sh-gallery__text{transform:translateY(0)}
.sh-gallery__item:hover .sh-gallery__text span,
.sh-gallery__item:focus-visible .sh-gallery__text span{max-height:70px;opacity:.94}
.sh-gallery__item:focus-visible{outline:3px solid #fff;outline-offset:-7px}
.sh-gallery__hint{text-align:center;margin:19px 0 0;color:#758184;font-size:.86rem}

.sh-lightbox{
  width:100vw;
  max-width:none;
  height:100vh;
  max-height:none;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  overflow:hidden;
}
.sh-lightbox::backdrop{background:rgba(2,10,11,.93)}
.sh-lightbox__backdrop{position:fixed;inset:0;background:rgba(2,10,11,.93)}
.sh-lightbox__panel{
  position:fixed;
  inset:0;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(48px,82px) minmax(0,1fr) minmax(48px,82px);
  align-items:center;
  padding:22px;
}
.sh-lightbox figure{
  margin:0;
  height:calc(100vh - 44px);
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}
.sh-lightbox__image-wrap{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:0;
  flex:1;
}
.sh-lightbox figure img{
  display:block;
  max-width:100%;
  max-height:calc(100vh - 180px);
  object-fit:contain;
  border-radius:13px;
  box-shadow:0 20px 75px rgba(0,0,0,.52);
}
.sh-lightbox figcaption{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
  max-width:850px;
  padding:13px 12px 0;
  color:#fff;
  text-align:center;
}
.sh-lightbox__step{
  font-size:.75rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  opacity:.65;
}
.sh-lightbox figcaption small{
  color:#b9d4d0;
  font-size:.7rem;
  font-weight:760;
  text-transform:uppercase;
  letter-spacing:.13em;
}
.sh-lightbox figcaption strong{font-size:1.16rem;line-height:1.25}
.sh-lightbox figcaption>span:last-child{font-size:.91rem;line-height:1.45;opacity:.85}
.sh-lightbox__close,.sh-lightbox__nav{
  border:0;
  color:#fff;
  background:rgba(255,255,255,.12);
  cursor:pointer;
  backdrop-filter:blur(8px);
}
.sh-lightbox__close{
  position:fixed;
  top:17px;
  right:17px;
  z-index:2;
  width:46px;
  height:46px;
  border-radius:50%;
  font-size:2rem;
  line-height:1;
}
.sh-lightbox__nav{
  justify-self:center;
  width:52px;
  height:70px;
  border-radius:14px;
  font-size:3rem;
  line-height:1;
}
.sh-lightbox__close:hover,.sh-lightbox__nav:hover,
.sh-lightbox__close:focus-visible,.sh-lightbox__nav:focus-visible{
  background:rgba(255,255,255,.24);
  outline:2px solid rgba(255,255,255,.78);
}
body.sh-lightbox-open{overflow:hidden}

@media (max-width:960px){
  .sh-gallery__grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:245px}
  .sh-gallery__item--featured{grid-column:span 2;grid-row:span 2}
  .sh-gallery__item--wide,.sh-gallery__item--portrait,.sh-gallery__item--standard{grid-column:span 1}
  .sh-gallery__item--portrait{grid-row:span 2}
  .sh-gallery__item--panorama{grid-column:span 2}
}
@media (max-width:640px){
  .sh-gallery{padding-left:14px;padding-right:14px}
  .sh-gallery__grid{grid-template-columns:1fr;grid-auto-rows:290px;gap:11px}
  .sh-gallery__item--featured,.sh-gallery__item--wide,.sh-gallery__item--portrait,
  .sh-gallery__item--standard,.sh-gallery__item--panorama{grid-column:1;grid-row:auto}
  .sh-gallery__item--featured{height:390px}
  .sh-gallery__item--portrait{height:390px}
  .sh-gallery__text{transform:none;padding:60px 16px 15px}
  .sh-gallery__text span{display:none}
  .sh-lightbox__panel{grid-template-columns:40px minmax(0,1fr) 40px;padding:8px}
  .sh-lightbox__nav{width:36px;height:56px;border-radius:11px;font-size:2.25rem}
  .sh-lightbox__close{top:9px;right:9px}
  .sh-lightbox figure{height:calc(100vh - 16px)}
  .sh-lightbox figure img{max-height:calc(100vh - 185px)}
}
@media (prefers-reduced-motion:reduce){
  .sh-gallery__item img,.sh-gallery__text,.sh-gallery__text span{transition:none}
}

/* Pavé de confiance — Savannah Gallery 3.0 */
.sh-gallery__promo{
  grid-column:span 4;
  min-height:225px;
  display:grid;
  grid-template-columns:minmax(105px, .78fr) minmax(170px, 1.35fr);
  grid-template-rows:1fr auto;
  align-items:center;
  gap:8px 20px;
  padding:18px 22px 14px;
  border:1px solid rgba(184,137,55,.55);
  border-radius:var(--sh-radius);
  background:linear-gradient(145deg,#fff 0%,#fffdf7 100%);
  box-shadow:0 12px 34px rgba(27,54,58,.09);
  overflow:hidden;
}
.sh-gallery__tourism-logo{
  grid-row:1 / 3;
  width:100%;
  max-width:132px;
  height:auto;
  justify-self:center;
  border-radius:4px;
  box-shadow:0 5px 16px rgba(22,47,51,.13);
}
.sh-gallery__brand{
  align-self:end;
  min-width:0;
  color:#416f62;
  text-align:center;
}
.sh-gallery__brand-mark{
  display:block;
  margin-bottom:-7px;
  color:#bd8c3d;
  font-size:1.55rem;
  line-height:1;
}
.sh-gallery__brand-name{
  display:block;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(1.8rem,2.7vw,2.8rem);
  font-style:italic;
  line-height:1;
  letter-spacing:-.055em;
  white-space:nowrap;
}
.sh-gallery__brand-name span{color:#426f62}
.sh-gallery__brand-wave{
  display:block;
  width:78%;
  height:9px;
  margin:6px auto 0;
  border-top:2px solid #c29447;
  border-radius:50%;
  transform:skewX(-28deg);
}
.sh-gallery__promo p{
  align-self:start;
  margin:0;
  color:var(--sh-ink);
  text-align:center;
  line-height:1.18;
}
.sh-gallery__promo p strong,
.sh-gallery__promo p span{display:block}
.sh-gallery__promo p strong{
  color:#b78438;
  font-size:clamp(1rem,1.65vw,1.28rem);
}
.sh-gallery__promo p span{
  margin-top:3px;
  font-size:clamp(.94rem,1.45vw,1.12rem);
  font-weight:700;
}
@media (max-width:960px){
  .sh-gallery__promo{grid-column:span 1;min-height:245px;padding:18px 14px;gap:8px 13px}
  .sh-gallery__brand-name{font-size:clamp(1.45rem,3.4vw,2.1rem)}
}
@media (max-width:640px){
  .sh-gallery__promo{
    grid-column:1;
    min-height:0;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:16px;
    padding:22px 18px;
  }
  .sh-gallery__tourism-logo{
    grid-row:auto;
    width:auto;
    max-width:145px;
  }
  .sh-gallery__brand{align-self:auto}
  .sh-gallery__promo p{align-self:auto}
  .sh-gallery__brand-name{font-size:clamp(1.65rem,8vw,2.35rem)}
}

/* Correctif 3.0.1 : véritable logo Savannah Home, entièrement visible */
.sh-gallery__brand{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:0;
  width:100%;
  overflow:visible;
}
.sh-gallery__brand-logo{
  display:block;
  width:100%;
  max-width:330px;
  max-height:112px;
  object-fit:contain;
  object-position:center;
}
@media (max-width:960px){
  .sh-gallery__brand-logo{max-width:250px;max-height:96px}
}
@media (max-width:640px){
  .sh-gallery__brand-logo{max-width:260px;max-height:96px}
}
/* Amélioration contraste accessibilité */
.sh-gallery__hint {
    color: #4f5b5e;
}