/*
Theme Name:   Latitude Blanche
Theme URI:    https://www.latitudeblanche.com
Description:  Thème enfant d'Enfold pour le site Latitude Blanche — voyages polaires à bord de Polarfront. Les personnalisations (CSS, fonctions, gabarits) se font ici pour résister aux mises à jour d'Enfold.
Author:       Latitude Blanche
Template:     enfold
Version:      1.2.0
Text Domain:  latitude-blanche
*/

/*
 * Enfold charge cette feuille après ses propres styles (handle « avia-style »).
 * Les styles communs à tout le site viendront ici au fil de la refonte.
 */

/* ==========================================================================
   Polices hébergées sur le site (RGPD : aucun appel à Google Fonts). Latin et latin étendu uniquement.
   Lato (titres), Work Sans variable 400 à 600 (textes), Fraunces italique (citations, coordonnées).
   ========================================================================== */
/* Fraunces 400 italique, latin-ext */
@font-face { font-family: 'Fraunces'; font-style: italic; font-weight: 400; font-display: swap; src: url("assets/polices/fraunces-italique-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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* Fraunces 400 italique, latin */
@font-face { font-family: 'Fraunces'; font-style: italic; font-weight: 400; font-display: swap; src: url("assets/polices/fraunces-italique-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; }
/* Lato 300, latin-ext */
@font-face { font-family: 'Lato'; font-style: normal; font-weight: 300; font-display: swap; src: url("assets/polices/lato-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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* Lato 300, latin */
@font-face { font-family: 'Lato'; font-style: normal; font-weight: 300; font-display: swap; src: url("assets/polices/lato-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; }
/* Lato 400, latin-ext */
@font-face { font-family: 'Lato'; font-style: normal; font-weight: 400; font-display: swap; src: url("assets/polices/lato-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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* Lato 400, latin */
@font-face { font-family: 'Lato'; font-style: normal; font-weight: 400; font-display: swap; src: url("assets/polices/lato-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; }
/* Lato 700, latin-ext */
@font-face { font-family: 'Lato'; font-style: normal; font-weight: 700; font-display: swap; src: url("assets/polices/lato-700-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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* Lato 700, latin */
@font-face { font-family: 'Lato'; font-style: normal; font-weight: 700; font-display: swap; src: url("assets/polices/lato-700-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; }
/* Work Sans variable 100-900, latin-ext */
@font-face { font-family: 'Work Sans'; font-style: normal; font-weight: 100 900; font-display: swap; src: url("assets/polices/work-sans-variable-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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* Work Sans variable 100-900, latin */
@font-face { font-family: 'Work Sans'; font-style: normal; font-weight: 100 900; font-display: swap; src: url("assets/polices/work-sans-variable-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; }
/* Fraunces variable 400-600, latin-ext */
@font-face { font-family: 'Fraunces'; font-style: normal; font-weight: 400 600; font-display: swap; src: url("assets/polices/fraunces-variable-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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* Fraunces variable 400-600, latin */
@font-face { font-family: 'Fraunces'; font-style: normal; font-weight: 400 600; font-display: swap; src: url("assets/polices/fraunces-variable-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; }

/* ==========================================================================
   Logo animé (pages -refonte pour l'instant) : la voile se balance autour de son sommet, un reflet passe sur
   l'ancre. La boîte garde les proportions du SVG (582 × 438) pour que la voile et le reflet tombent pile.
   ========================================================================== */
.lb-logo-anime a { display: flex !important; align-items: center; height: 100%; }
.lb-logo-boite { position: relative; display: block; height: 78%; aspect-ratio: 582 / 438; }
#top .lb-logo-boite img { display: block; width: 100%; height: 100%; max-height: none; padding: 0; }
.lb-logo-reflet {
	position: absolute; inset: 0;
	-webkit-mask: url("assets/logo/ancre-masque.svg") center / 100% 100% no-repeat;
	mask: url("assets/logo/ancre-masque.svg") center / 100% 100% no-repeat;
	background: linear-gradient(105deg, rgba(255,255,255,0) 42%, rgba(255,255,255,.95) 50%, rgba(255,255,255,0) 58%) no-repeat;
	background-size: 320% 100%;
	animation: lb-reflet 5s ease-in-out 1s infinite;
}
.lb-logo-voile-cadre { position: absolute; left: 50.515%; top: 45.662%; width: 9.622%; height: 21.005%; perspective: 420px; }
.lb-logo-voile { display: block; width: 100%; height: 100%; overflow: visible; fill: #000; transform-origin: 28.6% 4.3%; animation: lb-balance 4.4s ease-in-out infinite; }
@keyframes lb-balance { 0%, 100% { transform: rotateY(0deg); } 25% { transform: rotateY(-48deg); } 75% { transform: rotateY(30deg); } }
@keyframes lb-reflet { 0% { background-position: 110% 0; } 45%, 100% { background-position: -10% 0; } }
@media (prefers-reduced-motion: reduce) { .lb-logo-voile, .lb-logo-reflet { animation: none; } }

/* ==========================================================================
   Ancre au survol des photos (assets/js/latitude-blanche.js) : à la place d'un zoom, l'ancre du logo se trace au
   trait dans le coin (boucle, tige, bras), la flèche apparaît, puis la pointe noire arrive en pivotant depuis son
   sommet. Hôtes : cartes du plugin Voyages et tout élément portant la classe « lb-photo ».
   ========================================================================== */
.lb-ancre { position: absolute; top: 24px; right: 24px; z-index: 6; width: var(--lb-ancre-l, 36px); height: auto; aspect-ratio: 600 / 747; overflow: visible; pointer-events: none; filter: drop-shadow(0 1px 3px rgba(7, 19, 28, .55)); }
.lb-ancre-trait { fill: none; stroke: #ffffff; stroke-width: 26; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 100; stroke-dashoffset: 100; transition: stroke-dashoffset .5s cubic-bezier(.6, 0, .2, 1); }
.lb-ancre-fleche { fill: #ffffff; opacity: 0; transform: scale(.3); transform-box: fill-box; transform-origin: 50% 100%; transition: opacity .25s ease, transform .3s ease; }
.lb-ancre-voile { fill: #000000; stroke: #ffffff; stroke-width: 12; stroke-linejoin: round; opacity: 0; transform: rotate(-80deg) scale(.25); transform-box: fill-box; transform-origin: 24% 0%; transition: opacity .2s ease, transform .3s ease; }
.lb-ancre-hote:hover .lb-ancre-trait, .lb-ancre-hote:focus-visible .lb-ancre-trait { stroke-dashoffset: 0; transition-duration: .9s; }
.lb-ancre-hote:hover .lb-ancre-tige, .lb-ancre-hote:focus-visible .lb-ancre-tige { transition-delay: .15s; }
.lb-ancre-hote:hover .lb-ancre-bras, .lb-ancre-hote:focus-visible .lb-ancre-bras { transition-delay: .3s; }
.lb-ancre-hote:hover .lb-ancre-fleche, .lb-ancre-hote:focus-visible .lb-ancre-fleche { opacity: 1; transform: none; transition: opacity .3s ease .85s, transform .45s cubic-bezier(.34, 1.56, .64, 1) .85s; }
.lb-ancre-hote:hover .lb-ancre-voile, .lb-ancre-hote:focus-visible .lb-ancre-voile { opacity: 1; transform: none; transition: opacity .25s ease 1.05s, transform .7s cubic-bezier(.34, 1.56, .64, 1) 1.05s; }
/* Photos simples (classe lb-photo) : légèrement voilées, elles s'éclairent au survol */
.lb-photo img { filter: brightness(.88); transition: filter .5s ease; }
.lb-photo:hover img { filter: brightness(1); }
@media (prefers-reduced-motion: reduce) {
	.lb-ancre-trait, .lb-ancre-fleche, .lb-ancre-voile { transition: none !important; }
}
