/* ═══════════════════════════════════════════════════════════════════
   lb.css — Feuille de style autonome · Latino Ballet Nice
   Remplace Tailwind CDN. Polices : Lato (sans) + Playfair Display (serif).
   Inclus uniquement les utilitaires réellement utilisés dans les pages LB.
   ═══════════════════════════════════════════════════════════════════ */


/* ── Polices auto-hébergées (latin, pas de CDN) ─────────────────────────── */
@font-face {
    font-family: 'Lato'; font-style: normal; font-weight: 300; font-display: swap;
    src: url('../fonts/Lato-Light.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;
}
@font-face {
    font-family: 'Lato'; font-style: normal; font-weight: 400; font-display: swap;
    src: url('../fonts/Lato-Regular.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;
}
@font-face {
    font-family: 'Lato'; font-style: normal; font-weight: 700; font-display: swap;
    src: url('../fonts/Lato-Bold.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;
}
@font-face {
    font-family: 'Playfair Display'; font-style: normal; font-weight: 400 700; font-display: swap;
    src: url('../fonts/PlayfairDisplay.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;
}
@font-face {
    font-family: 'Playfair Display'; font-style: italic; font-weight: 400; font-display: swap;
    src: url('../fonts/PlayfairDisplay-Italic.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;
}

/* ── FontAwesome 6 — icons utilisés (inline SVG mask, zéro CDN) ──────────── */
.fa-solid, .fa-brands, .fa-regular {
    display: inline-block;
    width: 1em; height: 1em;
    background-color: currentColor;
    vertical-align: -0.125em;
    line-height: 1;
    -webkit-mask-size: contain;    mask-size: contain;
    -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
    -webkit-mask-position: center;  mask-position: center;
}
.fa-solid.fa-bars { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20448%20512'%3E%3Cpath%20d='M0%2096C0%2078.3%2014.3%2064%2032%2064H416c17.7%200%2032%2014.3%2032%2032s-14.3%2032-32%2032H32C14.3%20128%200%20113.7%200%2096zM0%20256c0-17.7%2014.3-32%2032-32H416c17.7%200%2032%2014.3%2032%2032s-14.3%2032-32%2032H32c-17.7%200-32-14.3-32-32zM448%20416c0%2017.7-14.3%2032-32%2032H32c-17.7%200-32-14.3-32-32s14.3-32%2032-32H416c17.7%200%2032%2014.3%2032%2032z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20448%20512'%3E%3Cpath%20d='M0%2096C0%2078.3%2014.3%2064%2032%2064H416c17.7%200%2032%2014.3%2032%2032s-14.3%2032-32%2032H32C14.3%20128%200%20113.7%200%2096zM0%20256c0-17.7%2014.3-32%2032-32H416c17.7%200%2032%2014.3%2032%2032s-14.3%2032-32%2032H32c-17.7%200-32-14.3-32-32zM448%20416c0%2017.7-14.3%2032-32%2032H32c-17.7%200-32-14.3-32-32s14.3-32%2032-32H416c17.7%200%2032%2014.3%2032%2032z'/%3E%3C/svg%3E"); }
.fa-solid.fa-xmark { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20384%20512'%3E%3Cpath%20d='M342.6%20150.6c12.5-12.5%2012.5-32.8%200-45.3s-32.8-12.5-45.3%200L192%20210.7%2086.6%20105.4c-12.5-12.5-32.8-12.5-45.3%200s-12.5%2032.8%200%2045.3L146.7%20256%2041.4%20361.4c-12.5%2012.5-12.5%2032.8%200%2045.3s32.8%2012.5%2045.3%200L192%20301.3%20297.4%20406.6c12.5%2012.5%2032.8%2012.5%2045.3%200s12.5-32.8%200-45.3L237.3%20256%20342.6%20150.6z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20384%20512'%3E%3Cpath%20d='M342.6%20150.6c12.5-12.5%2012.5-32.8%200-45.3s-32.8-12.5-45.3%200L192%20210.7%2086.6%20105.4c-12.5-12.5-32.8-12.5-45.3%200s-12.5%2032.8%200%2045.3L146.7%20256%2041.4%20361.4c-12.5%2012.5-12.5%2032.8%200%2045.3s32.8%2012.5%2045.3%200L192%20301.3%20297.4%20406.6c12.5%2012.5%2032.8%2012.5%2045.3%200s12.5-32.8%200-45.3L237.3%20256%20342.6%20150.6z'/%3E%3C/svg%3E"); }
.fa-solid.fa-arrow-right { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20448%20512'%3E%3Cpath%20d='M438.6%20278.6c12.5-12.5%2012.5-32.8%200-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3%200s-12.5%2032.8%200%2045.3L338.8%20224%2032%20224c-17.7%200-32%2014.3-32%2032s14.3%2032%2032%2032l306.7%200L233.4%20393.4c-12.5%2012.5-12.5%2032.8%200%2045.3s32.8%2012.5%2045.3%200l160-160z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20448%20512'%3E%3Cpath%20d='M438.6%20278.6c12.5-12.5%2012.5-32.8%200-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3%200s-12.5%2032.8%200%2045.3L338.8%20224%2032%20224c-17.7%200-32%2014.3-32%2032s14.3%2032%2032%2032l306.7%200L233.4%20393.4c-12.5%2012.5-12.5%2032.8%200%2045.3s32.8%2012.5%2045.3%200l160-160z'/%3E%3C/svg%3E"); }
.fa-solid.fa-book-open { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20576%20512'%3E%3Cpath%20d='M249.6%20471.5c10.8%203.8%2022.4-4.1%2022.4-15.5V78.6c0-4.2-1.6-8.4-5-11C247.4%2052%20202.4%2032%20144%2032C93.5%2032%2046.3%2045.3%2018.1%2056.1C6.8%2060.5%200%2071.7%200%2083.8V454.1c0%2011.9%2012.8%2020.2%2024.1%2016.5C55.6%20460.1%20105.5%20448%20144%20448c33.9%200%2079%2014%20105.6%2023.5zm76.8%200C353%20462%20398.1%20448%20432%20448c38.5%200%2088.4%2012.1%20119.9%2022.6c11.3%203.8%2024.1-4.6%2024.1-16.5V83.8c0-12.1-6.8-23.3-18.1-27.6C529.7%2045.3%20482.5%2032%20432%2032c-58.4%200-103.4%2020-123%2035.6c-3.3%202.6-5%206.8-5%2011V456c0%2011.4%2011.7%2019.3%2022.4%2015.5z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20576%20512'%3E%3Cpath%20d='M249.6%20471.5c10.8%203.8%2022.4-4.1%2022.4-15.5V78.6c0-4.2-1.6-8.4-5-11C247.4%2052%20202.4%2032%20144%2032C93.5%2032%2046.3%2045.3%2018.1%2056.1C6.8%2060.5%200%2071.7%200%2083.8V454.1c0%2011.9%2012.8%2020.2%2024.1%2016.5C55.6%20460.1%20105.5%20448%20144%20448c33.9%200%2079%2014%20105.6%2023.5zm76.8%200C353%20462%20398.1%20448%20432%20448c38.5%200%2088.4%2012.1%20119.9%2022.6c11.3%203.8%2024.1-4.6%2024.1-16.5V83.8c0-12.1-6.8-23.3-18.1-27.6C529.7%2045.3%20482.5%2032%20432%2032c-58.4%200-103.4%2020-123%2035.6c-3.3%202.6-5%206.8-5%2011V456c0%2011.4%2011.7%2019.3%2022.4%2015.5z'/%3E%3C/svg%3E"); }
.fa-solid.fa-envelope { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%3E%3Cpath%20d='M48%2064C21.5%2064%200%2085.5%200%20112c0%2015.1%207.1%2029.3%2019.2%2038.4L236.8%20313.6c11.4%208.5%2027%208.5%2038.4%200L492.8%20150.4c12.1-9.1%2019.2-23.3%2019.2-38.4c0-26.5-21.5-48-48-48H48zM0%20176V384c0%2035.3%2028.7%2064%2064%2064H448c35.3%200%2064-28.7%2064-64V176L294.4%20339.2c-22.8%2017.1-54%2017.1-76.8%200L0%20176z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%3E%3Cpath%20d='M48%2064C21.5%2064%200%2085.5%200%20112c0%2015.1%207.1%2029.3%2019.2%2038.4L236.8%20313.6c11.4%208.5%2027%208.5%2038.4%200L492.8%20150.4c12.1-9.1%2019.2-23.3%2019.2-38.4c0-26.5-21.5-48-48-48H48zM0%20176V384c0%2035.3%2028.7%2064%2064%2064H448c35.3%200%2064-28.7%2064-64V176L294.4%20339.2c-22.8%2017.1-54%2017.1-76.8%200L0%20176z'/%3E%3C/svg%3E"); }
.fa-solid.fa-gem { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%3E%3Cpath%20d='M116.7%2033.8c4.5-6.1%2011.7-9.8%2019.3-9.8H376c7.6%200%2014.8%203.6%2019.3%209.8l112%20152c6.8%209.2%206.1%2021.9-1.5%2030.4l-232%20256c-4.5%205-11%207.9-17.8%207.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152zm38.5%2039.8c-3.3%202.5-4.2%207-2.1%2010.5l57.4%2095.6L63.3%20192c-4.1%20.3-7.3%203.8-7.3%208s3.2%207.6%207.3%208l192%2016c.4%200%20.9%200%201.3%200l192-16c4.1-.3%207.3-3.8%207.3-8s-3.2-7.6-7.3-8L301.5%20179.8l57.4-95.6c2.1-3.5%201.2-8.1-2.1-10.5s-7.9-2-10.7%201L256%20172.2%20165.9%2074.6c-2.8-3-7.4-3.4-10.7-1z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%3E%3Cpath%20d='M116.7%2033.8c4.5-6.1%2011.7-9.8%2019.3-9.8H376c7.6%200%2014.8%203.6%2019.3%209.8l112%20152c6.8%209.2%206.1%2021.9-1.5%2030.4l-232%20256c-4.5%205-11%207.9-17.8%207.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152zm38.5%2039.8c-3.3%202.5-4.2%207-2.1%2010.5l57.4%2095.6L63.3%20192c-4.1%20.3-7.3%203.8-7.3%208s3.2%207.6%207.3%208l192%2016c.4%200%20.9%200%201.3%200l192-16c4.1-.3%207.3-3.8%207.3-8s-3.2-7.6-7.3-8L301.5%20179.8l57.4-95.6c2.1-3.5%201.2-8.1-2.1-10.5s-7.9-2-10.7%201L256%20172.2%20165.9%2074.6c-2.8-3-7.4-3.4-10.7-1z'/%3E%3C/svg%3E"); }
.fa-solid.fa-location-dot { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20384%20512'%3E%3Cpath%20d='M215.7%20499.2C267%20435%20384%20279.4%20384%20192C384%2086%20298%200%20192%200S0%2086%200%20192c0%2087.4%20117%20243%20168.3%20307.2c12.3%2015.3%2035.1%2015.3%2047.4%200zM192%20128a64%2064%200%201%201%200%20128%2064%2064%200%201%201%200-128z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20384%20512'%3E%3Cpath%20d='M215.7%20499.2C267%20435%20384%20279.4%20384%20192C384%2086%20298%200%20192%200S0%2086%200%20192c0%2087.4%20117%20243%20168.3%20307.2c12.3%2015.3%2035.1%2015.3%2047.4%200zM192%20128a64%2064%200%201%201%200%20128%2064%2064%200%201%201%200-128z'/%3E%3C/svg%3E"); }
.fa-solid.fa-magnifying-glass { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%3E%3Cpath%20d='M416%20208c0%2045.9-14.9%2088.3-40%20122.7L502.6%20457.4c12.5%2012.5%2012.5%2032.8%200%2045.3s-32.8%2012.5-45.3%200L330.7%20376c-34.4%2025.2-76.8%2040-122.7%2040C93.1%20416%200%20322.9%200%20208S93.1%200%20208%200S416%2093.1%20416%20208zM208%20352a144%20144%200%201%200%200-288%20144%20144%200%201%200%200%20288z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%3E%3Cpath%20d='M416%20208c0%2045.9-14.9%2088.3-40%20122.7L502.6%20457.4c12.5%2012.5%2012.5%2032.8%200%2045.3s-32.8%2012.5-45.3%200L330.7%20376c-34.4%2025.2-76.8%2040-122.7%2040C93.1%20416%200%20322.9%200%20208S93.1%200%20208%200S416%2093.1%20416%20208zM208%20352a144%20144%200%201%200%200-288%20144%20144%200%201%200%200%20288z'/%3E%3C/svg%3E"); }
.fa-solid.fa-phone { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%3E%3Cpath%20d='M164.9%2024.6c-7.7-18.6-28-28.5-47.4-23.2l-88%2024C12.1%2030.2%200%2046%200%2064C0%20311.4%20200.6%20512%20448%20512c18%200%2033.8-12.1%2038.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3%2011.6L304.7%20368C234.3%20334.7%20177.3%20277.7%20144%20207.3L193.3%20167c13.7-11.2%2018.4-30%2011.6-46.3l-40-96z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%3E%3Cpath%20d='M164.9%2024.6c-7.7-18.6-28-28.5-47.4-23.2l-88%2024C12.1%2030.2%200%2046%200%2064C0%20311.4%20200.6%20512%20448%20512c18%200%2033.8-12.1%2038.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3%2011.6L304.7%20368C234.3%20334.7%20177.3%20277.7%20144%20207.3L193.3%20167c13.7-11.2%2018.4-30%2011.6-46.3l-40-96z'/%3E%3C/svg%3E"); }
.fa-solid.fa-spinner { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%3E%3Cpath%20d='M304%2048a48%2048%200%201%200%20-96%200%2048%2048%200%201%200%2096%200zm0%20416a48%2048%200%201%200%20-96%200%2048%2048%200%201%200%2096%200zM48%20304a48%2048%200%201%200%200-96%2048%2048%200%201%200%200%2096zm464-48a48%2048%200%201%200%20-96%200%2048%2048%200%201%200%2096%200zM142.9%20437A48%2048%200%201%200%2075%20369.1%2048%2048%200%201%200%20142.9%20437zm0-294.2A48%2048%200%201%200%2075%2075a48%2048%200%201%200%2067.9%2067.9zM369.1%20437A48%2048%200%201%200%20437%20369.1%2048%2048%200%201%200%20369.1%20437z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%3E%3Cpath%20d='M304%2048a48%2048%200%201%200%20-96%200%2048%2048%200%201%200%2096%200zm0%20416a48%2048%200%201%200%20-96%200%2048%2048%200%201%200%2096%200zM48%20304a48%2048%200%201%200%200-96%2048%2048%200%201%200%200%2096zm464-48a48%2048%200%201%200%20-96%200%2048%2048%200%201%200%2096%200zM142.9%20437A48%2048%200%201%200%2075%20369.1%2048%2048%200%201%200%20142.9%20437zm0-294.2A48%2048%200%201%200%2075%2075a48%2048%200%201%200%2067.9%2067.9zM369.1%20437A48%2048%200%201%200%20437%20369.1%2048%2048%200%201%200%20369.1%20437z'/%3E%3C/svg%3E"); }
.fa-brands.fa-facebook-f { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20320%20512'%3E%3Cpath%20d='M279.14%20288l14.22-92.66h-88.91v-60.13c0-25.35%2012.42-50.06%2052.24-50.06h40.42V6.26S260.43%200%20225.36%200c-73.22%200-121.08%2044.38-121.08%20124.72v70.62H22.89V288h81.39v224h100.17V288z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20320%20512'%3E%3Cpath%20d='M279.14%20288l14.22-92.66h-88.91v-60.13c0-25.35%2012.42-50.06%2052.24-50.06h40.42V6.26S260.43%200%20225.36%200c-73.22%200-121.08%2044.38-121.08%20124.72v70.62H22.89V288h81.39v224h100.17V288z'/%3E%3C/svg%3E"); }
.fa-brands.fa-instagram { -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20448%20512'%3E%3Cpath%20d='M224.1%20141c-63.6%200-114.9%2051.3-114.9%20114.9s51.3%20114.9%20114.9%20114.9S339%20319.5%20339%20255.9%20287.7%20141%20224.1%20141zm0%20189.6c-41.1%200-74.7-33.5-74.7-74.7s33.5-74.7%2074.7-74.7%2074.7%2033.5%2074.7%2074.7-33.6%2074.7-74.7%2074.7zm146.4-194.3c0%2014.9-12%2026.8-26.8%2026.8-14.9%200-26.8-12-26.8-26.8s12-26.8%2026.8-26.8%2026.8%2012%2026.8%2026.8zm76.1%2027.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9%200-35.8%201.7-67.6%209.9-93.9%2036.1s-34.4%2058-36.2%2093.9c-2.1%2037-2.1%20147.9%200%20184.9%201.7%2035.9%209.9%2067.7%2036.2%2093.9s58%2034.4%2093.9%2036.2c37%202.1%20147.9%202.1%20184.9%200%2035.9-1.7%2067.7-9.9%2093.9-36.2%2026.2-26.2%2034.4-58%2036.2-93.9%202.1-37%202.1-147.8%200-184.8zM398.8%20388c-7.8%2019.6-22.9%2034.7-42.6%2042.6-29.5%2011.7-99.5%209-132.1%209s-102.7%202.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7%209-132.1c7.8-19.6%2022.9-34.7%2042.6-42.6%2029.5-11.7%2099.5-9%20132.1-9s102.7-2.6%20132.1%209c19.6%207.8%2034.7%2022.9%2042.6%2042.6%2011.7%2029.5%209%2099.5%209%20132.1s2.7%20102.7-9%20132.1z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20448%20512'%3E%3Cpath%20d='M224.1%20141c-63.6%200-114.9%2051.3-114.9%20114.9s51.3%20114.9%20114.9%20114.9S339%20319.5%20339%20255.9%20287.7%20141%20224.1%20141zm0%20189.6c-41.1%200-74.7-33.5-74.7-74.7s33.5-74.7%2074.7-74.7%2074.7%2033.5%2074.7%2074.7-33.6%2074.7-74.7%2074.7zm146.4-194.3c0%2014.9-12%2026.8-26.8%2026.8-14.9%200-26.8-12-26.8-26.8s12-26.8%2026.8-26.8%2026.8%2012%2026.8%2026.8zm76.1%2027.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9%200-35.8%201.7-67.6%209.9-93.9%2036.1s-34.4%2058-36.2%2093.9c-2.1%2037-2.1%20147.9%200%20184.9%201.7%2035.9%209.9%2067.7%2036.2%2093.9s58%2034.4%2093.9%2036.2c37%202.1%20147.9%202.1%20184.9%200%2035.9-1.7%2067.7-9.9%2093.9-36.2%2026.2-26.2%2034.4-58%2036.2-93.9%202.1-37%202.1-147.8%200-184.8zM398.8%20388c-7.8%2019.6-22.9%2034.7-42.6%2042.6-29.5%2011.7-99.5%209-132.1%209s-102.7%202.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7%209-132.1c7.8-19.6%2022.9-34.7%2042.6-42.6%2029.5-11.7%2099.5-9%20132.1-9s102.7-2.6%20132.1%209c19.6%207.8%2034.7%2022.9%2042.6%2042.6%2011.7%2029.5%209%2099.5%209%20132.1s2.7%20102.7-9%20132.1z'/%3E%3C/svg%3E"); }

@keyframes fa-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
.fa-spin { animation: fa-spin 1s linear infinite; }

/* ── Variables de marque ─────────────────────────────────────────── */
:root {
    --brand-red:   #b91c1c;
    --brand-dark:  #1a1a1a;
    --brand-light: #fafafa;
}

/* ── Reset minimal ───────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
body  { margin: 0; }
ul,ol { list-style: none; margin: 0; padding: 0; }
img   { max-width: 100%; }
a      { text-decoration: none; }
button { background: transparent; border: none; font-family: inherit; cursor: pointer; }

/* ── Base corps de page ──────────────────────────────────────────── */
.font-sans    { font-family: 'Lato', sans-serif; }
.font-serif   { font-family: 'Playfair Display', serif; }
.bg-brand-light  { background-color: var(--brand-light); }
.text-brand-dark { color: var(--brand-dark); }
.min-h-screen    { min-height: 100svh; }

/* ── Display ─────────────────────────────────────────────────────── */
.block       { display: block; }
.flex        { display: flex; }
.grid        { display: grid; }
.hidden      { display: none; }
.inline-flex { display: inline-flex; }

/* ── Flexbox ─────────────────────────────────────────────────────── */
.flex-col      { flex-direction: column; }
.flex-wrap     { flex-wrap: wrap; }
.flex-grow     { flex-grow: 1; }
.flex-shrink-0 { flex-shrink: 0; }
.items-center  { align-items: center; }
.items-start   { align-items: flex-start; }
.justify-center  { justify-content: center; }
.justify-between { justify-content: space-between; }
.justify-start   { justify-content: flex-start; }

/* ── Grid ────────────────────────────────────────────────────────── */
.grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
.col-span-3  { grid-column: span 3 / span 3; }
.gap-2  { gap: .5rem; }
.gap-4  { gap: 1rem; }
.gap-6  { gap: 1.5rem; }
.gap-8  { gap: 2rem; }
.gap-12 { gap: 3rem; }

/* ── Position & empilement ───────────────────────────────────────── */
.fixed    { position: fixed; }
.absolute { position: absolute; }
.relative { position: relative; }
.inset-0  { inset: 0; }
.top-0     { top: 0; }
.top-1\/2  { top: 50%; }
.left-3    { left: .75rem; }
.-top-6   { top: -1.5rem; }
.-left-4  { left: -1rem; }
.-right-6 { right: -1.5rem; }
.-bottom-4 { bottom: -1rem; }
.-translate-y-1\/2 { transform: translateY(-50%); }
.z-0  { z-index: 0; }
.z-10 { z-index: 10; }
.z-20 { z-index: 20; }
.z-50 { z-index: 50; }

/* ── Dimensions ──────────────────────────────────────────────────── */
.w-full { width: 100%; }
.w-auto { width: auto; }
.w-9    { width: 2.25rem; }
.w-10   { width: 2.5rem; }
.w-20   { width: 5rem; }
.w-32   { width: 8rem; }
.w-40   { width: 10rem; }
.w-48   { width: 12rem; }
.h-1    { height: .25rem; }
.h-9    { height: 2.25rem; }
.h-10   { height: 2.5rem; }
.h-16   { height: 4rem; }
.h-20   { height: 5rem; }
.h-24   { height: 6rem; }
.h-32   { height: 8rem; }
.h-48   { height: 12rem; }
.h-full { height: 100%; }
.h-\[70vh\] { height: 70vh; }
.max-w-2xl { max-width: 42rem; }
.max-w-3xl { max-width: 48rem; }
.max-w-4xl { max-width: 56rem; }
.max-w-7xl { max-width: 80rem; }
.max-w-lg  { max-width: 32rem; }
.max-w-\[200px\] { max-width: 200px; }
.object-cover   { object-fit: cover; }
.object-contain { object-fit: contain; }
.object-center  { object-position: center; }
.overflow-hidden { overflow: hidden; }
.opacity-10 { opacity: .1; }

/* ── Marges ──────────────────────────────────────────────────────── */
.mx-auto { margin-inline: auto; }
.mx-2    { margin-inline: .5rem; }
.ml-2    { margin-left: .5rem; }
.ml-auto { margin-left: auto; }
.mr-3    { margin-right: .75rem; }
.mt-1    { margin-top: .25rem; }
.mt-4    { margin-top: 1rem; }
.mb-1    { margin-bottom: .25rem; }
.mb-2    { margin-bottom: .5rem; }
.mb-3    { margin-bottom: .75rem; }
.mb-4    { margin-bottom: 1rem; }
.mb-5    { margin-bottom: 1.25rem; }
.mb-6    { margin-bottom: 1.5rem; }
.mb-8    { margin-bottom: 2rem; }
.mb-12   { margin-bottom: 3rem; }

/* ── Espacements internes ────────────────────────────────────────── */
.p-2   { padding: .5rem; }
.p-4   { padding: 1rem; }
.px-3  { padding-inline: .75rem; }
.px-4  { padding-inline: 1rem; }
.px-5  { padding-inline: 1.25rem; }
.px-6  { padding-inline: 1.5rem; }
.px-8  { padding-inline: 2rem; }
.py-2  { padding-block: .5rem; }
.py-2\.5 { padding-block: .625rem; }
.py-3  { padding-block: .75rem; }
.py-3\.5 { padding-block: .875rem; }
.py-4  { padding-block: 1rem; }
.py-10 { padding-block: 2.5rem; }
.py-14 { padding-block: 3.5rem; }
.py-16 { padding-block: 4rem; }
.py-20 { padding-block: 5rem; }
.pt-2  { padding-top: .5rem; }
.pt-8  { padding-top: 2rem; }
.pt-16 { padding-top: 4rem; }
.pb-0\.5 { padding-bottom: .125rem; }
.pb-2  { padding-bottom: .5rem; }
.pb-6  { padding-bottom: 1.5rem; }
.pb-8  { padding-bottom: 2rem; }
.pl-9  { padding-left: 2.25rem; }
.pr-4  { padding-right: 1rem; }

/* ── Espacement entre enfants (space-*) ──────────────────────────── */
.space-x-4 > * + * { margin-left: 1rem; }
.space-x-6 > * + * { margin-left: 1.5rem; }
.space-y-1 > * + * { margin-top: .25rem; }
.space-y-2 > * + * { margin-top: .5rem; }
.space-y-4 > * + * { margin-top: 1rem; }

/* ── Typographie ─────────────────────────────────────────────────── */
.text-sm   { font-size: .875rem;  line-height: 1.25rem; }
.text-base { font-size: 1rem;     line-height: 1.5rem; }
.text-lg   { font-size: 1.125rem; line-height: 1.75rem; }
.text-xl   { font-size: 1.25rem;  line-height: 1.75rem; }
.text-2xl  { font-size: 1.5rem;   line-height: 2rem; }
.text-3xl  { font-size: 1.875rem; line-height: 2.25rem; }
.text-4xl  { font-size: 2.25rem;  line-height: 2.5rem; }
.text-5xl  { font-size: 3rem;     line-height: 1; }
.text-6xl  { font-size: 3.75rem;  line-height: 1; }
.text-center { text-align: center; }
.text-left   { text-align: left; }
.font-light  { font-weight: 300; }
.font-normal { font-weight: 400; }
.font-medium { font-weight: 500; }
.font-bold   { font-weight: 700; }
.italic         { font-style: italic; }
.leading-tight  { line-height: 1.25; }
.leading-relaxed { line-height: 1.625; }
.tracking-wide  { letter-spacing: .025em; }

/* ── Couleurs de texte ───────────────────────────────────────────── */
.text-white     { color: #fff; }
.text-brand-red { color: var(--brand-red); }
.text-gray-100  { color: #f3f4f6; }
.text-gray-200  { color: #e5e7eb; }
.text-gray-300  { color: #d1d5db; }
.text-gray-400  { color: #9ca3af; }
.text-gray-500  { color: #6b7280; }
.text-gray-600  { color: #4b5563; }
.text-gray-700  { color: #374151; }
.text-gray-800  { color: #1f2937; }

/* ── Couleurs de fond ────────────────────────────────────────────── */
.bg-white      { background-color: #fff; }
.bg-brand-red  { background-color: var(--brand-red); }
.bg-brand-dark { background-color: var(--brand-dark); }
.bg-gray-50    { background-color: #f9fafb; }
.bg-gray-100   { background-color: #f3f4f6; }
.bg-transparent { background-color: transparent; }

/* ── Bordures ────────────────────────────────────────────────────── */
.border     { border-width: 1px; border-style: solid; }
.border-2   { border-width: 2px; border-style: solid; }
.border-t   { border-top-width: 1px; border-top-style: solid; }
.border-b   { border-bottom-width: 1px; border-bottom-style: solid; }
.border-b-2 { border-bottom-width: 2px; border-bottom-style: solid; }
.border-white     { border-color: #fff; }
.border-brand-red { border-color: var(--brand-red); }
.border-gray-100  { border-color: #f3f4f6; }
.border-gray-200  { border-color: #e5e7eb; }
.rounded-sm   { border-radius: .125rem; }
.rounded-full { border-radius: 9999px; }
.rounded-2xl  { border-radius: 1rem; }

/* ── Ombres ──────────────────────────────────────────────────────── */
.shadow-sm { box-shadow: 0 1px 2px 0 rgb(0 0 0/.05); }
.shadow-md { box-shadow: 0 4px 6px -1px rgb(0 0 0/.1), 0 2px 4px -2px rgb(0 0 0/.1); }
.shadow-lg { box-shadow: 0 10px 15px -3px rgb(0 0 0/.1), 0 4px 6px -4px rgb(0 0 0/.1); }

/* ── Transitions ─────────────────────────────────────────────────── */
.transition {
    transition-property: color, background-color, border-color, opacity, box-shadow, transform;
    transition-timing-function: cubic-bezier(.4,0,.2,1);
    transition-duration: 150ms;
}
.transition-all {
    transition-property: all;
    transition-timing-function: cubic-bezier(.4,0,.2,1);
    transition-duration: 150ms;
}
.duration-200 { transition-duration: 200ms; }
.duration-300 { transition-duration: 300ms; }

/* ── Hover ───────────────────────────────────────────────────────── */
.hover\:text-brand-dark:hover { color: var(--brand-dark); }
.hover\:text-brand-red:hover  { color: var(--brand-red); }
.hover\:text-white:hover      { color: #fff; }
.hover\:underline:hover       { text-decoration: underline; }
.hover\:bg-brand-red:hover    { background-color: var(--brand-red); }
.hover\:bg-gray-50:hover      { background-color: #f9fafb; }
.hover\:bg-gray-100:hover     { background-color: #f3f4f6; }
.hover\:bg-red-800:hover      { background-color: #991b1b; }
.hover\:bg-white:hover        { background-color: #fff; }

/* ── Boutons nav Catalogue / Contact (même largeur) ─────────────── */
.nav-cta { display:inline-flex; align-items:center; justify-content:center; min-width:8rem; }

/* ── Responsive grids — pages LB catégorie ──────────────────────── */
.lb-2col-resp  { display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:start; }
.lb-3col-resp  { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; }
.lb-cards-resp { display:grid; grid-template-columns:repeat(2,1fr); gap:2rem; }
/* Image dans la grille : taille naturelle, jamais plus large que la colonne */
.lb-2col-resp img { max-width:100%; height:auto; display:block; }

/* Mobile ≤767px */
@media (max-width: 767px) {
    .lb-2col-resp  { grid-template-columns:1fr !important; gap:1.75rem !important; }
    .lb-3col-resp  { grid-template-columns:1fr !important; gap:1.5rem !important; }
    .lb-cards-resp { grid-template-columns:1fr !important; gap:1.25rem !important; }
    .lb-img-first  { order:2; }
    main > div[style*="padding:4rem"] { padding-block:2.5rem !important; }
}

/* ── Focus ───────────────────────────────────────────────────────── */
.focus\:outline-none:focus    { outline: none; }
.focus\:border-brand-red:focus { border-color: var(--brand-red); }
.focus\:ring-1:focus          { box-shadow: 0 0 0 1px var(--brand-red); }
.focus\:ring-brand-red:focus  { box-shadow: 0 0 0 1px var(--brand-red); }

/* ── Accessibilité ───────────────────────────────────────────────── */
.sr-only {
    position: absolute; width: 1px; height: 1px;
    padding: 0; margin: -1px; overflow: hidden;
    clip: rect(0,0,0,0); white-space: nowrap; border-width: 0;
}
.cursor-pointer { cursor: pointer; }

/* ── Responsive sm ≥ 640px ───────────────────────────────────────── */
@media (min-width: 640px) {
    .sm\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sm\:px-6        { padding-inline: 1.5rem; }
}

/* ── Responsive md ≥ 768px ───────────────────────────────────────── */
@media (min-width: 768px) {
    .md\:flex            { display: flex; }
    .md\:hidden          { display: none; }
    .md\:flex-row        { flex-direction: row; }
    .md\:items-start     { align-items: flex-start; }
    .md\:justify-start   { justify-content: flex-start; }
    .md\:text-left       { text-align: left; }
    .md\:text-base       { font-size: 1rem;    line-height: 1.5rem; }
    .md\:text-xl         { font-size: 1.25rem; line-height: 1.75rem; }
    .md\:text-4xl        { font-size: 2.25rem; line-height: 2.5rem; }
    .md\:text-5xl        { font-size: 3rem;    line-height: 1; }
    .md\:text-7xl        { font-size: 4.5rem;  line-height: 1; }
    .md\:h-20            { height: 5rem; }
    .md\:h-\[80vh\]      { height: 80vh; }
    .md\:py-20           { padding-block: 5rem; }
    .md\:py-24           { padding-block: 6rem; }
    .md\:gap-8           { gap: 2rem; }
    .md\:mt-0            { margin-top: 0; }
    .md\:grid-cols-3     { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .md\:w-52            { width: 13rem; }
}

/* ── Cards catalogue (categories + produits) ─────────────────────── */
.cat-card-item,
.prod-card { aspect-ratio: 3/4; }

/* ── Responsive lg ≥ 1024px ──────────────────────────────────────── */
@media (min-width: 1024px) {
    .lg\:grid-cols-3     { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .lg\:grid-cols-4     { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .lg\:px-8            { padding-inline: 2rem; }
    .lg\:space-x-8 > * + * { margin-left: 2rem; }
}

/* ── Navigation scroll ───────────────────────────────────────────── */
html { scroll-behavior: smooth; }

/* ── Hero unifié (pagesLB + pages générées) ──────────────────────── */
.page-hero {
    padding: 5rem 1.5rem 4rem;
    text-align: center;
    position: relative;
    overflow: hidden;
    color: #fff;
}
.page-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    opacity: 0.1;
    pointer-events: none;
    z-index: 0;
    background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}
.page-hero > * { position: relative; z-index: 1; }
@media (min-width: 768px) {
    .page-hero { padding: 6rem 1.5rem 5rem; }
}
@media (max-width: 639px) {
    .page-hero { padding: 3rem 1rem 2.5rem; }
}

/* ── Page produit ────────────────────────────────────────────────── */
.prod-intro {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2.5rem;
    align-items: start;
    margin-bottom: 2.25rem;
}
.prod-secondary {
    display: grid;
    gap: 1.25rem;
    margin-top: 2.25rem;
    align-items: stretch;
}
@media (min-width: 768px) {
    .prod-secondary { grid-template-columns: repeat(var(--scols, 3), 1fr); }
}
@media (max-width: 767px) {
    .prod-intro     { grid-template-columns: 1fr; gap: 1.25rem; }
    .prod-secondary { grid-template-columns: 1fr; }
}
@media (max-width: 639px) {
    .prod-hero h1 { font-size: 1.7rem !important; }
    .prod-body   { padding: 1.25rem 1rem 3rem !important; }
    .faq-card button    { padding: 0.75rem 1rem !important; font-size: 0.85rem !important; }
    .faq-card .faq-answer { padding: 0.6rem 1rem !important; }
}

/* ── Pages catégorie ─────────────────────────────────────────────── */
.child-cat-card { aspect-ratio: 3/4; }
@media (max-width: 639px) {
    .cat-page-body { padding: 1.5rem 1rem 3rem !important; }
    h1.cat-h1      { font-size: 1.7rem !important; }
    .enf-hero h1   { font-size: 1.7rem !important; }
}

/* ── Boutons filtre (page catégorie enfant) ───────────────────────── */
.filter-btn {
    border: 1px solid #e5e7eb;
    border-radius: 50px;
    padding: .4rem 1rem;
    font-size: .82rem;
    font-weight: 600;
    cursor: pointer;
    background: #fff;
    color: #374151;
    transition: all .2s;
}
.filter-btn:hover  { border-color: #b91c1c; color: #b91c1c; }
.filter-btn.active { background: #b91c1c; color: #fff; border-color: #b91c1c; }

/* ── Page index — hero & cartes catégories ───────────────────────── */
.hero-overlay { background: linear-gradient(to right, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.3) 100%); }
.cat-card { transition: transform 0.3s ease, box-shadow 0.3s ease; }
.cat-card:hover { transform: translateY(-6px); box-shadow: 0 24px 48px rgba(185,28,28,0.28); }
.cat-card:hover .cat-arrow { background: white; color: #b91c1c !important; border-color: white; }

/* ── Boutons tri & sous-catégories (chaussures / chaussons / vêtements / accessoires) ── */
.sort-btn {
    border: 1px solid #e5e7eb;
    border-radius: 50px;
    padding: .4rem 1rem;
    font-size: .82rem;
    font-weight: 600;
    cursor: pointer;
    background: #fff;
    color: #374151;
    transition: all .2s;
}
.sort-btn:hover  { border-color: #b91c1c; color: #b91c1c; }
.sort-btn.active { background: #b91c1c; color: #fff; border-color: #b91c1c; }

.subcat-filter-btn {
    border: 1px solid #e5e7eb;
    border-radius: 50px;
    padding: .4rem 1.1rem;
    font-size: .82rem;
    font-weight: 600;
    cursor: pointer;
    background: #fff;
    color: #374151;
    transition: all .2s;
}
.subcat-filter-btn:hover  { border-color: #1a1a1a; color: #1a1a1a; }
.subcat-filter-btn.active { background: #1a1a1a; color: #fff; border-color: #1a1a1a; }
.subcat-filter-btn--child {
    margin-left: 1rem;
    font-size: 0.76rem;
    opacity: 0.82;
    padding: .3rem 0.85rem;
}
.subcat-filter-btn--child.active { opacity: 1; }

/* ── Page mentions légales ───────────────────────────────────────────── */
.legal-hero .container { max-width: 800px; margin: 0 auto; }
.legal-hero h1 {
    font-family: 'Playfair Display', serif;
    font-size: clamp(2rem, 5vw, 3rem);
    font-weight: 700;
    color: #fff;
    line-height: 1.15;
    margin: 0 0 .75rem;
}
.legal-hero h1 em { font-style: italic; font-weight: 400; }
.legal-hero-sub {
    color: rgba(255,255,255,.82);
    font-size: .92rem;
    margin: 0;
}
.legal-body { padding: 4rem 1.5rem 5rem; background: #fafafa; }
.legal-body .container { max-width: 800px; margin: 0 auto; }
.legal-content {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 1px 4px rgba(0,0,0,.07);
    padding: 2.5rem 2.5rem 3rem;
}
@media (max-width: 600px) {
    .legal-content { padding: 1.5rem 1.25rem 2rem; }
}
.legal-content h2 {
    font-family: 'Playfair Display', serif;
    font-size: 1.35rem;
    font-weight: 700;
    color: #1a1a1a;
    margin: 2.2rem 0 .9rem;
    padding-bottom: .45rem;
    border-bottom: 2px solid #b91c1c;
}
.legal-content h2:first-child { margin-top: 0; }
.legal-content h3 {
    font-size: 1rem;
    font-weight: 700;
    color: #1a1a1a;
    margin: 1.6rem 0 .5rem;
}
.legal-content p {
    color: #374151;
    line-height: 1.75;
    margin: 0 0 1rem;
    font-size: .95rem;
}
.legal-content ul {
    list-style: disc;
    padding-left: 1.4rem;
    margin: 0 0 1rem;
}
.legal-content ul li {
    color: #374151;
    line-height: 1.7;
    font-size: .95rem;
    margin-bottom: .35rem;
}
.legal-content a { color: #b91c1c; text-decoration: none; }
.legal-content a:hover { color: #991b1b; text-decoration: underline; text-underline-offset: 2px; }
.update-note {
    margin-top: 2.5rem !important;
    font-size: .8rem !important;
    color: #9ca3af !important;
    border-top: 1px solid #f3f4f6;
    padding-top: 1rem;
}
