.lfp-bar,.lfp-home,.lfp-panel { --lfp-blue:#123c69; --lfp-blue-deep:#071a31; --lfp-red:#d9434a; --lfp-paper:var(--ljs-paper,#fffdf8); --lfp-soft:var(--ljs-ivory,#f7f2e9); --lfp-ink:var(--ljs-ink,#15171a); --lfp-muted:var(--ljs-muted,#686965); --lfp-line:var(--ljs-line,rgba(21,23,26,.14)); font-family:var(--ljs-sans,Inter,"Segoe UI",sans-serif); }
:root { --lfp-bar-h:48px; }
.lfp-bar *,.lfp-home *,.lfp-panel * { box-sizing:border-box; }
.lfp-bar { position:sticky; z-index:920; top:calc(var(--header-h) + var(--admin-bar)); min-height:var(--lfp-bar-h); color:var(--lfp-ink); background:color-mix(in srgb,var(--lfp-paper) 94%,transparent); border-bottom:1px solid var(--lfp-line); box-shadow:0 8px 28px rgba(7,26,49,.06); backdrop-filter:blur(16px); }
.lfp-bar::before { content:""; position:absolute; inset:0 0 auto; height:2px; background:linear-gradient(90deg,#123c69 0 33.333%,#f5f3ed 33.333% 66.666%,#d9434a 66.666%); }
.lfp-bar__inner { display:flex; align-items:center; gap:0; width:var(--ljs-container,min(92vw,1380px)); min-height:var(--lfp-bar-h); margin-inline:auto; }
.lfp-bar__date,.lfp-bar__item,.lfp-bar__occasion { display:flex; align-items:center; gap:8px; min-height:32px; padding:0 clamp(10px,1.3vw,18px); border-right:1px solid var(--lfp-line); white-space:nowrap; }
.lfp-bar__date { padding-left:0; }
.lfp-bar__date span { color:var(--lfp-red); font-size:.58rem; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.lfp-bar__date strong { font:600 .76rem var(--ljs-serif,Georgia,serif); }
.lfp-bar svg { flex:0 0 auto; width:16px; height:16px; color:var(--lfp-blue); }
.lfp-bar__item > span,.lfp-bar__occasion > span { display:grid; line-height:1.08; }
.lfp-bar small { color:var(--lfp-muted); font-size:.5rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.lfp-bar__item strong,.lfp-bar__occasion strong { margin-top:3px; font-size:.68rem; }
.lfp-bar__item strong b { font:inherit; }
.lfp-bar__item strong i { color:var(--lfp-muted); font-size:.58rem; font-style:normal; font-weight:650; }
.lfp-bar__occasion { flex:1; min-width:0; }
.lfp-bar__occasion strong { max-width:230px; overflow:hidden; text-overflow:ellipsis; }
.lfp-bar__locate { display:flex; align-items:center; gap:6px; flex:0 1 210px; max-width:210px; min-height:30px; padding:5px 10px; margin:0 10px; color:var(--lfp-blue); background:var(--lfp-soft); border:1px solid var(--lfp-line); border-radius:999px; cursor:pointer; font-size:.57rem; font-weight:850; }
.lfp-bar__locate svg { width:13px; height:13px; }
.lfp-bar__locate span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.lfp-bar__open { display:flex; align-items:center; justify-content:center; gap:8px; min-height:34px; padding:7px 13px; margin-left:12px; color:#fff; background:var(--lfp-blue); border:0; border-radius:999px; cursor:pointer; font-size:.62rem; font-weight:850; }
.lfp-bar__open svg { width:14px; color:#fff; transition:transform .2s; }
.lfp-bar__open:hover svg { transform:translateX(3px); }
.ljs-reading-progress { top:calc(var(--header-h) + var(--admin-bar) + var(--lfp-bar-h) - 2px); }
.ljs-page-toc,.ljs-article-toc,.ljs-faq-intro { top:calc(var(--header-h) + var(--admin-bar) + var(--lfp-bar-h) + 28px); }

.lfp-home { position:relative; padding:clamp(70px,8vw,115px) 0; color:var(--lfp-ink); background:var(--lfp-paper); border-top:1px solid var(--lfp-line); border-bottom:1px solid var(--lfp-line); overflow:hidden; }
.lfp-home::before { content:"FR"; position:absolute; right:-3vw; bottom:-9vw; color:color-mix(in srgb,var(--lfp-blue) 4%,transparent); font:700 clamp(13rem,31vw,33rem)/1 var(--ljs-serif,Georgia,serif); letter-spacing:-.12em; pointer-events:none; }
.lfp-home__head { position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,.5fr); align-items:end; gap:clamp(30px,7vw,100px); margin-bottom:clamp(40px,6vw,70px); }
.lfp-home__head h2 { margin:14px 0 0; font:600 clamp(2.7rem,5.8vw,6.1rem)/.92 var(--ljs-serif,Georgia,serif); letter-spacing:-.055em; }
.lfp-home__head > p { margin:0; color:var(--lfp-muted); line-height:1.8; }
.lfp-home__grid { position:relative; z-index:1; display:grid; grid-template-columns:1.15fr repeat(3,1fr); gap:12px; }
.lfp-home__grid article { min-height:275px; padding:25px; background:var(--lfp-soft); border:1px solid var(--lfp-line); border-radius:18px; }
.lfp-home__today { display:flex; align-items:flex-end; gap:22px; color:#fff; background:linear-gradient(145deg,var(--lfp-blue-deep),var(--lfp-blue)) !important; border-color:transparent !important; }
.lfp-home__today > span { font:600 clamp(4.8rem,8vw,8.5rem)/.72 var(--ljs-serif,Georgia,serif); letter-spacing:-.08em; }
.lfp-home__today > div { display:grid; }
.lfp-home__today small { color:#ffb4aa; font-size:.65rem; font-weight:850; letter-spacing:.14em; }
.lfp-home__today strong { margin-top:5px; font:600 1.45rem var(--ljs-serif,Georgia,serif); }
.lfp-home__today p { margin:15px 0 0; color:rgba(255,255,255,.68); font-size:.75rem; line-height:1.6; }
.lfp-home__weather,.lfp-home__local,.lfp-home__memory { display:flex; flex-direction:column; }
.lfp-home__label { display:flex; align-items:center; gap:9px; color:var(--lfp-red); font-size:.61rem; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.lfp-home__label svg { width:18px; height:18px; }
.lfp-home__weather > strong,.lfp-home__local > strong,.lfp-home__memory > strong { margin:35px 0 7px; color:var(--lfp-ink); font:600 clamp(2.7rem,5vw,5rem)/1 var(--ljs-serif,Georgia,serif); letter-spacing:-.05em; }
.lfp-home__weather > p,.lfp-home__local > p,.lfp-home__memory > p { margin:0; color:var(--lfp-muted); font-size:.78rem; line-height:1.65; }
.lfp-home__weather > small,.lfp-home__local > small { margin-top:auto; padding-top:18px; color:var(--lfp-muted); font-size:.62rem; }
.lfp-home__local button,.lfp-home__memory button { display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:40px; padding:8px 12px; margin-top:auto; color:var(--lfp-blue); background:var(--lfp-paper); border:1px solid color-mix(in srgb,var(--lfp-blue) 24%,var(--lfp-line)); border-radius:9px; cursor:pointer; font-size:.65rem; font-weight:850; }
.lfp-home__memory > strong { color:var(--lfp-red); }
.lfp-home__memory button svg { width:16px; height:16px; }

.lfp-panel { width:min(1240px,calc(100% - 28px)); max-height:min(92svh,980px); padding:0; color:var(--lfp-ink); background:var(--lfp-paper); border:0; border-radius:24px; box-shadow:0 35px 130px rgba(4,13,24,.5); overflow:hidden; }
.lfp-panel::backdrop { background:rgba(4,13,24,.72); backdrop-filter:blur(7px); }
.lfp-panel__shell { display:flex; flex-direction:column; max-height:min(92svh,980px); }
.lfp-panel__header { position:relative; display:flex; align-items:flex-start; justify-content:space-between; gap:25px; padding:28px clamp(22px,4vw,50px); color:#fff; background:linear-gradient(120deg,var(--lfp-blue-deep),var(--lfp-blue)); overflow:hidden; }
.lfp-panel__header::after { content:"FR"; position:absolute; right:90px; bottom:-55px; color:rgba(255,255,255,.06); font:700 11rem/1 var(--ljs-serif,Georgia,serif); }
.lfp-panel__header > div { position:relative; z-index:1; }
.lfp-kicker { color:#ffb4aa; font-size:.61rem; font-weight:850; letter-spacing:.14em; text-transform:uppercase; }
.lfp-panel__header h2 { margin:8px 0 5px; font:600 clamp(2.2rem,4.5vw,4.6rem)/.95 var(--ljs-serif,Georgia,serif); letter-spacing:-.05em; }
.lfp-panel__header p { margin:0; color:rgba(255,255,255,.7); font-size:.75rem; text-transform:capitalize; }
.lfp-panel__header button { position:relative; z-index:2; display:grid; place-items:center; flex:0 0 44px; width:44px; height:44px; padding:0; color:#fff; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.24); border-radius:50%; cursor:pointer; }
.lfp-panel__header button svg { width:20px; height:20px; }
.lfp-panel__body { display:grid; grid-template-columns:1fr 1.05fr; min-height:0; overflow-y:auto; overscroll-behavior:contain; }
.lfp-panel__body > section { padding:clamp(25px,4vw,46px); border-right:1px solid var(--lfp-line); border-bottom:1px solid var(--lfp-line); }
.lfp-panel__body > section:nth-child(2n) { border-right:0; }
.lfp-panel__body h3 { margin:0; font:600 clamp(1.6rem,2.8vw,2.5rem)/1 var(--ljs-serif,Georgia,serif); letter-spacing:-.03em; }
.lfp-now-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:24px; }
.lfp-now-grid > div { display:flex; flex-direction:column; min-height:170px; padding:20px; background:var(--lfp-soft); border:1px solid var(--lfp-line); border-radius:14px; }
.lfp-now-grid small { color:var(--lfp-red); font-size:.58rem; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.lfp-now-grid strong { margin:17px 0 5px; font:600 clamp(2.5rem,4vw,4rem)/1 var(--ljs-serif,Georgia,serif); }
.lfp-now-grid span { color:var(--lfp-muted); font-size:.7rem; }
.lfp-now-grid span b,.lfp-now-grid span i { font:inherit; font-style:normal; }
.lfp-now-grid em { margin-top:auto; color:var(--lfp-muted); font-size:.58rem; font-style:normal; }
.lfp-now-grid button { display:flex; align-items:center; justify-content:center; gap:7px; min-height:37px; padding:7px 10px; margin-top:auto; color:#fff; background:var(--lfp-blue); border:0; border-radius:8px; cursor:pointer; font-size:.61rem; font-weight:800; }
.lfp-now-grid button svg { width:14px; height:14px; }
.lfp-privacy { margin:13px 0 0; color:var(--lfp-muted); font-size:.58rem; line-height:1.6; }
.lfp-section-head { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:22px; }
.lfp-section-head span { display:block; margin-bottom:6px; color:var(--lfp-red); font-size:.57rem; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
.lfp-section-head > div:last-child { display:flex; gap:6px; }
.lfp-section-head button { width:36px; height:36px; padding:0; color:var(--lfp-blue); background:var(--lfp-soft); border:1px solid var(--lfp-line); border-radius:9px; cursor:pointer; }
.lfp-calendar { display:grid; grid-template-columns:repeat(7,1fr); gap:5px; }
.lfp-calendar > span,.lfp-calendar > time { display:grid; place-items:center; min-height:34px; border-radius:9px; font-size:.67rem; }
.lfp-calendar__weekday { color:var(--lfp-muted); font-size:.55rem !important; font-weight:850; }
.lfp-calendar > time { position:relative; color:var(--lfp-ink); background:var(--lfp-soft); border:1px solid transparent; }
.lfp-calendar > time.is-today { color:#fff; background:var(--lfp-blue); border-color:var(--lfp-blue); font-weight:850; }
.lfp-calendar > time.is-official::after,.lfp-calendar > time.is-cultural::after { content:""; position:absolute; bottom:3px; width:4px; height:4px; background:var(--lfp-red); border-radius:50%; }
.lfp-calendar > time.is-cultural::after { background:var(--lfp-blue); }
.lfp-calendar > time.is-today::after { background:#fff; }
.lfp-calendar__legend { display:flex; flex-wrap:wrap; gap:8px 14px; margin-top:14px; color:var(--lfp-muted); font-size:.55rem; }
.lfp-calendar__legend span { display:flex; align-items:center; gap:5px; }
.lfp-calendar__legend i { width:7px; height:7px; background:var(--lfp-blue); border-radius:50%; }
.lfp-calendar__legend span:nth-child(2) i { background:var(--lfp-red); }
.lfp-calendar__legend span:nth-child(3) i { background:transparent; border:2px solid var(--lfp-blue); }
.lfp-agenda { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.lfp-agenda__item { display:grid; grid-template-columns:46px minmax(0,1fr); align-items:center; gap:11px; min-height:70px; padding:10px; background:var(--lfp-soft); border:1px solid var(--lfp-line); border-radius:11px; }
.lfp-agenda__item time { display:grid; place-items:center; align-content:center; width:42px; height:48px; color:#fff; background:var(--lfp-blue); border-radius:9px; }
.lfp-agenda__item.is-official time { background:var(--lfp-red); }
.lfp-agenda__item time strong { font:600 1.2rem/1 var(--ljs-serif,Georgia,serif); }
.lfp-agenda__item time span { margin-top:2px; font-size:.48rem; font-weight:850; text-transform:uppercase; }
.lfp-agenda__item > div { display:grid; }
.lfp-agenda__item > div strong { font:600 .75rem/1.2 var(--ljs-serif,Georgia,serif); }
.lfp-agenda__item > div small { margin-top:4px; color:var(--lfp-muted); font-size:.51rem; }
.lfp-history { display:grid; gap:0; border-top:1px solid var(--lfp-line); }
.lfp-history article { display:grid; grid-template-columns:56px minmax(0,1fr); gap:14px; padding:17px 0; border-bottom:1px solid var(--lfp-line); }
.lfp-history article > strong { color:var(--lfp-red); font:600 1.15rem var(--ljs-serif,Georgia,serif); }
.lfp-history p { margin:0; color:var(--lfp-ink); font-size:.7rem; line-height:1.55; }
.lfp-history a { display:inline-block; margin-top:5px; color:var(--lfp-blue); font-size:.55rem; font-weight:800; text-decoration:underline; text-underline-offset:2px; }
.lfp-panel__history > small { display:block; margin-top:14px; color:var(--lfp-muted); font-size:.54rem; }
.lfp-panel__footer { display:flex; align-items:center; justify-content:space-between; gap:30px; padding:16px clamp(22px,4vw,50px); background:var(--lfp-soft); border-top:1px solid var(--lfp-line); }
.lfp-panel__footer p { max-width:780px; margin:0; color:var(--lfp-muted); font-size:.56rem; line-height:1.6; }
.lfp-panel__footer button { min-height:37px; padding:7px 17px; color:#fff; background:var(--lfp-blue); border:0; border-radius:999px; cursor:pointer; font-size:.61rem; font-weight:850; }
body.lfp-panel-open { overflow:hidden; }
.lfp-bar button:focus-visible,.lfp-home button:focus-visible,.lfp-panel button:focus-visible,.lfp-panel a:focus-visible { outline:3px solid color-mix(in srgb,var(--lfp-red) 45%,transparent); outline-offset:2px; }
.lfp-home button.is-loading,.lfp-panel button.is-loading { opacity:.6; cursor:wait; }

@media(max-width:1100px){
  .lfp-bar__occasion { display:none; }
  .lfp-home__grid { grid-template-columns:1fr 1fr; }
  .lfp-panel__body { grid-template-columns:1fr; }
  .lfp-panel__body > section { border-right:0; }
}

@media(max-width:760px){
  :root { --lfp-bar-h:51px; }
  .lfp-bar__inner { width:100%; padding:0 10px; overflow-x:auto; scrollbar-width:none; }
  .lfp-bar__inner::-webkit-scrollbar { display:none; }
  .lfp-bar__date { display:none; }
  .lfp-bar__item { flex:0 0 auto; padding:0 10px; }
  .lfp-bar__local { display:flex; }
  .lfp-bar__item strong i { display:none; }
  .lfp-bar__locate { flex-basis:155px; max-width:155px; margin:0 6px; }
  .lfp-bar__open { position:sticky; right:0; flex:0 0 auto; min-width:42px; padding:8px 10px; margin-left:auto; box-shadow:-12px 0 18px var(--lfp-paper); }
  .lfp-bar__open span { display:none; }
  .lfp-home { padding:65px 0; }
  .lfp-home__head { grid-template-columns:1fr; gap:18px; }
  .lfp-home__grid { grid-template-columns:1fr; }
  .lfp-home__grid article { min-height:225px; }
  .lfp-home__today { min-height:255px !important; }
  .lfp-panel { width:calc(100% - 10px); max-height:calc(100svh - 10px); border-radius:18px; }
  .lfp-panel__shell { max-height:calc(100svh - 10px); }
  .lfp-panel__header { padding:24px 18px; }
  .lfp-panel__header::after { right:20px; }
  .lfp-panel__body > section { padding:28px 18px; }
  .lfp-now-grid { grid-template-columns:1fr; }
  .lfp-agenda { grid-template-columns:1fr; }
  .lfp-panel__footer { align-items:flex-start; flex-direction:column; gap:12px; padding:15px 18px; }
  .lfp-panel__footer button { width:100%; }
}

@media(max-width:390px){
  .lfp-bar__local { display:none; }
  .lfp-home__today { align-items:flex-start; flex-direction:column; }
  .lfp-home__today > span { font-size:5.5rem; }
}

@media(prefers-reduced-motion:reduce){.lfp-bar__open svg{transition:none}}
