/* Épilogues Terrae. La géométrie est présente dans le HTML avant l'initialisation des moteurs.
   Seuls les nouveaux voiles et les nouveaux ornements sont animés. */
body.ep-pages { --ep-bronze:#b69b70; --ep-ivoire:#f0eadf; --ep-encre:#080e0c; }
body.ep-pages.page-italia { --ep-bronze:#c0a17c; }
body.ep-pages.page-champagne { --ep-bronze:#c4bda8; }
@supports(color:color(display-p3 1 1 1)) { body.ep-pages { --ep-bronze:color(display-p3 .69 .59 .43); } }
body.ep-pages .sg-signature { display:none !important; }
body.ep-pages .sg-piste { animation:none !important; }

/* La porte : cadre d'ombre, étoffe réelle et horizon. Les photographies restent à vignes.mjs. */
body.ep-pages:not(#ep) nav#paysage {
 min-height:clamp(660px,88svh,1050px); padding:180px clamp(28px,7.2vw,138px) 118px;
 background:#080e0c; color:var(--ep-ivoire); scroll-margin-top:84px;
}
body.ep-pages:not(#ep) #paysage > :is(.tc-eyebrow,.ed-next-link,.te-next-link) { position:relative; z-index:3; }
body.ep-pages:not(#ep) #paysage :is(.ed-next-link,.te-next-link) { column-gap:clamp(24px,5vw,96px); width:100%; }
body.ep-pages:not(#ep) #paysage :is(.ed-next-title,.te-next-link .te-heading) {
 font-size:clamp(74px,10.5vw,170px); font-weight:300; line-height:.95; letter-spacing:-.045em;
 max-width:12ch; text-wrap:balance; color:var(--ep-ivoire);
}
body.ep-pages:not(#ep) #paysage :is(.ed-caption,.te-next-note) { max-width:36ch; font-size:clamp(16px,1.5vw,22px); line-height:1.55; color:#e5ded0; }
body.ep-pages:not(#ep) #paysage .ed-eyebrow,body.ep-pages:not(#ep) #paysage > .tc-eyebrow { font-size:10px; letter-spacing:.25em; color:#d5c4a6; margin-bottom:20px; }
body.ep-pages:not(#ep) #paysage :is(.ed-next-arrow,.te-next-arrow) {
 width:clamp(72px,7.5vw,108px); height:clamp(72px,7.5vw,108px); font-size:clamp(32px,4vw,48px);
 border-color:#d8c8a67a; outline:1px solid #c9b58c22; outline-offset:10px;
}
body.ep-pages:not(#ep) #paysage .tv-place { top:44px; left:clamp(28px,7.2vw,138px); color:#dcd4c5; }
body.ep-pages:not(#ep) #paysage .tv-place::before { background:var(--ep-bronze); width:52px; }
body.ep-pages:not(#ep) #paysage .tv-motion {
 top:auto; right:clamp(28px,7.2vw,138px); bottom:30px; z-index:5;
 background:#090f0cd9; border-color:#a28e6866; letter-spacing:.06em;
}
.ep-rideau,.ep-lumiere,.ep-cadre,.ep-folio,.ep-horizon { position:absolute; pointer-events:none; }
.ep-rideau {
 z-index:0; inset:0 auto 0 0; width:51%;
 background:#07100c url('conciergerie/voile-nuit-1280.webp') 18% center/auto 100%;
 transform:translateX(-96%); opacity:.94;
 box-shadow:14px 0 45px #03070544;
}
.ep-rideau.ep-droite { left:auto; right:0; background-position:82% center; transform:translateX(96%); box-shadow:-14px 0 45px #03070544; }
.ep-lumiere { z-index:1; inset:0; opacity:.4; background:linear-gradient(105deg,transparent 36%,#d8c29a0a 45%,#ece0c31a 48%,transparent 58%); }
.ep-cadre { z-index:2; inset:24px 24px 26px; border:1px solid #b79f753d; }
.ep-cadre::after { content:''; position:absolute; inset:7px; border:1px solid #e9dcc614; }
.ep-horizon { z-index:2; left:clamp(28px,7.2vw,138px); right:clamp(28px,7.2vw,138px); bottom:88px; height:1px; background:linear-gradient(90deg,var(--ep-bronze),#c5ac7833 65%,transparent); transform-origin:left; }
.ep-folio { z-index:3; top:44px; right:clamp(28px,7.2vw,138px); display:flex; align-items:center; gap:13px; color:#dfd4be; font:400 11px/1 var(--tc-sans); letter-spacing:.12em; }
.ep-folio i { display:block; width:48px; height:1px; background:#c4ae8355; }
.ep-folio span:first-child { font:300 25px/1 var(--tc-serif); letter-spacing:0; }

/* Le colophon : le même monogramme, une signature entière, les six regards puis les services. */
body.ep-pages:not(#ep) footer.tc-footer {
 position:relative; isolation:isolate; overflow:hidden; margin:0; padding:64px clamp(24px,6vw,112px) 28px;
 background:var(--ep-encre); color:var(--ep-ivoire); border:0; scroll-margin-top:84px;
}
body.ep-pages:not(#ep) footer.tc-footer::before {
 content:''; position:absolute; z-index:-1; inset:0 0 auto; height:320px; pointer-events:none;
 background:url('conciergerie/voile-nuit-1280.webp') center 60%/cover; opacity:.15;
 -webkit-mask-image:linear-gradient(#000,transparent); mask-image:linear-gradient(#000,transparent);
}
.ep-couronne { position:relative; display:flex; justify-content:center; align-items:center; gap:26px; color:var(--ep-bronze); }
.ep-couronne::before,.ep-couronne::after { content:''; display:block; width:min(25vw,300px); height:1px; background:linear-gradient(90deg,transparent,#b59c6c66); }
.ep-couronne::after { transform:rotate(180deg); }
.ep-couronne svg { display:block; width:54px; height:54px; flex-shrink:0; }
.ep-signature { position:relative; text-align:center; margin:28px 0 54px; }
.ep-signature .ep-nom { display:block; font:300 clamp(96px,21.5vw,360px)/.88 var(--tc-serif); letter-spacing:-.035em; color:#e6ddcc; }
.ep-signature .ep-maison { display:block; margin-top:22px; font:400 12px/1.4 var(--tc-sans); letter-spacing:.64em; padding-left:.64em; color:var(--ep-bronze); }
body.ep-pages:not(#ep) footer.tc-footer .ep-signature .ep-territoires { width:100%; max-width:none; padding:0; margin:22px 0 0; text-align:center; font:400 10px/1.8 var(--tc-sans); text-transform:uppercase; letter-spacing:.23em; color:#c1b8a6; }
body.ep-pages:not(#ep) footer.tc-footer > nav {
 display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 44px; width:100%; max-width:none;
 padding:0; margin:0 0 35px; border:0; counter-reset:ep-regard;
}
body.ep-pages:not(#ep) footer.tc-footer > nav a {
 display:flex; align-items:center; gap:18px; min-height:66px; margin:0; padding:13px 0;
 border:0; border-bottom:1px solid #b49d7333; background:none; color:#e6ddcc;
 font:300 clamp(19px,2vw,29px)/1.2 var(--tc-serif); letter-spacing:-.015em; text-decoration:none;
}
body.ep-pages:not(#ep) footer.tc-footer > nav a::before {
 content:counter(ep-regard,decimal-leading-zero); counter-increment:ep-regard; width:18px; flex-shrink:0;
 font:400 9px/1 var(--tc-sans); letter-spacing:.04em; color:var(--ep-bronze);
}
body.ep-pages:not(#ep) footer.tc-footer > nav a:is(:hover,[aria-current='page']) { color:var(--ep-bronze); }
.ep-services { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:18px 34px; padding:0 0 40px; }
.ep-services a { color:#d0c5b1; font:400 11px/1.6 var(--tc-sans); letter-spacing:.06em; text-decoration:none; }
.ep-services a:hover { color:#f0eadf; }
body.ep-pages:not(#ep) footer.tc-footer .ed-footer-note { padding:0; margin:0; border:0; }
body.ep-pages:not(#ep) footer.tc-footer :is(> p,.ed-footer-note > p) {
 margin:0; max-width:none; padding:25px 180px 0 0; border-top:1px solid #b49d7340;
 font:400 10px/1.8 var(--tc-sans); letter-spacing:.05em; color:#bcb3a1;
}
.ep-retour { position:relative; display:block; width:max-content; margin:30px auto 0; color:#d6c6a7; font:400 10px/1.6 var(--tc-sans); letter-spacing:.1em; text-decoration:none; }
.ep-retour span { margin-left:12px; }
body.ep-pages:not(#ep) footer.tc-footer .cp-reopen { position:absolute; right:clamp(24px,6vw,112px); bottom:70px; color:#d0c5b1; background:none; border:0; padding:8px 0; }
body.ep-pages:not(#ep) footer.tc-footer a:focus-visible { outline:1px solid #dec99f; outline-offset:6px; }

@media(max-width:700px) {
 body.ep-pages:not(#ep) nav#paysage { min-height:clamp(600px,91svh,900px); padding:170px 30px 128px; scroll-margin-top:65px; }
 body.ep-pages:not(#ep) #paysage :is(.ed-next-link,.te-next-link) { grid-template-columns:minmax(0,1fr); gap:18px; }
 body.ep-pages:not(#ep) #paysage :is(.ed-next-title,.te-next-link .te-heading) { font-size:clamp(53px,14vw,90px); max-width:100%; overflow-wrap:normal; }
 html[lang='en'] body.ep-pages.page-notre-metier:not(#ep) #paysage .ed-next-title { font-size:clamp(48px,13vw,90px); }
 body.ep-pages:not(#ep) #paysage :is(.ed-caption,.te-next-note) { font-size:15px; max-width:27ch; }
 body.ep-pages:not(#ep) #paysage :is(.ed-next-arrow,.te-next-arrow) { grid-column:1; grid-row:auto; width:58px; height:58px; font-size:30px; margin-top:22px; outline-offset:7px; }
 body.ep-pages:not(#ep) #paysage .tv-place { left:30px; top:72px; right:30px; max-width:none; font-size:9px; }
 body.ep-pages:not(#ep) #paysage .tv-motion { right:30px; bottom:32px; max-width:calc(100% - 60px); }
 .ep-cadre { inset:15px; }
 .ep-cadre::after { inset:5px; }
 .ep-folio { top:30px; right:30px; }
 .ep-folio span:first-child { font-size:21px; }
 .ep-folio i { width:26px; }
 .ep-horizon { left:30px; right:30px; bottom:94px; }
 .ep-rideau { background-image:url('conciergerie/voile-nuit-portrait.webp'); }
 body.ep-pages:not(#ep) footer.tc-footer { padding:45px 24px 24px; scroll-margin-top:65px; }
 .ep-couronne { gap:18px; }
 .ep-couronne svg { width:43px; height:43px; }
 .ep-signature { margin:30px 0 36px; }
 .ep-signature .ep-nom { font-size:22.5vw; }
 .ep-signature .ep-maison { font-size:10px; letter-spacing:.5em; margin-top:18px; }
 body.ep-pages:not(#ep) footer.tc-footer .ep-signature .ep-territoires { font-size:8px; letter-spacing:.14em; }
 body.ep-pages:not(#ep) footer.tc-footer > nav { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 20px; margin-bottom:30px; }
 body.ep-pages:not(#ep) footer.tc-footer > nav a { min-height:72px; gap:9px; font-size:20px; }
 body.ep-pages:not(#ep) footer.tc-footer > nav a::before { width:14px; font-size:8px; }
 .ep-services { align-items:flex-start; justify-content:flex-start; gap:18px 23px; padding-bottom:28px; }
 .ep-services a { font-size:10px; }
 body.ep-pages:not(#ep) footer.tc-footer :is(> p,.ed-footer-note > p) { padding:22px 0 0; font-size:9px; }
 body.ep-pages:not(#ep) footer.tc-footer .cp-reopen { position:static; display:block; margin:18px auto 0; font-size:10px; }
 html[data-ep-vue] body.ep-pages .tc-voice-sound:not(.tc-voice-in-header) { left:16px; right:auto; bottom:16px; translate:none; transition:none; }
 html[data-ep-vue] body.ep-pages .tc-voice-sound .tc-voice-word { display:none; }
 html[data-ep-vue] body.ep-pages .tc-voice-toggle { width:44px; min-height:44px; padding:10px; justify-content:center; border:1px solid #b49d7355; }
}
@media(prefers-reduced-motion:reduce),(prefers-contrast:more),(forced-colors:active) {
 body.ep-pages .ep-rideau,body.ep-pages .ep-lumiere { display:none; }
 body.ep-pages .ep-signature *,body.ep-pages .ep-couronne,body.ep-pages .ep-horizon { animation:none !important; transition:none !important; }
}
html[data-ep-mode='calme'] .ep-rideau,html[data-ep-mode='calme'] .ep-lumiere { display:none; }
@media(forced-colors:active) {
 body.ep-pages:not(#ep) footer.tc-footer,body.ep-pages:not(#ep) nav#paysage { background:Canvas; color:CanvasText; }
 body.ep-pages:not(#ep) footer.tc-footer::before,.ep-cadre,.ep-folio,.ep-horizon { display:none; }
 body.ep-pages:not(#ep) footer.tc-footer :is(a,span,p,button),body.ep-pages:not(#ep) #paysage :is(a,span,p,button) { color:CanvasText; border-color:CanvasText; }
}
@media print {
 .ep-rideau,.ep-lumiere,.ep-cadre,.ep-folio,.ep-horizon,.ep-couronne,.ep-retour { display:none; }
 body.ep-pages:not(#ep) nav#paysage { min-height:0; padding:24px; }
 body.ep-pages:not(#ep) footer.tc-footer { background:white; color:black; padding:24px; }
 body.ep-pages:not(#ep) footer.tc-footer::before { display:none; }
 body.ep-pages:not(#ep) footer.tc-footer :is(a,span,p) { color:black; }
 .ep-signature .ep-nom { font-size:60px; }
}
