/* Decorative treatment is limited to the closing invitation and existing footers. */
.m-footer-landscape { position:relative; isolation:isolate; overflow:hidden; background-color:#b9d4c7; background-image:linear-gradient(180deg,#fcfaf5,rgba(252,250,245,.4) 14%,rgba(252,250,245,0) 36%),url('footer/pond-water.webp'); background-position:center,center bottom; background-size:100% 100%,cover; background-repeat:no-repeat; }
.m-footer-landscape::before { content:''; position:absolute; z-index:0; pointer-events:none; inset:0 0 auto; height:60px; background:#fcfaf5; mask:url('footer/shoreline-wave.svg') center/100% 100% no-repeat; transform:rotate(180deg); }
.m-footer-cta { position:relative; z-index:1; padding:90px 0 28px; background:transparent; }
.m-footer-cta > .shell { position:relative; display:grid; grid-template-columns:minmax(0,1fr) minmax(210px,.42fr); gap:12px 46px; align-items:start; padding:42px; border:1px solid rgba(255,255,255,.32); border-radius:28px; background:rgba(40,95,85,.88); box-shadow:0 18px 42px rgba(24,70,59,.1); }
.m-footer-cta > .shell > div:not(.m-footer-turtle) { grid-column:1; }
.m-footer-cta .m-footer-turtle { grid-column:2; grid-row:1 / span 2; align-self:stretch; width:100%; min-height:238px; border-radius:18px; background:url('../img/tortue-marine.webp') center/cover no-repeat; mask-image:linear-gradient(90deg,transparent,#000 15%); }
.m-footer-cta .eyebrow { color:#fff1dd; }
.m-footer-cta .button { box-shadow:0 8px 20px rgba(26,58,48,.12); }
.m-footer-immersive { position:relative; isolation:isolate; overflow:hidden; color:#fffdf8; }
.m-footer-immersive > .shell { position:relative; z-index:1; }
.m-footer-immersive .legal-line,.m-footer-immersive .small { color:#eef3ed; }
.m-footer-immersive .legal-line { border-top-color:rgba(255,255,255,.27); }
.m-footer-immersive .brand::before { color:#fff1dd; }
.m-footer-immersive a:focus-visible { outline:3px solid #fffdf8; outline-offset:4px; }
.m-footer-immersive--joined { padding:100px 0 32px; background:linear-gradient(180deg,rgba(26,66,57,0),rgba(26,66,57,.87) 90px,rgba(26,66,57,.91)); }
.m-footer-immersive--standalone { padding:104px 0 32px; background-color:#285f55; background-image:linear-gradient(180deg,rgba(26,66,57,.1),rgba(26,66,57,.87) 90px,rgba(26,66,57,.91)),url('footer/pond-water.webp'); background-position:center,center bottom; background-size:100% 100%,cover; background-repeat:no-repeat; }
.m-footer-immersive--standalone::before { content:''; position:absolute; z-index:0; pointer-events:none; inset:0; background-image:url('footer/botanical-left.webp'),url('footer/botanical-right.webp'); background-position:left bottom,right bottom; background-size:clamp(70px,10vw,160px) auto; background-repeat:no-repeat; opacity:.14; mask-image:linear-gradient(90deg,#000,transparent 8%,transparent 92%,#000); }
.m-footer-immersive--standalone::after { content:''; position:absolute; z-index:0; pointer-events:none; top:0; left:0; right:0; height:52px; background:var(--cream); mask:url('footer/shoreline-wave.svg') center/100% 100% no-repeat; transform:rotate(180deg); }
.m-footer-immersive--forest::after { background:var(--forest); }
.m-footer-immersive--compact { padding-bottom:36px; }
@media (max-width:850px) {
 .m-footer-cta > .shell { grid-template-columns:minmax(0,1fr) minmax(155px,.45fr); gap:14px 24px; padding:32px; }
 .m-footer-cta .m-footer-turtle { min-height:245px; }
}
@media (max-width:600px) {
 .m-footer-landscape { background-size:100% 100%,auto 100%; }
 .m-footer-landscape::before { height:38px; }
 .m-footer-cta { padding:66px 0 12px; }
 .m-footer-cta > .shell { grid-template-columns:minmax(0,1fr); padding:30px 24px; gap:16px; border-radius:22px; background:rgba(40,95,85,.9); }
 .m-footer-cta .m-footer-turtle { grid-column:1; grid-row:auto; min-height:0; height:160px; background-position:center 52%; mask-image:none; }
 .m-footer-immersive--joined { padding:88px 0 30px; background:linear-gradient(180deg,rgba(26,66,57,0),rgba(26,66,57,.89) 72px,rgba(26,66,57,.93)); }
 .m-footer-immersive--standalone { padding:88px 0 30px; background-size:100% 100%,auto 100%; }
 .m-footer-immersive--standalone::before { background-size:70px auto; opacity:.1; }
 .m-footer-immersive--standalone::after { height:38px; }
}
