@font-face { font-family: HFSyne; src: url('/planning-2027/visuels/syne.woff2') format('woff2'); font-weight: 400 800; font-display: swap; }
@font-face { font-family: HFSentient; src: url('/planning-2027/visuels/sentient.otf') format('opentype'); font-weight: 400; font-display: swap; }
@font-face { font-family: HFSentient; src: url('/planning-2027/visuels/sentient-italic.otf') format('opentype'); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: HFMontserrat; src: url('/haute-fidelite-reinvente/visuels/montserrat-600.ttf') format('truetype'); font-weight: 600; font-display: swap; }
:root { --hf-wine: #95313d; --hf-ink: #20201e; --hf-paper: #f5f0e9; --hf-blush: #f0e5dc; --hf-line: #d4c6b8; --hf-header-height: 88px; }
html { scroll-behavior: smooth; scroll-padding-top: var(--hf-header-height); }
body.hf-site { margin: 0; color: var(--hf-ink); background: var(--hf-paper); color-scheme: light; }
.hf-site *, .hf-site *::before, .hf-site *::after { box-sizing: border-box; }
.hf-site [id] { scroll-margin-top: 26px; }
.hf-header { position: sticky; z-index: 100; top: 0; background: #fcf9f3f5; border-bottom: 1px solid #d4c6b866; backdrop-filter: blur(16px); }
.hf-header-inner { width: min(1440px,94%); margin: auto; min-height: 86px; display: grid; grid-template-columns: 190px 1fr auto auto; align-items: center; gap: 24px; }
.hf-header a { text-decoration: none; }
.hf-logo { display: block; line-height: 0; }
.hf-logo img { width: 190px; height: auto; display: block; }
.hf-nav { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px 20px; }
.hf-nav a { font: 600 13px/1.5 HFMontserrat, sans-serif; color: var(--hf-ink); white-space: nowrap; padding: 8px 0; border-bottom: 2px solid transparent; }
.hf-nav a:hover, .hf-nav a[aria-current] { color: var(--hf-wine); border-bottom-color: var(--hf-wine); }
.hf-button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 16px 23px; background: var(--hf-wine); color: #fffaf4; border: 1px solid var(--hf-wine); border-radius: 3px; font: 600 13px/1.5 HFMontserrat,sans-serif; text-decoration: none; transition: background .2s, transform .2s; }
.hf-button:hover { color: #fffaf4; background: #73222c; transform: translateY(-2px); text-decoration: none; }
.hf-language { display: flex; align-items: center; gap: 10px; font: 600 13px/1.5 HFMontserrat,sans-serif; }
.hf-language a { color: #70675f; padding: 12px 1px 8px; border-bottom: 2px solid transparent; }
.hf-language a[aria-current] { color: var(--hf-wine); border-color: var(--hf-wine); }
.hf-language span { color: #9c8a7b; }
.hf-header :focus-visible, .hf-footer :focus-visible { outline: 3px solid #bd7f42; outline-offset: 5px; }
.hf-skip { position: absolute; left: 20px; top: -120px; padding: 15px; background: #fffaf4; color: var(--hf-wine); }
.hf-skip:focus { top: 8px; z-index: 110; }
.hf-site .hf-footer { margin: 0; background: #eadfce; color: var(--hf-ink); font: 400 20px/1.6 HFSentient,Georgia,serif; overflow: hidden; }
.hf-footer-stage { width: min(1340px,90%); margin: auto; padding-top: 35px; }
.hf-footer-topline { display: flex; align-items: center; justify-content: space-between; gap: 25px; border-bottom: 1px solid #b9a48d; padding-bottom: 22px; font: 600 11px/1.5 HFMontserrat,sans-serif; text-transform: uppercase; letter-spacing: .09em; }
.hf-footer-scene { display: grid; grid-template-columns: .92fr 1.35fr; gap: 25px; align-items: center; min-height: 530px; padding: 55px 0 45px; }
.hf-site .hf-footer .hf-eyebrow { font: 600 11px/1.5 HFMontserrat,sans-serif; text-transform: uppercase; letter-spacing: .12em; margin: 0 0 25px; }
.hf-site .hf-footer h2 { color: var(--hf-ink); font: 600 clamp(40px,4.3vw,66px)/1.05 HFSyne,sans-serif; text-transform: none; letter-spacing: -.045em; margin: 0 0 25px; }
.hf-site .hf-footer h2 em { font-family: HFSentient,Georgia,serif; font-weight: 400; color: var(--hf-wine); }
.hf-footer-copy > p:not(.hf-eyebrow) { max-width: 450px; margin: 0 0 27px; font-size: 20px; line-height: 1.55; }
.hf-footer .hf-email { display: block; width: fit-content; margin-top: 15px; font: 600 13px/1.6 HFMontserrat,sans-serif; text-decoration: none; color: var(--hf-ink); }
.hf-footer .hf-email:hover { text-decoration: underline; }
.hf-system { align-self: end; min-width: 0; position: relative; padding-bottom: 30px; }
.hf-system img { width: 106%; max-width: none; height: auto; display: block; margin-left: -3%; margin-top: -40px; filter: drop-shadow(0 20px 25px #6e4a2610); }
.hf-system-caption { display: block; text-align: right; font: italic 18px/1.4 HFSentient,Georgia,serif; color: #7c5848; margin: 20px 0 0; }
.hf-footer-base { background: var(--hf-wine); color: #fff7ec; padding: 55px max(5%,calc((100vw - 1340px)/2)) 20px; }
.hf-footer-links { display: grid; grid-template-columns: 1.45fr 1.1fr 1.1fr .8fr; gap: 35px; }
.hf-footer-brand img { width: min(260px,100%); height: auto; display: block; }
.hf-footer-brand p { font-size: 17px; line-height: 1.6; color: #f0d8d2; margin: 20px 0 0; }
.hf-footer nav { display: flex; flex-direction: column; align-items: start; gap: 12px; }
.hf-site .hf-footer h3 { font: 600 11px/1.5 HFMontserrat,sans-serif; text-transform: uppercase; letter-spacing: .1em; color: #efcac7; margin: 0 0 9px; }
.hf-footer nav a { font: 600 12px/1.6 HFMontserrat,sans-serif; color: #fff7ec; text-decoration: none; }
.hf-footer nav a:hover { text-decoration: underline; text-underline-offset: 5px; }
.hf-footer-bottom { border-top: 1px solid #ffffff40; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; padding-top: 23px; margin-top: 48px; font: 600 10px/1.5 HFMontserrat,sans-serif; color: #efd3cf; }
.hf-footer-bottom a { color: inherit; text-decoration: none; }
.hf-system { transition: transform 1s ease; }
.hf-system.is-arriving { transform: translateY(12px); }
@media(min-width: 1500px) { .hf-header-inner { grid-template-columns: 220px 1fr auto auto; } .hf-logo img { width: 210px; } .hf-nav a { font-size: 14px; } }
@media(max-width: 1250px) {
 .hf-header-inner { grid-template-columns: 1fr auto auto; gap: 8px 24px; padding: 16px 0 8px; }
 .hf-nav { grid-column: 1/-1; grid-row: 2; justify-content: start; gap: 12px 26px; }
 .hf-header-contact { grid-column: 2; grid-row: 1; } .hf-language { grid-column: 3; grid-row: 1; }
 .hf-footer-scene { grid-template-columns: 1fr 1.15fr; } .hf-footer-links { gap: 25px; grid-template-columns: 1.3fr 1fr 1fr; }
 .hf-footer-links nav:last-child { grid-column: 2 / -1; flex-direction: row; flex-wrap: wrap; align-items: baseline; gap: 20px; }
}
@media(max-width: 767px) {
 .hf-header-inner { width: 92%; gap: 6px 18px; grid-template-columns: 1fr auto; padding: 16px 0 8px; }
 .hf-logo img { width: 170px; } .hf-header-contact { display: none; } .hf-language { grid-column: 2; }
 .hf-nav { gap: 0 18px; } .hf-nav a { font-size: 11px; padding: 7px 0; }
 .hf-footer-stage { width: 88%; padding-top: 25px; } .hf-footer-topline { font-size: 9px; display: block; }
 .hf-footer-topline > span:last-child { display: none; }
 .hf-footer-scene { display: block; padding: 42px 0 15px; min-height: 0; }
 .hf-site .hf-footer h2 { font-size: clamp(38px,9vw,58px); }
 .hf-footer-copy > p:not(.hf-eyebrow) { font-size: 19px; }
 .hf-system img { width: 112%; margin: -20px -6% 0; } .hf-system { padding-bottom: 10px; } .hf-system-caption { font-size: 16px; margin-top: 12px; text-align: center; }
 .hf-footer-base { padding: 40px 6% 25px; } .hf-footer-links { grid-template-columns: 1fr 1fr; gap: 35px 25px; }
 .hf-footer-brand { grid-column: 1/-1; } .hf-footer-brand img { width: 240px; }
 .hf-footer-links nav:last-child { grid-column: 1/-1; }
 .hf-footer-bottom { margin-top: 30px; font-size: 9px; gap: 15px; } .hf-footer-bottom > span:nth-child(2) { display: none; }
}
@media(prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .hf-button,.hf-system { transition: none; } .hf-button:hover,.hf-system.is-arriving { transform: none; } }
@media print { .hf-header,.hf-footer { display: none !important; } }
