.site-french { --fr-red:#d71216; --fr-ink:#141414; --fr-u:min(1px,.0651041667vw); font-family:InterStandard,Inter,system-ui,sans-serif; color:var(--fr-ink); background:#fcfcfc; }
.site-french h1, .site-french h2, .site-french h3, .site-french p { margin:0; }
.fr-header { display:grid; grid-template-columns: 497fr 649fr 252fr; align-items:center; gap:calc(34 * var(--fr-u)); min-height:calc(81 * var(--fr-u)); padding-inline:calc(40 * var(--fr-u)) calc(28 * var(--fr-u)); color:#fff; background:linear-gradient(98deg,#e5181e,#d8161c); }
.fr-brand { display:inline-flex; align-items:center; gap:calc(26 * var(--fr-u)); min-width:0; font-size:calc(34 * var(--fr-u)); font-weight:770; line-height:1; }
.fr-brand svg { flex:none; width:calc(51 * var(--fr-u)); height:calc(51 * var(--fr-u)); }
.fr-brand span { padding-left:calc(29 * var(--fr-u)); border-left:1px solid #fff; overflow-wrap:anywhere; }
.fr-search { display:flex; align-items:center; min-width:0; min-height:calc(50 * var(--fr-u)); border-radius:3rem; background:#fff6f4; color:#36383c; }
.fr-search button { align-self:stretch; display:grid; place-items:center; padding:0 0 0 calc(24 * var(--fr-u)); border:0; background:none; color:inherit; }
.fr-search button svg { width:calc(32 * var(--fr-u)); height:calc(32 * var(--fr-u)); }
.fr-search input { flex:1; width:0; padding:0 calc(18 * var(--fr-u)); min-height:44px; background:transparent; color:inherit; border:0; border-radius:2rem; font-size:calc(25 * var(--fr-u)); }
.fr-search input::placeholder { color:#424246; opacity:1; }
.fr-independent { padding-left:calc(30 * var(--fr-u)); border-left:1px solid #fff; font-size:calc(25 * var(--fr-u)); font-weight:780; white-space:nowrap; }
.fr-hero { position:relative; isolation:isolate; display:flex; align-items:flex-start; height:calc(421 * var(--fr-u)); background:linear-gradient(115deg,#ffe9e0 0%,#ffc9b6 38%,#d98968 100%); }
.fr-art { position:absolute; z-index:-1; inset:0; background:url('/assets/french/hero.webp') center / 100% 100% no-repeat; }

.fr-hero-copy { padding:calc(53 * var(--fr-u)) 0 0 calc(49 * var(--fr-u)); }
.fr-hero-copy h1 { color:#bc0e13; font-size:calc(88 * var(--fr-u)); line-height:.93; letter-spacing:-.026em; font-weight:830; }
.fr-hero-copy p { margin-top:calc(17 * var(--fr-u)); color:#282421; font-size:calc(34 * var(--fr-u)); font-weight:560; line-height:1.2; }
.fr-cta { display:inline-flex; align-items:center; justify-content:center; gap:calc(8 * var(--fr-u)); min-height:calc(60 * var(--fr-u)); margin-top:calc(32 * var(--fr-u)); padding:calc(5 * var(--fr-u)) calc(38 * var(--fr-u)); border-radius:calc(19 * var(--fr-u)); background:linear-gradient(#f52b2d,#d7090e); color:#fff; font-size:calc(32 * var(--fr-u)); font-weight:780; }
.fr-cta svg { width:calc(25 * var(--fr-u)); height:calc(25 * var(--fr-u)); }
.fr-cta:hover { background:#b70c10; }
.fr-board { position:absolute; top:calc(57 * var(--fr-u)); right:calc(59 * var(--fr-u)); width:calc(401 * var(--fr-u)); min-height:calc(311 * var(--fr-u)); border:calc(7 * var(--fr-u)) solid #ffe2cf; border-radius:calc(23 * var(--fr-u)); background:linear-gradient(130deg,#fceddf,#fff2eb); box-shadow:0 3px 13px #61220738; transform:rotate(-1.8deg) skewX(-4deg); overflow:hidden; }
.fr-board h2 { display:grid; place-items:center; min-height:calc(58 * var(--fr-u)); padding:calc(3 * var(--fr-u)) calc(9 * var(--fr-u)); background:linear-gradient(125deg,#ae1818,#db4b35); color:#fff; font-size:calc(29 * var(--fr-u)); font-style:italic; font-weight:790; }
.fr-board dl { margin:0; padding:calc(3 * var(--fr-u)) calc(15 * var(--fr-u)); }
.fr-board dl div { display:flex; align-items:center; gap:calc(13 * var(--fr-u)); min-height:calc(70 * var(--fr-u)); border-bottom:1px solid #d6bbae; font-size:calc(27 * var(--fr-u)); }
.fr-board dl div:last-child { border-bottom:0; }
.fr-board dt, .fr-board dd { margin:0; }
.fr-board dt { display:flex; align-items:center; gap:calc(19 * var(--fr-u)); white-space:nowrap; }
.fr-board svg { color:#c82119; width:calc(40 * var(--fr-u)); height:calc(40 * var(--fr-u)); flex:none; }
.fr-board dd::before { content:"·"; margin-right:calc(13 * var(--fr-u)); }
.fr-tasks { display:grid; grid-template-columns: repeat(5, minmax(0, 1fr)); align-items:center; margin:calc(10 * var(--fr-u)) calc(22 * var(--fr-u)) 0; min-height:calc(142 * var(--fr-u)); padding:calc(14 * var(--fr-u)) calc(8 * var(--fr-u)); background:#fbf5f4; border-radius:calc(18 * var(--fr-u)); }
.fr-tasks p { display:grid; align-content:center; min-height:calc(107 * var(--fr-u)); width:calc(253 * var(--fr-u)); padding-left:calc(31 * var(--fr-u)); background:#fbe2e1; color:#b70e13; border-radius:calc(14 * var(--fr-u)); clip-path:polygon(0 0,88% 0,100% 50%,88% 100%,0 100%); font-size:calc(30 * var(--fr-u)); line-height:1.16; font-weight:760; }
.fr-tasks a { display:grid; align-content:center; justify-items:center; min-height:calc(97 * var(--fr-u)); border-left:1px solid #dccbc5; font-size:calc(28 * var(--fr-u)); line-height:1.2; font-weight:770; text-align:center; }
.fr-tasks a:hover { color:#b20e14; background:#f9e4e1; }
.fr-tasks svg { color:#db1319; width:calc(60 * var(--fr-u)); height:calc(60 * var(--fr-u)); margin-bottom:calc(8 * var(--fr-u)); stroke-width:2.2; }
.fr-screens { padding:calc(25 * var(--fr-u)) calc(17 * var(--fr-u)) 0; }
.fr-screens > header { padding-left:calc(43 * var(--fr-u)); margin-bottom:calc(25 * var(--fr-u)); }
.fr-screens h2 { position:relative; font-size:calc(47 * var(--fr-u)); line-height:1.15; letter-spacing:-.016em; font-weight:800; }
.fr-screens h2::before { content:""; position:absolute; left:calc(-30 * var(--fr-u)); top:calc(5 * var(--fr-u)); width:calc(9 * var(--fr-u)); height:calc(45 * var(--fr-u)); border-radius:5px; background:#e7181e; }
.fr-screens > header p { color:#292929; font-size:calc(23 * var(--fr-u)); margin-top:calc(1 * var(--fr-u)); }
.fr-cards { display:grid; grid-template-columns:1.03fr 1fr 1.03fr; gap:calc(13 * var(--fr-u)); }
.fr-card { display:grid; grid-template-columns:1.12fr .91fr; align-items:center; gap:calc(16 * var(--fr-u)); min-width:0; padding:calc(14 * var(--fr-u)); border-radius:calc(15 * var(--fr-u)); background:#fbefed; }
.fr-card:nth-child(2) { grid-template-columns:1.1fr 1fr; }
.fr-card:nth-child(3) { grid-template-columns:1.25fr .95fr; }
.fr-card img { display:block; width:100%; height:calc(198 * var(--fr-u)); object-fit:cover; border-radius:calc(12 * var(--fr-u)) calc(12 * var(--fr-u)) 0 0; }
.fr-card > div { display:grid; align-content:space-between; gap:calc(7 * var(--fr-u)); min-height:calc(178 * var(--fr-u)); min-width:0; }
.fr-card h3 { color:#bf0b10; font-size:calc(24 * var(--fr-u)); line-height:1.06; font-weight:770; }
.fr-card p { font-size:calc(21 * var(--fr-u)); line-height:1.26; font-weight:500; }
.fr-card a { display:inline-flex; width:fit-content; max-width:100%; align-items:center; gap:.2em; justify-content:center; padding:calc(5 * var(--fr-u)) calc(16 * var(--fr-u)); min-height:calc(43 * var(--fr-u)); border-radius:calc(15 * var(--fr-u)); background:#f9d9d5; color:#ab0c13; font-size:calc(21 * var(--fr-u)); font-weight:780; }
.fr-card a:hover { background:#f6c1bb; }
.fr-card a svg { flex:none; width:1em; height:1em; }
.fr-reading { width:min(100% - 2rem,52rem); margin:3.5rem auto; font-size:1.1rem; }
.fr-reading h2 { margin-bottom:1rem; font-size:clamp(1.6rem,4vw,2.5rem); line-height:1.15; }
.fr-reading h3 { font-size:1.35em; line-height:1.2; }
.fr-reading a, .fr-footer a { color:#a60f14; font-weight:770; }
.fr-reading a:hover, .fr-footer a:hover { color:#730b0f; }
.fr-reading li + li { margin-top:.45rem; }
.fr-dictionary { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr)); gap:.5rem; }
.fr-dictionary div { padding:.6rem; background:#fff0ee; border-radius:.4rem; }
.fr-dictionary dt { font-weight:750; }
.fr-dictionary dd { margin:0; }
.fr-details > section { padding:1.35rem 0; border-top:1px solid #e6d3d0; }
.fr-details h3 { margin-bottom:.55rem; }
.fr-footer { padding:2rem max(1rem,calc((100% - 52rem) / 2)); background:#fff0ee; }
.fr-footer p { margin:.4rem 0; }
@media(max-width:1060px) {
  .fr-header { grid-template-columns:minmax(0,1fr) auto; gap:.5rem 1rem; padding:.75rem 1rem; }
  .fr-brand { gap:.5rem; font-size:clamp(.95rem,4vw,1.75rem); }
  .fr-brand svg { width:1.8rem; height:1.8rem; }
  .fr-brand span { padding-left:.6rem; }
  .fr-search { grid-column:1 / -1; grid-row:2; min-height:44px; }
  .fr-search button { min-width:44px; padding:0; }
  .fr-search button svg { width:1.25rem; height:1.25rem; }
  .fr-search input { font-size:1rem; padding:0 .6rem; }
  .fr-independent { padding:0; border:0; font-size:clamp(.7rem,2.5vw,1rem); white-space:normal; text-align:right; }
  .fr-hero { --fr-u:min(1px,.15vw); height:auto; min-height:24rem; padding:1.5rem 1rem; }
  .fr-art { inset:0 0 0 45%; background-image:url('/assets/french/bag.webp'); background-position:right center; background-size:auto 100%; mask-image:linear-gradient(to right,transparent 0%,#000 20%); }

  .fr-hero-copy { padding:0; z-index:1; }
  .fr-hero-copy h1 { font-size:clamp(2.2rem,7.5vw,4.5rem); }
  .fr-hero-copy p { max-width:20ch; font-size:clamp(1.05rem,2.5vw,1.35rem); margin-top:.8rem; }
  .fr-cta { min-height:44px; margin-top:1rem; padding:.55rem .85rem; font-size:1rem; border-radius:.65rem; }
  .fr-cta svg { width:1rem; height:1rem; }
  .fr-board { top:auto; bottom:1.5rem; right:1.5rem; }
  .fr-tasks { margin:.6rem .85rem 0; min-height:0; padding:.4rem; grid-template-columns:repeat(4,1fr); }
  .fr-tasks p { grid-column:1 / -1; width:auto; padding:.55rem; min-height:0; clip-path:none; text-align:center; border-radius:.45rem; }
  .fr-tasks p br { display:none; }
  .fr-tasks a { min-height:68px; padding:.4rem .25rem; font-size:clamp(.8rem,2.5vw,1.1rem); }
  .fr-tasks a:nth-child(2) { border-left:0; }
  .fr-tasks svg { width:1.7rem; height:1.7rem; margin-bottom:.25rem; }
  .fr-screens { padding:1.4rem .9rem 0; }
  .fr-screens > header { padding-left:.9rem; margin-bottom:1rem; }
  .fr-screens h2 { font-size:clamp(1.65rem,4vw,2.4rem); }
  .fr-screens h2::before { width:4px; height:1em; top:.05em; left:-.75rem; }
  .fr-screens > header p { font-size:.95rem; margin-top:.35rem; }
  .fr-cards { grid-template-columns:1fr; gap:.65rem; }
  .fr-card, .fr-card:nth-child(n) { grid-template-columns:minmax(0,.9fr) minmax(0,1.15fr); gap:.75rem; padding:.75rem; border-radius:.65rem; }
  .fr-card img { height:clamp(8rem,28vw,13rem); border-radius:.55rem; object-position:center; }
  .fr-card > div { min-height:0; gap:.5rem; }
  .fr-card h3 { font-size:clamp(1.12rem,3.5vw,1.5rem); line-height:1.1; }
  .fr-card p { font-size:.93rem; }
  .fr-card a { font-size:.9rem; min-height:44px; padding:.45rem .65rem; border-radius:.6rem; }
}
@media(max-width:600px) {
  .fr-hero { display:grid; gap:1rem; min-height:0; }
  .fr-art { inset:0 0 auto 39%; height:15rem; mask-image:linear-gradient(to right,transparent,#0004); }
  .fr-board { position:relative; inset:auto; width:100%; min-height:0; transform:none; border:0; border-radius:.6rem; box-shadow:none; background:#fff3e9; }
  .fr-board h2 { min-height:0; padding:.4rem; font-size:1.12rem; }
  .fr-board dl { padding:.2rem .6rem; }
  .fr-board dl div { min-height:42px; gap:.35rem; font-size:1rem; }
  .fr-board dt { gap:.4rem; }
  .fr-board svg { width:1.25rem; height:1.25rem; }
  .fr-board dd::before { margin-right:.35rem; }
  .fr-tasks p { font-size:1rem; }
  .fr-tasks a { overflow-wrap:anywhere; }
}
@media(max-width:360px) {
  .fr-tasks { grid-template-columns:repeat(2,1fr); }
  .fr-tasks a:nth-child(4) { border-left:0; }
}
@media (max-width:1060px) {
  .fr-card p { line-height:1.35; }
  .fr-cta { background:linear-gradient(#e01b22,#b50f16); }
  .fr-board h2 { background:linear-gradient(125deg,#aa181b,#c12c24); }
}
@media (max-width:600px) {
  .fr-hero { background:#ffe1d7; }
  .fr-art { mask-image:linear-gradient(to right,transparent,#0002); }
  .fr-reading li, .fr-footer p { text-wrap:pretty; }
}
@media (min-width:1061px) {
  .fr-board { top:calc(51 * var(--fr-u)); border-color:transparent; background:transparent; box-shadow:none; }
  .fr-board h2 { background:transparent; }
}
@media (min-width:1061px) {
  .fr-art { background-size:100% 112%; background-position:center top; }
  .fr-hero-copy h1 { font-size:calc(91 * var(--fr-u)); line-height:.9; letter-spacing:-.008em; }
  .fr-hero-copy p { font-size:calc(33 * var(--fr-u)); }
  .fr-cta { padding-inline:calc(34 * var(--fr-u)); font-size:calc(31 * var(--fr-u)); }
  .fr-screens > header { margin-bottom:calc(22 * var(--fr-u)); }
  .fr-card:nth-child(2) h3 { white-space:nowrap; font-size:calc(23 * var(--fr-u)); letter-spacing:-.028em; }
}
