/* TEXIVOS, texivos.com. Site stylesheet: design system and home page. */

/* 0. Heading font. Outfit is served from the site itself, no outside
   service is called. SIL Open Font License 1.1, text in assets/fonts/OFL.txt */
@font-face{font-family:"Outfit";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/outfit-latin-ext-600-normal.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Outfit";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/outfit-latin-600-normal.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:"Outfit";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/outfit-latin-ext-700-normal.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Outfit";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/outfit-latin-700-normal.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}

/* 1. Tokens */
:root{
  --navy:#0A2540;
  --sand:#D4A574;
  --olive:#4A6741;
  --charcoal:#3E3E3E;
  --white:#FFFFFF;
  --light-gray:#F5F5F5;
  --olive-light:#E8F0E6;
  --line:rgba(10,37,64,0.12);
  --line-sand:rgba(212,165,116,0.5);
  --line-white:rgba(255,255,255,0.12);
  --white-soft:rgba(255,255,255,0.78);
  --white-quiet:rgba(255,255,255,0.72);
  --white-dim:rgba(255,255,255,0.4);
  --shade:rgba(10,37,64,0.08);
  --display:"Outfit",system-ui,sans-serif;
  --body:Arial,Helvetica,sans-serif;
  --ease:cubic-bezier(0.2,0.7,0.2,1);
  --pad:20px;
  --gap:20px;
  --section:64px;
  --bar:76px;
}
@media (min-width:768px){
  :root{--pad:32px;--gap:24px;--section:96px}
}
@media (min-width:1200px){
  :root{--pad:48px;--gap:32px;--section:128px}
}

/* 2. Base */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--bar) + 16px)}
body{margin:0;background:var(--white);color:var(--charcoal);font-family:var(--body);font-size:1.0625rem;line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
h1,h2,h3,p,ul,ol,figure,address{margin:0}
ul,ol{padding:0;list-style:none}
address{font-style:normal}
a{color:inherit;text-decoration:none}
button{margin:0;padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer}
svg{display:block}
main:focus{outline:none}
a:focus-visible,button:focus-visible{outline:2px solid var(--sand);outline-offset:3px}

h1,h2,h3{font-family:var(--display);color:var(--navy)}
h1{font-weight:700;font-size:clamp(2.5rem,5.2vw,4.25rem);line-height:1.04;letter-spacing:-0.02em}
.hero h1{font-size:clamp(2.5rem,4.4vw,3.375rem)}
:lang(fr) .hero h1{text-wrap:balance}
.hero h1 .hl{color:var(--sand)}
h2{font-weight:700;font-size:clamp(1.875rem,3.2vw,2.75rem);line-height:1.1;letter-spacing:-0.01em;text-wrap:balance}
h3{font-weight:600;font-size:1.25rem;line-height:1.25}

.wrap{width:100%;max-width:1240px;margin:0 auto;padding:0 var(--pad)}
.section{padding:var(--section) 0}
.bg-gray{background:var(--light-gray)}
.on-navy{background:var(--navy);color:var(--white)}
.on-navy h1,.on-navy h2,.on-navy h3{color:var(--white)}

.skip{position:absolute;left:16px;top:-80px;z-index:60;padding:12px 18px;border-radius:4px;background:var(--olive);color:var(--white);font-weight:bold;font-size:0.9375rem}
.skip:focus{top:12px}

/* 3. Components */
.eyebrow{display:flex;align-items:center;gap:12px;font-weight:bold;font-size:0.75rem;line-height:1.4;letter-spacing:0.14em;text-transform:uppercase;color:var(--navy)}
.eyebrow::before{content:"";flex:none;width:7px;height:7px;background:var(--sand)}
.on-navy .eyebrow{color:var(--sand)}

.lead{font-size:1.1875rem;line-height:1.6}

.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:14px 26px;border:1px solid var(--olive);border-radius:4px;font-weight:bold;font-size:0.9375rem;line-height:1.2;text-align:center;transition:background-color 180ms var(--ease),border-color 180ms var(--ease),color 180ms var(--ease)}
.btn-primary{background:var(--olive);color:var(--white)}
.btn-primary:hover{background:var(--navy);border-color:var(--navy)}
.on-navy .btn-primary:hover{background:var(--white);border-color:var(--white);color:var(--navy)}
.btn-outline{border-color:var(--white);color:var(--white)}
.btn-outline:hover{background:var(--white);color:var(--navy)}

.link{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-weight:bold;font-size:0.9375rem;line-height:1.3;color:var(--olive);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px;text-decoration-color:rgba(74,103,65,0);transition:text-decoration-color 180ms var(--ease),color 180ms var(--ease)}
.link::after{content:"";flex:none;width:7px;height:7px;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:rotate(45deg);transition:transform 180ms var(--ease)}
.link:hover{text-decoration-color:var(--olive)}
.link:hover::after{transform:translateX(4px) rotate(45deg)}
.on-navy .link{color:var(--white);text-decoration-color:rgba(255,255,255,0)}
.on-navy .link:hover{color:var(--sand);text-decoration-color:var(--sand)}

.badge{display:inline-flex;align-items:center;padding:6px 10px;border-radius:4px;background:var(--olive-light);color:var(--olive);font-weight:bold;font-size:0.75rem;line-height:1.3;letter-spacing:0.08em;text-transform:uppercase}

.inline-list{display:flex;flex-wrap:wrap;row-gap:6px;margin-left:-12px;overflow:hidden;font-size:0.875rem;line-height:1.25}
.inline-list li{margin-left:-1px;padding:0 12px;border-left:1px solid var(--sand)}

.head{display:grid;gap:20px;margin-bottom:44px}
.head-main .eyebrow{margin-bottom:18px}
.head-text{font-size:1.1875rem;line-height:1.6}
.on-navy .head-text{color:var(--white-soft)}
.after{margin-top:36px}
.nb{white-space:nowrap}
@media (min-width:640px){
  .hl{display:block}
  .hero h1{font-size:clamp(2.75rem,5.6vw,4.5rem)}
  .hero h1 .hl{font-size:0.68em;line-height:1.1;margin-top:8px}
}
@media (min-width:600px){
  .nw{white-space:nowrap}
}
@media (min-width:600px) and (max-width:899px){
  h1{text-wrap:balance}
}
@media (min-width:900px){
  .head{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:32px;align-items:end;margin-bottom:72px}
  .head-main{grid-column:1 / 8}
  .head-text{grid-column:8 / 13}
  .after{margin-top:48px}
}

/* 4. Header */
.hd{position:sticky;top:0;z-index:40;background:var(--white);border-bottom:1px solid var(--line)}
.hd.is-scrolled{box-shadow:0 8px 24px var(--shade)}
.hd-in{display:flex;align-items:center;gap:16px;height:var(--bar)}
.brand{display:flex;flex-direction:column;justify-content:center;min-height:44px;margin-right:auto;color:var(--navy)}
.brand-mark{font-family:var(--display);font-weight:700;font-size:1.5rem;line-height:1;letter-spacing:0.06em}
.brand-line{margin-top:6px;font-size:0.6875rem;line-height:1.2;color:var(--charcoal);white-space:nowrap}
.menu-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin-right:-11px;border-radius:4px}
.menu-bars{position:relative;display:block;width:22px;height:2px;background:var(--navy)}
.menu-bars::before,.menu-bars::after{content:"";position:absolute;left:0;width:22px;height:2px;background:var(--navy)}
.menu-bars::before{top:-7px}
.menu-bars::after{top:7px}
.hd.is-open .menu-bars{background:rgba(10,37,64,0)}
.hd.is-open .menu-bars::before{top:0;transform:rotate(45deg)}
.hd.is-open .menu-bars::after{top:0;transform:rotate(-45deg)}
.hd-panel{display:none;position:absolute;left:0;right:0;top:100%;max-height:calc(100vh - var(--bar));overflow-y:auto;padding:4px var(--pad) 28px;background:var(--white);border-top:1px solid var(--line);border-bottom:1px solid var(--line);box-shadow:0 16px 24px var(--shade)}
.hd.is-open .hd-panel{display:block}
.nav a{display:flex;align-items:center;min-height:56px;border-bottom:1px solid var(--line);font-family:var(--display);font-weight:600;font-size:1.25rem;color:var(--navy)}
.lang{display:flex;align-items:center;margin:12px 0 12px -14px}
.lang a{position:relative;display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;font-weight:bold;font-size:0.8125rem;letter-spacing:0.08em;color:var(--charcoal);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:7px;text-decoration-color:rgba(212,165,116,0);transition:text-decoration-color 180ms var(--ease)}
.lang a:hover,.lang a[aria-current]{color:var(--navy);text-decoration-color:var(--sand)}
.lang a + a::before{content:"";position:absolute;left:0;top:50%;width:1px;height:14px;margin-top:-7px;background:var(--line)}
.hd-panel .btn{width:100%}
@media (max-width:479px){
  .brand-line{display:none}
}
@media (min-width:1024px){
  .menu-btn{display:none}
  .hd-in{gap:18px}
  .hd-panel,.hd.is-open .hd-panel{display:flex;position:static;align-items:center;gap:18px;max-height:none;overflow:visible;padding:0;border:0;box-shadow:none}
  .nav ul{display:flex;gap:16px}
  .nav a{justify-content:center;min-width:44px;min-height:44px;border:0;font-family:var(--body);font-weight:bold;font-size:0.875rem;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:9px;text-decoration-color:rgba(212,165,116,0);transition:text-decoration-color 180ms var(--ease)}
  .nav a:hover{text-decoration-color:var(--sand)}
  .lang{margin:0}
  .hd-panel .btn{width:auto;min-height:44px;padding:12px 18px}
  .nav a,.hd-panel .btn{white-space:nowrap}
}
@media (min-width:1024px) and (max-width:1199px){
  :lang(fr) .nav ul{gap:12px}
}
@media (min-width:1200px){
  .hd-in,.hd-panel{gap:30px}
  .nav ul{gap:28px}
  .nav a{font-size:0.9375rem}
  .hd-panel .btn{min-height:48px;padding:14px 26px}
}
@media (scripting:none) and (max-width:1023px){
  .hd{position:static}
  .hd-in{flex-wrap:wrap;height:auto;padding-top:16px;padding-bottom:20px}
  .menu-btn{display:none}
  .hd-panel{display:block;position:static;flex:1 0 100%;max-height:none;overflow:visible;padding:8px 0 0;border:0;box-shadow:none}
}

/* 5. Hero */
.hero{padding-top:48px}
.hero-top{display:grid;gap:26px}
.hero .eyebrow{margin-bottom:20px}
.hero .lead{color:var(--white-soft)}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.wm-box{margin-top:36px}
.hero-foot{display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:6px 0 30px}
.legend{display:flex;flex-wrap:wrap;gap:8px 28px;font-weight:bold;font-size:0.75rem;line-height:1.4;letter-spacing:0.14em;text-transform:uppercase;color:var(--white-soft)}
.legend li{display:flex;align-items:center;gap:10px}
.legend-dot{flex:none;width:10px;height:10px;border-radius:50%;background:var(--white)}
.legend-dot-sand{background:var(--sand)}
.markets{color:var(--white-soft)}
@media (min-width:900px){
  .hero{padding-top:72px}
  .hero-foot{align-items:flex-end}
  .inline-list-end{justify-content:flex-end;margin-left:0;margin-right:-12px}
  .inline-list-end li{margin-left:0;margin-right:-1px;border-left:0;border-right:1px solid var(--sand)}
}
@media (min-width:1024px){
  .hero-top{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:48px;row-gap:0;align-items:end}
  .hero-main{grid-column:1 / 9;grid-row:1}
  .hero-side{display:contents}
  .hero-side .lead{grid-column:9 / 13;grid-row:1 / 3;align-self:end}
  .hero-side .btn-row{grid-column:1 / 9;grid-row:2}
}
@media (min-width:768px){
  .markets{display:none}
}

/* 6. Stats band */
.stats-in{border-bottom:1px solid var(--line)}
.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 20px;padding:30px 0}
.stat-num{display:block;font-family:var(--display);font-weight:700;font-size:clamp(1.75rem,3vw,2.75rem);line-height:1.1;color:var(--navy);white-space:nowrap;font-variant-numeric:tabular-nums}
.stat-label{display:block;margin-top:8px;font-weight:bold;font-size:0.75rem;line-height:1.5;letter-spacing:0.14em;text-transform:uppercase;color:var(--charcoal)}
@media (min-width:900px){
  .stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:0;padding:0}
  .stat{padding:34px 28px}
  .stat + .stat{border-left:1px solid var(--line-sand)}
  .stat:first-child{padding-left:0}
  .stat:last-child{padding-right:0}
}

/* 7. Factory floor */
.floor{position:relative}
.floor-line{display:none;position:absolute;left:32px;top:31px;z-index:0;height:2px}
.floor-list{position:relative;z-index:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 20px}
.floor-list li{display:flex;flex-direction:column;align-items:flex-start;gap:16px}
.fl-disc{display:flex;align-items:center;justify-content:center;width:64px;height:64px;border:1px solid var(--sand);border-radius:50%;background:var(--white)}
.fl-label{font-family:var(--display);font-weight:600;font-size:1.125rem;line-height:1.25;color:var(--navy)}
.fl-pulse{stroke-dasharray:0.028 1}
@media (min-width:600px){
  .floor-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 24px}
}
@media (min-width:1024px){
  .floor-list{grid-template-columns:repeat(6,minmax(0,1fr));gap:24px}
  .floor-line{display:block;width:calc((100% - 120px) * 5 / 6 + 120px)}
}

/* 8. Product cards */
.cards{display:grid;gap:var(--gap)}
.cards > li{display:flex}
.card{display:flex;flex-direction:column;width:100%;border:1px solid var(--line);border-radius:4px;background:var(--white);transition:border-color 180ms var(--ease),transform 180ms var(--ease)}
.card-fig{padding:22px 14px 8px}
.gf{width:100%;max-width:340px;height:auto;margin:0 auto}
.card-body{display:flex;flex:1;flex-direction:column;align-items:flex-start;padding:20px 24px 16px;border-top:1px solid var(--line)}
.card-code{font-weight:bold;font-size:0.75rem;line-height:1.4;letter-spacing:0.14em;text-transform:uppercase;color:var(--charcoal)}
.card h3{margin-top:10px}
.gsm{margin-top:14px}
.gsm-main{display:block;font-weight:bold;color:var(--navy)}
.gsm-note{display:block;font-size:0.875rem;line-height:1.5;color:var(--charcoal)}
.card-text{margin-top:14px;margin-bottom:10px}
.card .link{margin-top:auto}
@media (hover:hover){
  .card:hover{border-color:var(--sand);transform:translateY(-4px)}
}
@media (min-width:600px){
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:1200px){
  .cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
}

/* 9. Why TEXIVOS */
.why{display:grid;gap:44px var(--gap)}
.why-n{display:block;font-family:var(--display);font-weight:700;font-size:2.5rem;line-height:1;color:var(--sand)}
.why h3{margin-top:18px;padding-top:20px;border-top:1px solid var(--sand)}
.why p{margin-top:10px}
@media (min-width:600px){
  .why{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:900px){
  .why{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:64px}
}

/* 10. Process */
.steps{position:relative}
.steps-line{position:absolute;left:21.5px;top:22px;bottom:22px;z-index:0;width:1px;background:var(--sand);transform-origin:50% 0}
.steps-list{position:relative;z-index:1;display:grid;gap:28px}
.steps-list li{display:flex;align-items:center;gap:18px}
.step-node{flex:none;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--sand);border-radius:50%;background:var(--navy)}
.step-n{font-family:var(--display);font-weight:600;font-size:1.125rem;line-height:1;color:var(--sand)}
.step-label{font-family:var(--display);font-weight:600;font-size:1.25rem;line-height:1.25;color:var(--white)}
@media (min-width:768px){
  .steps-line{left:22px;top:21.5px;bottom:auto;width:calc((100% - 3 * var(--gap)) * 3 / 4 + 3 * var(--gap));height:1px;transform-origin:0 50%}
  .steps-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap)}
  .steps-list li{flex-direction:column;align-items:flex-start;gap:20px}
}

/* 11. Shipping */

/* 12. Quality */
.cp{position:relative;margin-bottom:44px}
.cp-line{position:absolute;left:19px;top:20px;bottom:20px;z-index:0;width:2px;background:var(--sand);transform-origin:50% 0}
.cp-list{position:relative;z-index:1;display:grid;gap:22px}
.cp-list li{display:flex;align-items:center;gap:16px}
.cp-disc{flex:none;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--navy);color:var(--white);font-family:var(--display);font-weight:700;font-size:1rem;line-height:1}
.cp-label{font-weight:bold;font-size:1rem;line-height:1.35;color:var(--navy)}
.q-foot{display:grid;gap:24px}
.q-claim{font-weight:bold;font-size:1.1875rem;line-height:1.5;color:var(--navy)}
.q-list li{position:relative;padding:13px 0 13px 26px;border-top:1px solid var(--line)}
.q-list li:last-child{border-bottom:1px solid var(--line)}
.q-list li::before{content:"";position:absolute;left:0;top:23px;width:8px;height:8px;background:var(--olive)}
@media (min-width:768px){
  .cp{margin-bottom:64px}
  .cp-line{left:20px;top:19px;bottom:auto;width:calc((100% - 5 * var(--gap)) * 5 / 6 + 5 * var(--gap));height:2px;transform-origin:0 50%}
  .cp-list{grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--gap)}
  .cp-list li{flex-direction:column;align-items:flex-start;gap:14px}
}
@media (min-width:900px){
  .q-foot{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:32px;align-items:start}
  .q-claim{grid-column:1 / 6}
  .q-list{grid-column:7 / 13}
}

/* 13. Certification roadmap */

/* 14. Heritage */
.heritage{padding-bottom:var(--section)}
.heritage-in{display:grid;gap:36px;padding-top:var(--section);border-top:2px solid var(--sand)}
.year{margin-top:20px;font-family:var(--display);font-weight:700;font-size:clamp(6rem,14vw,12rem);line-height:0.9;letter-spacing:-0.03em;color:var(--navy)}
.heritage-text{margin-top:20px}
.badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px;margin-bottom:20px}
@media (min-width:900px){
  .heritage-in{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:32px;align-items:end}
  .heritage-year{grid-column:1 / 6}
  .heritage-body{grid-column:6 / 13}
}

/* 15. Call to action */
.cta-in{display:grid;gap:22px}
.cta .lead{color:var(--white-soft)}
.cta .btn{margin-top:28px}
@media (min-width:900px){
  .cta-in{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:32px;align-items:start}
  .cta-in h2{grid-column:1 / 8}
  .cta-side{grid-column:8 / 13}
}

/* 16. Footer */
.ft-in{padding:56px 0 24px;border-top:1px solid var(--line-white)}
.ft-grid{display:grid;gap:36px var(--gap)}
.ft-h{margin-bottom:8px;font-weight:bold;font-size:0.75rem;line-height:1.4;letter-spacing:0.14em;text-transform:uppercase;color:var(--sand)}
.ft a{display:inline-flex;align-items:center;min-height:44px;color:var(--white);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px;text-decoration-color:rgba(212,165,116,0);transition:text-decoration-color 180ms var(--ease),color 180ms var(--ease)}
.ft a:hover{text-decoration-color:var(--sand)}
.ft-addr{margin-top:10px;line-height:1.55}
.ft-addr + .ft-addr{margin-top:20px}
.ft-addr-name{display:block;font-family:var(--display);font-weight:600;color:var(--white)}
.ft-addr-line{display:block;color:var(--white-soft)}
.social{display:flex;gap:4px;margin-left:-10px}
.social a{justify-content:center;width:44px;height:44px}
.social a:hover{color:var(--sand)}
.ft-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 32px;margin-top:44px;padding-top:16px;border-top:1px solid var(--line-white);font-size:0.875rem;color:var(--white-quiet)}
.ft-facts{display:flex;flex-wrap:wrap;gap:6px 32px}
.ft-legal{display:flex;flex-wrap:wrap;gap:0 28px}
@media (min-width:600px){
  .ft-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:1024px){
  .ft-in{padding-top:72px}
  .ft-grid{grid-template-columns:1fr 1.15fr 1.5fr 0.7fr}
}

/* 17. Motion. The hero text runs at page load. Every other effect starts when its block enters the view. */
@keyframes rise{
  from{opacity:0;transform:translateY(16px)}
  to{opacity:1;transform:translateY(0)}
}
.rise{animation:rise 600ms var(--ease) both}
.rise-2{animation-delay:90ms}
.rise-3{animation-delay:180ms}
.rise-4{animation-delay:270ms}

.rv:not(.is-in).reveal{opacity:0;transform:translateY(16px)}
.rv.is-in.reveal{transition:opacity 600ms var(--ease) var(--rd,0ms),transform 600ms var(--ease) var(--rd,0ms)}

.rv .gf-o{stroke-dasharray:1 3}
.rv:not(.is-in) .gf-o{stroke-dashoffset:1.01}
.rv:not(.is-in) .gf-s{opacity:0}
.rv.is-in .gf-o{transition:stroke-dashoffset 1400ms var(--ease) var(--gd,0ms)}
.rv.is-in .gf-s{transition:opacity 400ms linear calc(1400ms + var(--gd,0ms))}

.rv .fl-track{stroke-dasharray:1}
.rv:not(.is-in) .fl-track{stroke-dashoffset:1}
.rv:not(.is-in) .fl-pulse{opacity:0}
.rv:not(.is-in) .fl-disc{opacity:0;transform:scale(0.85)}
.rv:not(.is-in) .fl-label{opacity:0}
.rv.is-in .fl-track{transition:stroke-dashoffset 1200ms var(--ease)}
.rv.is-in .fl-pulse{transition:opacity 200ms linear 900ms}
.rv.is-in .fl-disc{transition:opacity 500ms var(--ease) var(--fd,0ms),transform 500ms var(--ease) var(--fd,0ms)}
.rv.is-in .fl-label{transition:opacity 500ms var(--ease) var(--fd,0ms)}
.floor-list li:nth-child(2){--fd:120ms}
.floor-list li:nth-child(3){--fd:240ms}
.floor-list li:nth-child(4){--fd:360ms}
.floor-list li:nth-child(5){--fd:480ms}
.floor-list li:nth-child(6){--fd:600ms}
@keyframes pulse{
  0%{stroke-dashoffset:0;animation-timing-function:cubic-bezier(0.45,0,0.3,1)}
  30%{stroke-dashoffset:-1}
  100%{stroke-dashoffset:-1}
}
.is-in .fl-pulse{animation:pulse 6s linear 1600ms infinite}

.rv:not(.is-in) .steps-line{transform:scaleY(0)}
.rv:not(.is-in) .step-node{border-color:var(--white-dim)}
.rv:not(.is-in) .step-n{opacity:0}
.rv.is-in .steps-line{transition:transform 1200ms var(--ease)}
.rv.is-in .step-node{transition:border-color 400ms linear var(--sd,150ms)}
.rv.is-in .step-n{transition:opacity 400ms linear var(--sd,150ms)}
.steps-list li:nth-child(2){--sd:400ms}
.steps-list li:nth-child(3){--sd:650ms}
.steps-list li:nth-child(4){--sd:900ms}

.rv:not(.is-in) .cp-line{transform:scaleY(0)}
.rv:not(.is-in) .cp-list li{opacity:0}
.rv.is-in .cp-line{transition:transform 1200ms var(--ease)}
.rv.is-in .cp-list li{transition:opacity 400ms linear var(--cd,100ms)}
.cp-list li:nth-child(2){--cd:250ms}
.cp-list li:nth-child(3){--cd:400ms}
.cp-list li:nth-child(4){--cd:550ms}
.cp-list li:nth-child(5){--cd:700ms}
.cp-list li:nth-child(6){--cd:850ms}

@media (min-width:768px){
  .rv:not(.is-in) .steps-line,.rv:not(.is-in) .cp-line{transform:scaleX(0)}
}
@media (min-width:600px) and (max-width:899px){
  .why > :nth-child(even){--rd:80ms}
}
@media (min-width:600px) and (max-width:1199px){
  .cards > :nth-child(even){--rd:80ms;--gd:120ms}
}
@media (min-width:900px){
  .why > :nth-child(2){--rd:80ms}
  .why > :nth-child(3){--rd:160ms}
  .why > :nth-child(4){--rd:240ms}
  .why > :nth-child(5){--rd:320ms}
  .why > :nth-child(6){--rd:400ms}
}
@media (min-width:1200px){
  .cards > :nth-child(2){--rd:80ms;--gd:120ms}
  .cards > :nth-child(3){--rd:160ms;--gd:240ms}
  .cards > :nth-child(4){--rd:240ms;--gd:360ms}
}

/* 19. Given maps: hero world map, then shipping map. Kept line for line. */
/* World map, hero */
.wm{width:100%;height:auto;display:block}
.wm-d0,.wm-d1,.wm-d2{fill:none;stroke-linecap:round;stroke-width:3.1}
.wm-d0{stroke:rgba(255,255,255,0.2)}
.wm-d1{stroke:rgba(255,255,255,0.72);animation:wm-fade 0.8s ease-out both}
.wm-d2{stroke:#D4A574}
.wm-arc{fill:none;stroke:rgba(212,165,116,0.5);stroke-width:1.3;stroke-dasharray:1;stroke-dashoffset:1;animation:wm-draw 1s cubic-bezier(0.4,0,0.2,1) forwards}
.wm-run{fill:none;stroke:#D4A574;stroke-width:2.6;stroke-linecap:round;stroke-dasharray:0.09 1.2;stroke-dashoffset:0.09;opacity:0;animation-name:wm-run;animation-timing-function:cubic-bezier(0.45,0,0.3,1);animation-iteration-count:infinite}
.wm-node{opacity:0;animation:wm-fade 0.4s ease-out forwards}
.wm-dot{fill:#FFFFFF}
.wm-ping{fill:none;stroke:#FFFFFF;stroke-width:1.2;transform-box:fill-box;transform-origin:center;opacity:0;animation:wm-ping 3.8s ease-out infinite}
.wm-origin{fill:#D4A574}
.wm-beacon{fill:none;stroke:#D4A574;stroke-width:1.4;transform-box:fill-box;transform-origin:center;animation:wm-beacon 3s ease-out infinite}
.wm-b2{animation-delay:1.5s}
.wm-lab{opacity:0;animation:wm-fade 0.5s ease-out forwards}
.wm-l1{animation-delay:0.8s}.wm-l2{animation-delay:0.9s}.wm-l3{animation-delay:1s}.wm-l4{animation-delay:1.1s}
.wm-lab text{font:600 15px Outfit,system-ui,sans-serif;fill:#FFFFFF}
.wm-pill{fill:#0A2540;stroke:rgba(255,255,255,0.45);stroke-width:1}
.wm-lead{stroke:rgba(255,255,255,0.45);stroke-width:1;fill:none}
.wm-a1{animation-delay:0.10s}.wm-r1{animation-duration:3.11s;animation-delay:0.90s}.wm-n1{animation-delay:0.45s}.wm-p1{animation-delay:3.45s}
.wm-a2{animation-delay:0.14s}.wm-r2{animation-duration:3.05s;animation-delay:1.20s}.wm-n2{animation-delay:0.49s}.wm-p2{animation-delay:3.70s}
.wm-a3{animation-delay:0.18s}.wm-r3{animation-duration:2.89s;animation-delay:1.50s}.wm-n3{animation-delay:0.53s}.wm-p3{animation-delay:3.87s}
.wm-a4{animation-delay:0.22s}.wm-r4{animation-duration:2.79s;animation-delay:1.80s}.wm-n4{animation-delay:0.57s}.wm-p4{animation-delay:4.09s}
.wm-a5{animation-delay:0.26s}.wm-r5{animation-duration:3.12s;animation-delay:2.10s}.wm-n5{animation-delay:0.61s}.wm-p5{animation-delay:4.66s}
.wm-a6{animation-delay:0.30s}.wm-r6{animation-duration:3.08s;animation-delay:2.40s}.wm-n6{animation-delay:0.65s}.wm-p6{animation-delay:4.93s}
.wm-a7{animation-delay:0.34s}.wm-r7{animation-duration:3.17s;animation-delay:2.70s}.wm-n7{animation-delay:0.69s}.wm-p7{animation-delay:5.30s}
.wm-a8{animation-delay:0.38s}.wm-r8{animation-duration:2.95s;animation-delay:3.00s}.wm-n8{animation-delay:0.73s}.wm-p8{animation-delay:5.42s}
.wm-a9{animation-delay:0.42s}.wm-r9{animation-duration:2.88s;animation-delay:3.30s}.wm-n9{animation-delay:0.77s}.wm-p9{animation-delay:5.66s}
.wm-a10{animation-delay:0.46s}.wm-r10{animation-duration:2.91s;animation-delay:3.60s}.wm-n10{animation-delay:0.81s}.wm-p10{animation-delay:5.99s}
.wm-a11{animation-delay:0.50s}.wm-r11{animation-duration:2.88s;animation-delay:3.90s}.wm-n11{animation-delay:0.85s}.wm-p11{animation-delay:6.26s}
.wm-a12{animation-delay:0.54s}.wm-r12{animation-duration:4.08s;animation-delay:4.20s}.wm-n12{animation-delay:0.89s}.wm-p12{animation-delay:7.55s}
@keyframes wm-draw{to{stroke-dashoffset:0}}
@keyframes wm-fade{from{opacity:0}to{opacity:1}}
@keyframes wm-run{0%{stroke-dashoffset:0.09;opacity:0}8%{opacity:1}78%{opacity:1}92%{stroke-dashoffset:-1;opacity:0}100%{stroke-dashoffset:-1;opacity:0}}
@keyframes wm-ping{0%{transform:scale(1);opacity:0.9}22%{transform:scale(3.6);opacity:0}100%{transform:scale(3.6);opacity:0}}
@keyframes wm-beacon{0%{transform:scale(0.7);opacity:1}100%{transform:scale(3.4);opacity:0}}
.wm-lab{transform-box:fill-box}
.wm-l1,.wm-l4{transform-origin:0 0}
.wm-l2{transform-origin:100% 100%}
.wm-l3{transform-origin:0 100%}
@media (max-width:767px){.wm-lab{display:none}}
@media (min-width:768px) and (max-width:1023px){.wm{overflow:visible}}
@media (min-width:768px) and (max-width:899px){.wm-lab{transform:scale(1.6)}}
@media (min-width:900px) and (max-width:1023px){.wm-lab{transform:scale(1.35)}}
@media (min-width:1024px) and (max-width:1149px){.wm-lab{transform:scale(1.25)}}
@media (min-width:1150px) and (max-width:1279px){.wm-lab{transform:scale(1.1)}}
@media (max-width:600px){.wm-box{overflow:hidden;height:50vw}.wm{width:200%;max-width:none;margin-left:-45%}}
@media (prefers-reduced-motion:reduce){.wm-arc{animation:none;stroke-dashoffset:0}.wm-run,.wm-ping,.wm-beacon{display:none}.wm-node,.wm-lab,.wm-d1{animation:none;opacity:1}}
/* Shipping map, Europe and the Mediterranean, on a Navy panel */
.sm{width:100%;height:auto;display:block}
.sm-shape{fill:rgba(255,255,255,0.05)}
.sm-land{fill:none;stroke:rgba(255,255,255,0.22);stroke-width:3.6;stroke-linecap:round}
.sm-routes{opacity:0.62}
.sm-route{fill:none;stroke:#D4A574;stroke-width:1.5;stroke-dasharray:1;stroke-dashoffset:0}
.sm-road{fill:none;stroke:rgba(255,255,255,0.72);stroke-width:2.4;stroke-linecap:round;stroke-dasharray:0.1 7}
.sm-run{fill:none;stroke:#D4A574;stroke-width:3;stroke-linecap:round;stroke-dasharray:0.05 1.2;stroke-dashoffset:0.05;opacity:0;animation-name:sm-run;animation-timing-function:cubic-bezier(0.45,0,0.3,1);animation-iteration-count:infinite}
.sm-run-road{stroke:#FFFFFF}
.sm-port,.sm-end{fill:#FFFFFF}
.sm-port-origin{fill:#D4A574}
.sm-ping{fill:none;stroke:#FFFFFF;stroke-width:1.3;transform-box:fill-box;transform-origin:center;opacity:0;animation:sm-ping 5s ease-out infinite}
.sm-origin{fill:#D4A574}
.sm-beacon{fill:none;stroke:#D4A574;stroke-width:1.5;transform-box:fill-box;transform-origin:center;animation:sm-beacon 3s ease-out infinite}
.sm-b2{animation-delay:1.5s}
.sm-label{font:600 18.5px Outfit,system-ui,sans-serif;fill:#FFFFFF;paint-order:stroke;stroke:#0A2540;stroke-width:4.5px;stroke-linejoin:round}
.sm-label-origin{fill:#D4A574}
.sm-pill{fill:#0A2540;stroke:rgba(255,255,255,0.45);stroke-width:1}
.sm-pill-t{font:600 17px Outfit,system-ui,sans-serif;fill:#FFFFFF}
.sm-t1{--sm-d:0ms}.sm-u1{animation-duration:4.18s;animation-delay:0.60s}.sm-g1{animation-delay:4.11s}
.sm-t2{--sm-d:70ms}.sm-u2{animation-duration:4.73s;animation-delay:1.50s}.sm-g2{animation-delay:5.47s}
.sm-t3{--sm-d:140ms}.sm-u3{animation-duration:5.62s;animation-delay:2.40s}.sm-g3{animation-delay:7.12s}
.sm-t4{--sm-d:210ms}.sm-u4{animation-duration:5.75s;animation-delay:3.30s}.sm-g4{animation-delay:8.13s}
.sm-t5{--sm-d:280ms}.sm-u5{animation-duration:8.30s;animation-delay:4.20s}.sm-g5{animation-delay:11.17s}
.sm-t6{--sm-d:350ms}.sm-u6{animation-duration:8.29s;animation-delay:5.10s}.sm-g6{animation-delay:12.06s}
.sm-t7{--sm-d:420ms}.sm-u7{animation-duration:8.77s;animation-delay:6.00s}.sm-g7{animation-delay:13.37s}
.sm-w1{animation-duration:5.42s;animation-delay:1.40s}
.sm-w2{animation-duration:3.83s;animation-delay:3.60s}
.rv:not(.is-in) .sm-route{stroke-dashoffset:1}
.rv.is-in .sm-route{transition:stroke-dashoffset 1500ms cubic-bezier(0.4,0,0.2,1) var(--sm-d,0ms)}
@keyframes sm-run{0%{stroke-dashoffset:0.05;opacity:0}6%{opacity:1}80%{opacity:1}92%{stroke-dashoffset:-1;opacity:0}100%{stroke-dashoffset:-1;opacity:0}}
@keyframes sm-ping{0%{transform:scale(1);opacity:0.9}18%{transform:scale(3.4);opacity:0}100%{transform:scale(3.4);opacity:0}}
@keyframes sm-beacon{0%{transform:scale(0.7);opacity:1}100%{transform:scale(3.2);opacity:0}}
@media (max-width:1023px){.sm-label{font-size:22px}}
@media (max-width:600px){.sm-label{font-size:29px}.sm-tag{display:none}}
@media (prefers-reduced-motion:reduce){.sm-run,.sm-ping,.sm-beacon{display:none}.rv:not(.is-in) .sm-route{stroke-dashoffset:0}}
/* Continuous motion rests while its drawing is out of view */
.wm.is-out .wm-run,.wm.is-out .wm-ping,.wm.is-out .wm-beacon,.sm.is-out .sm-run,.sm.is-out .sm-ping,.sm.is-out .sm-beacon,.floor.is-out .fl-pulse{animation-play-state:paused}
/* Shipping: routes panel */
.lanes{display:grid;border-radius:4px;overflow:hidden;background:var(--navy);color:var(--white)}
.lanes-map{order:-1}
.lanes-list{padding:28px 24px 32px}
.lane + .lane{margin-top:26px;padding-top:26px;border-top:1px solid var(--line-white)}
.lane h3{font-family:var(--body);font-weight:bold;font-size:0.75rem;line-height:1.4;letter-spacing:0.14em;text-transform:uppercase;color:var(--sand)}
.lane-fig{margin-top:8px;font-family:var(--display);font-weight:700;font-size:1.5rem;line-height:1.2;color:var(--white)}
.lane-text{font-size:0.9375rem;line-height:1.55;color:var(--white-soft)}
@media (max-width:600px){
  .lanes{margin-left:calc(var(--pad) * -1);margin-right:calc(var(--pad) * -1);border-radius:0}
}
@media (min-width:1024px){
  .lanes{grid-template-columns:minmax(0,4fr) minmax(0,8fr);align-items:center}
  .lanes-map{order:0}
  .lanes-list{padding:40px 16px 40px 44px}
}
/* Compliance programme */
.comp-top{display:flex;align-items:center;gap:16px;padding-bottom:18px;border-bottom:2px solid var(--sand)}
.comp-stage{font-family:var(--display);font-weight:700;font-size:1.5rem;line-height:1.1;color:var(--navy)}
.comp-list{display:grid}
.comp-list li{padding:22px 0;border-bottom:1px solid var(--line)}
.comp-list h3{font-size:1.125rem;line-height:1.3}
.comp-list p{margin-top:6px;font-size:0.9375rem;line-height:1.5}
@media (min-width:600px){
  .comp-list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--gap)}
}
@media (min-width:1024px){
  .comp-list{grid-template-columns:repeat(4,minmax(0,1fr));column-gap:0}
  .comp-list li{padding:26px 28px 6px;border-bottom:0;border-left:1px solid var(--line-sand)}
  .comp-list li:first-child{padding-left:0;border-left:0}
}

/* Inner pages: page heading, specification table, compliance stages */
.ph{padding-bottom:56px}
.ph h1 .hl{display:block}
.nav a[aria-current]{text-decoration-color:var(--sand)}
.head-solo{margin-bottom:0}
.q-text{font-size:1.1875rem;line-height:1.6}
.spec{margin:0;border-top:2px solid var(--sand)}
.spec-row{display:grid;gap:6px;padding:18px 0;border-bottom:1px solid var(--line)}
.spec dt{font-weight:bold;font-size:0.75rem;line-height:1.4;letter-spacing:0.14em;text-transform:uppercase;color:var(--charcoal)}
.spec dd{margin:0;font-family:var(--display);font-weight:600;font-size:1.25rem;line-height:1.3;color:var(--navy)}
.comp + .comp{margin-top:56px}
.comp-rows li{display:grid;gap:4px;padding:18px 0;border-bottom:1px solid var(--line)}
.comp-rows h3{font-size:1.125rem;line-height:1.3}
.comp-rows p{font-size:0.9375rem;line-height:1.5}
.badge-quiet{background:var(--light-gray);color:var(--charcoal)}
.comp-top{flex-wrap:wrap;row-gap:8px}
.comp-top .badge,.comp-stage{white-space:nowrap}
.rows-top{border-top:2px solid var(--sand)}
.ph h1 .hl{text-wrap:balance}
.scenes{display:grid;gap:44px var(--gap)}
.scene-art{padding:16px 16px 12px;border:1px solid var(--line-white);border-radius:4px}
.art{display:block;width:100%;height:auto;aspect-ratio:3 / 2}
.scenes h3{margin-top:22px;font-size:1.25rem;line-height:1.3}
.scenes p{margin-top:10px;font-size:0.9375rem;line-height:1.55;color:var(--white-soft)}
.why-4 h3{position:relative;border-top-color:transparent}
.why-4 h3::before{content:"";position:absolute;left:0;top:-1px;width:100%;height:1px;background:var(--sand);transform-origin:left center}
.why-4 .rv:not(.is-in) h3::before{transform:scaleX(0)}
.why-4 .rv.is-in h3::before{transition:transform 700ms var(--ease) calc(var(--rd,0ms) + 200ms)}
@media (min-width:600px){
  .scenes{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:900px){
  .why-4 > :nth-child(3n+1){--rd:0ms}
  .why-4 > :nth-child(3n+2){--rd:120ms}
  .why-4 > :nth-child(3n){--rd:240ms}
}
@media (min-width:1024px){
  .scenes{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:64px}
  .scenes > :nth-child(3n+2){--rd:120ms}
  .scenes > :nth-child(3n){--rd:240ms}
}
@media (min-width:1200px){
  .why-4{grid-template-columns:repeat(4,minmax(0,1fr))}
  .why-4 > :nth-child(4n+1){--rd:0ms}
  .why-4 > :nth-child(4n+2){--rd:120ms}
  .why-4 > :nth-child(4n+3){--rd:240ms}
  .why-4 > :nth-child(4n){--rd:360ms}
}
@media print{
  .why-4 .rv:not(.is-in) h3::before{transform:none}
}
.jump{margin-top:22px}
.jump a{display:inline-flex;align-items:center;min-height:44px;font-weight:bold;color:var(--white);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px;text-decoration-color:var(--line-sand);transition:color 180ms var(--ease),text-decoration-color 180ms var(--ease)}
.jump a:hover{color:var(--sand);text-decoration-color:var(--sand)}
.pr{display:grid;gap:36px}
.pr-fig{padding:24px 20px 20px;border:1px solid var(--line);border-radius:4px;background:var(--white)}
.pr-fig .gf{max-width:440px}
.pr-keys{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line);counter-reset:prk;font-size:0.875rem;line-height:1.4}
.pr-keys li{display:flex;align-items:center;gap:8px;counter-increment:prk}
.pr-keys li::before{content:counter(prk);display:flex;flex:none;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--navy);font-weight:bold;font-size:0.6875rem;line-height:1;color:var(--white)}
.pr-styles{display:grid;gap:48px var(--gap);align-content:start}
.pr-style h3{margin-top:10px}
.pr-text{margin-top:12px}
.wt{margin-top:22px}
.wt-val{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 16px}
.wt-k,.pr-spec dt{font-weight:bold;font-size:0.75rem;line-height:1.4;letter-spacing:0.14em;text-transform:uppercase;color:var(--charcoal)}
.wt-v{font-family:var(--display);font-weight:600;font-size:1.25rem;line-height:1.3;color:var(--navy)}
.wt-track{position:relative;height:8px;margin-top:12px;border-radius:4px;background:var(--line);overflow:hidden}
.wt-bar{position:absolute;top:0;bottom:0;border-radius:4px;background:var(--sand);transform-origin:left center}
.wt-150-190 .wt-bar{left:0;width:20%}
.wt-180-240 .wt-bar{left:15%;width:30%}
.wt-280-350 .wt-bar{left:65%;width:35%}
.wt-scale{display:flex;justify-content:space-between;margin-top:6px;font-size:0.75rem;line-height:1.4;font-variant-numeric:tabular-nums}
.wt-note{margin-top:6px;font-size:0.875rem;line-height:1.5}
.pr-spec{margin:22px 0 0;border-top:1px solid var(--line)}
.pr-spec div{display:grid;gap:4px;padding:14px 0;border-bottom:1px solid var(--line)}
.pr-spec dd{margin:0;line-height:1.5;color:var(--navy)}
.gf-n text{font:700 9px Arial,Helvetica,sans-serif;fill:#FFFFFF}
.gf-n-s text{font-size:7.5px}
.gf-d{transform-box:fill-box;transform-origin:center}
.gf-k2{--dd:100ms}
.gf-k3{--dd:200ms}
.gf-k4{--dd:300ms}
.pr-chip{display:inline-block;margin-top:14px;padding:5px 10px;border-radius:3px;background:var(--olive-light);font-weight:bold;font-size:0.8125rem;line-height:1.4;color:var(--olive)}
.pr-chip + .pr-keys{margin-top:14px}
.sw-pc{transform-box:fill-box}
.sw-slv{--pd:140ms}
.sw-col,.sw-pkt{--pd:280ms}
.sw-nd{opacity:0;offset-rotate:0deg}
.sw-q1{--ss:650ms}
.sw-q2{--ss:800ms}
.sw-q3{--ss:950ms}
.sw-q4{--ss:1100ms}
.sw-q5{--ss:1250ms}
.sw-q6{--ss:1400ms}
.sw-q7{--ss:1550ms}
.nd-ts1{offset-path:path("M137.8,73.8 C137.8,85.8 130.2,93.3 120,93.3")}
.nd-ts2{offset-path:path("M136.6,75.4 L156.4,82")}
.nd-ts3{offset-path:path("M155.8,82.6 C152.4,93 153.6,106 161.2,115.4")}
.nd-ts4{offset-path:path("M182.6,98.1 L167.6,118.7")}
.nd-ts5{offset-path:path("M162,118 C162.6,140 163,164 163,183.4")}
.nd-ts6{offset-path:path("M163,183.7 Q142.5,184.4 120,184.4")}
.nd-pl1{offset-path:path("M138.8,76.4 L156.4,82")}
.nd-pl2{offset-path:path("M155.8,82.6 C152.4,93 153.6,106 161.2,115.4")}
.nd-pl3{offset-path:path("M162,118 C162.6,139 163,160 163,179.6")}
.nd-pl4{offset-path:path("M163.6,186.9 Q142,187.7 120,187.7")}
.nd-sw1{offset-path:path("M138.8,73.7 C138.8,86.5 130.8,94.4 120,94.4")}
.nd-sw2{offset-path:path("M139.4,75.6 L158.8,81.4")}
.nd-sw3{offset-path:path("M158.2,82.4 C154.6,93 155.6,106.5 163,115.6")}
.nd-sw4{offset-path:path("M223,125.3 L214.2,137.3")}
.nd-sw5{offset-path:path("M164,118.4 C164.7,136 165,156 164.7,169.4")}
.nd-sw6{offset-path:path("M164.7,170.5 Q142,171.9 120,171.9")}
.nd-hd1{offset-path:path("M124.6,92.4 C131.2,86.4 137.2,76.8 137.1,65 C137,51.5 130.2,40 120,40")}
.nd-hd2{offset-path:path("M141.4,76.6 L158.8,81.4")}
.nd-hd3{offset-path:path("M158.2,82.4 C154.6,93 155.6,106.5 163,115.6")}
.nd-hd4{offset-path:path("M223,125.3 L214.2,137.3")}
.nd-hd5{offset-path:path("M164,118.4 C164.7,136 165,156 164.7,169.4")}
.nd-hd6{offset-path:path("M120,145 L137.1,145 L146.1,160.3 L146.1,173.9")}
.nd-hd7{offset-path:path("M164.7,170.5 Q142,171.9 120,171.9")}
.rv .gf-c,.rv .sw-mk,.rv .sw-wp{stroke-dasharray:1 3}
.rv:not(.is-in) .gf-c,.rv:not(.is-in) .sw-mk,.rv:not(.is-in) .sw-wp{stroke-dashoffset:1.01}
.rv:not(.is-in) .sw-pc{opacity:0}
.rv:not(.is-in) .sw-body{transform:translateY(10px)}
.rv:not(.is-in) .sw-slv{transform:translate(20px,-8px) rotate(14deg)}
.rv:not(.is-in) .sw-col{transform:translateY(-20px)}
.rv:not(.is-in) .sw-pkt{transform:translateY(14px)}
.rv:not(.is-in) .gf-d{opacity:0;transform:scale(0.4)}
.rv:not(.is-in) .pr-keys li,.rv:not(.is-in) .pr-chip{opacity:0}
.rv:not(.is-in) .wt-bar{transform:scaleX(0)}
.rv.is-in .sw-pc{transition:opacity 320ms linear var(--pd,0ms),transform 560ms var(--ease) var(--pd,0ms)}
.rv.is-in .sw-mk{transition:stroke-dashoffset 240ms linear var(--ss,650ms)}
.rv.is-in .sw-nd{animation:sw-needle 240ms linear var(--ss,650ms) forwards}
.rv.is-in .sw-wp{transition:stroke-dashoffset 800ms var(--ease) 1700ms}
.rv.is-in .gf-c{transition:stroke-dashoffset 400ms var(--ease) calc(2250ms + var(--dd,0ms))}
.rv.is-in .gf-d{transition:opacity 260ms linear calc(2400ms + var(--dd,0ms)),transform 360ms var(--ease) calc(2400ms + var(--dd,0ms))}
.rv.is-in .pr-keys li,.rv.is-in .pr-chip{transition:opacity 400ms linear 2350ms}
@keyframes sw-needle{0%{offset-distance:0%;opacity:1}99%{offset-distance:100%;opacity:1}100%{offset-distance:100%;opacity:0}}
.rv.is-in .wt-bar{transition:transform 900ms var(--ease) 350ms}
@media (min-width:600px){
  .pr-spec div{grid-template-columns:120px minmax(0,1fr);column-gap:20px;align-items:baseline}
}
@media (min-width:768px){
  .pr-two{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:1024px){
  .hero-side .jump{grid-column:1 / 9;grid-row:2;margin-top:30px}
  .pr{grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:48px;align-items:start}
  .pr-rev{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
  .pr-rev .pr-fig{order:2}
  .pr-fig{position:sticky;top:calc(var(--bar) + 24px)}
}
@media print{
  .rv:not(.is-in) .gf-c,.rv:not(.is-in) .sw-mk,.rv:not(.is-in) .sw-wp{stroke-dashoffset:0}
  .rv:not(.is-in) .sw-pc,.rv:not(.is-in) .gf-d{opacity:1;transform:none}
  .rv:not(.is-in) .pr-keys li,.rv:not(.is-in) .pr-chip{opacity:1}
  .rv:not(.is-in) .wt-bar{transform:none}
  .pr-fig{position:static}
}
.st-sec,.pr-sec1{padding-top:32px}
.st-fig{margin-bottom:44px;padding:20px;border:1px solid var(--line);border-radius:4px;background:var(--white)}
.st-text{display:grid;gap:18px}
.th{display:block;width:100%;height:auto}
.th-s{font:700 10px Arial,Helvetica,sans-serif;letter-spacing:0.3em;fill:#0A2540}
.th-y{font-family:var(--display);font-weight:700;font-size:34px;letter-spacing:-0.01em;fill:#0A2540}
.th-bd,.th-lb{transform-box:fill-box;transform-origin:center}
.th-nd{opacity:0;offset-rotate:auto}
.th-n1{offset-path:path("M16,176 C50,176 76,160 110,150 S180,96 220,96 S292,128 330,118 S372,110 392,110")}
.th-n2{offset-path:path("M400,78 H532 V142 H400 Z")}
.th-n3{offset-path:path("M424,130 L430,112 L436,130 L442,112 L448,130 L454,112 L460,130 L466,112 L472,130 L478,112 L484,130 L490,112 L496,130 L502,112 L508,130");offset-rotate:62deg}
.th-b1{--bd:380ms}
.th-b2{--bd:800ms}
.th-b3{--bd:1190ms}
.duo{display:grid;gap:44px var(--gap)}
.duo h2{padding-top:20px;border-top:1px solid var(--sand);font-weight:600;font-size:1.25rem;line-height:1.25;letter-spacing:0}
.duo p{margin-top:14px;font-family:var(--display);font-weight:600;font-size:clamp(1.25rem,2vw,1.625rem);line-height:1.35;color:var(--navy);text-wrap:balance}
.why-l h3{position:relative;border-top-color:transparent}
.why-l h3::before{content:"";position:absolute;left:0;top:-1px;width:100%;height:1px;background:var(--sand);transform-origin:left center}
.ab-stats{border-top:2px solid var(--sand);border-bottom:1px solid var(--line)}
.ab-stats .stat{text-align:center}
.ab-stats .stat-label{text-wrap:balance}
.more{display:flex;flex-wrap:wrap;gap:4px 36px;margin-top:36px}
.rv .th-mk,.rv .th-x{stroke-dasharray:1 3}
.rv:not(.is-in) .th-mk,.rv:not(.is-in) .th-x{stroke-dashoffset:1.01}
.rv:not(.is-in) .th-bd{opacity:0;transform:scale(0.5)}
.rv:not(.is-in) .th-lb{opacity:0;transform:translateX(14px)}
.rv:not(.is-in) .th-s,.rv:not(.is-in) .th-fl,.rv:not(.is-in) .th-k{opacity:0}
.why-l .rv:not(.is-in) h3::before{transform:scaleX(0)}
.rv.is-in .th-k{transition:opacity 200ms linear 100ms}
.rv.is-in .th-m1{transition:stroke-dashoffset 1400ms linear 200ms}
.rv.is-in .th-n1{animation:sw-needle 1400ms linear 200ms forwards}
.rv.is-in .th-bd{transition:opacity 220ms linear var(--bd,0ms),transform 360ms var(--ease) var(--bd,0ms)}
.rv.is-in .th-x{transition:stroke-dashoffset 260ms linear calc(var(--bd,0ms) + 260ms)}
.rv.is-in .th-lb{transition:opacity 300ms linear 1270ms,transform 500ms var(--ease) 1270ms}
.rv.is-in .th-m2{transition:stroke-dashoffset 900ms linear 1600ms}
.rv.is-in .th-n2{animation:sw-needle 900ms linear 1600ms forwards}
.rv.is-in .th-s{transition:opacity 400ms linear 2000ms}
.rv.is-in .th-m3{transition:stroke-dashoffset 1100ms linear 2500ms}
.rv.is-in .th-n3{animation:sw-needle 1100ms linear 2500ms forwards}
.rv.is-in .th-fl{transition:opacity 350ms linear 3500ms}
.rv.is-in.st-fig .pr-chip{transition:opacity 400ms linear 3700ms}
.why-l .rv.is-in h3::before{transition:transform 700ms var(--ease) calc(var(--rd,0ms) + 200ms)}
@media (min-width:768px){
  .duo{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:48px}
}
@media (min-width:900px){
  .ab-stats .stat:first-child{padding-left:28px}
  .ab-stats .stat:last-child{padding-right:28px}
}
@media (min-width:1024px){
  .st-sec{padding-top:48px}
  .pr-sec1{padding-top:40px}
  .pr-sec1 .head{margin-bottom:48px}
  .st-fig{margin-bottom:64px;padding:28px 36px 24px}
  .st-text{grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:48px}
  .st-text p{font-size:1.0625rem;line-height:1.7}
}
@media print{
  .rv:not(.is-in) .th-mk,.rv:not(.is-in) .th-x{stroke-dashoffset:0}
  .rv:not(.is-in) .th-bd,.rv:not(.is-in) .th-lb{opacity:1;transform:none}
  .rv:not(.is-in) .th-s,.rv:not(.is-in) .th-fl,.rv:not(.is-in) .th-k{opacity:1}
  .why-l .rv:not(.is-in) h3::before{transform:none}
}
.stat-num[data-n]{position:relative;color:transparent}
.stat-num[data-n]::after{content:attr(data-n);position:absolute;top:0;left:0;right:0;color:var(--navy)}
@media (max-width:599px){
  .th-s{font-size:16px;letter-spacing:0.2em;transform:translateY(-2px)}
}
@media print{
  .stat-num[data-n]{color:var(--navy)}
  .stat-num[data-n]::after{content:none}
}
.su-rows{margin:0;border-top:2px solid var(--sand)}
.su-rows div{padding:18px 0}
.su-duo{display:grid;gap:56px var(--gap)}
.su-duo h2{padding-top:22px;border-top:1px solid var(--sand);font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.15}
.su-duo p{margin-top:16px}
.su-duo .q-list{margin-top:24px}
.su-k{margin-bottom:14px;font-weight:bold;color:var(--navy)}
.su-fig .pr-keys{display:grid}
.su-next{display:flex;flex-wrap:wrap;align-items:center;gap:4px 32px;margin-top:36px}
.tr{display:block;width:100%;max-width:480px;height:auto;margin:0 auto}
.tr-nm text{font:700 11px Arial,Helvetica,sans-serif;fill:#FFFFFF}
.tr-st,.tr-nm,.tr-tg{transform-box:fill-box;transform-origin:center}
.tr-nd{opacity:0;offset-rotate:auto;offset-path:path("M4,96 C22,96 34,72 56,72 S118,88 152,88 S214,72 248,72 S310,88 344,88")}
.tr-s1{--bd:400ms}
.tr-s2{--bd:880ms}
.tr-s3{--bd:1360ms}
.tr-s4{--bd:1840ms}
.rv .tr-mk,.rv .tr-sx{stroke-dasharray:1 3}
.rv:not(.is-in) .tr-mk,.rv:not(.is-in) .tr-sx{stroke-dashoffset:1.01}
.rv:not(.is-in) .tr-st{opacity:0;transform:scale(0.5)}
.rv:not(.is-in) .tr-nm{opacity:0;transform:scale(0.4)}
.rv:not(.is-in) .tr-tg{opacity:0;transform:translateY(-8px)}
.rv:not(.is-in) .tr-k,.rv:not(.is-in) .tr-rg{opacity:0}
.rv.is-in .tr-k{transition:opacity 200ms linear 100ms}
.rv.is-in .tr-mk{transition:stroke-dashoffset 1800ms linear 200ms}
.rv.is-in .tr-nd{animation:sw-needle 1800ms linear 200ms forwards}
.rv.is-in .tr-st{transition:opacity 220ms linear var(--bd,0ms),transform 360ms var(--ease) var(--bd,0ms)}
.rv.is-in .tr-nm{transition:opacity 220ms linear calc(var(--bd,0ms) + 180ms),transform 320ms var(--ease) calc(var(--bd,0ms) + 180ms)}
.rv.is-in .tr-sx{transition:stroke-dashoffset 240ms linear calc(var(--bd,0ms) + 300ms)}
.rv.is-in .tr-tg{transition:opacity 260ms linear calc(var(--bd,0ms) + 460ms),transform 420ms var(--ease) calc(var(--bd,0ms) + 460ms)}
.rv.is-in .tr-rg{transition:opacity 400ms linear 2300ms}
.rv.is-in.su-fig .pr-keys li{transition:opacity 400ms linear 2500ms}
.rv.is-in.su-fig .pr-chip{transition:opacity 400ms linear 2700ms}
@media (min-width:600px) and (max-width:1023px){
  .su-fig .pr-keys{grid-template-columns:repeat(2,max-content)}
}
@media (min-width:900px){
  .su-duo{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:64px}
  .su-file{grid-column:7 / 13}
}
@media (min-width:900px) and (max-width:1199px){
  .su-4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:1200px){
  .su-fig .pr-keys{grid-template-columns:repeat(2,max-content)}
}
@media print{
  .rv:not(.is-in) .tr-mk,.rv:not(.is-in) .tr-sx{stroke-dashoffset:0}
  .rv:not(.is-in) .tr-st,.rv:not(.is-in) .tr-nm,.rv:not(.is-in) .tr-tg{opacity:1;transform:none}
  .rv:not(.is-in) .tr-k,.rv:not(.is-in) .tr-rg{opacity:1}
}
/* Contact page */
.ct-sec{padding-top:32px}
.ct-sec .head{margin-bottom:36px}
.ct-steps{display:grid;gap:28px}
.ct-steps li{position:relative;display:grid;grid-template-columns:72px minmax(0,1fr);gap:18px;align-items:start}
.ct-tile{display:flex;align-items:center;justify-content:center;width:72px;height:72px;border:1px solid var(--line);border-radius:4px;background:var(--white);position:relative;z-index:1}
.ct-n{display:block;margin-bottom:2px;font-weight:bold;font-size:0.75rem;line-height:1.4;letter-spacing:0.14em;color:var(--sand)}
.ct-tx p{margin-top:6px}
.ct-steps li::after{content:"";position:absolute;left:35px;top:76px;bottom:-24px;width:2px;background:repeating-linear-gradient(180deg,var(--sand) 0 9px,transparent 9px 14px)}
.ct-steps li:last-child::after{content:none}
.ct-s1{--cd:100ms}
.ct-s2{--cd:450ms}
.ct-s3{--cd:800ms}
.ct-s4{--cd:1150ms}
.ct-d2{--ci:120ms}
.ct-d3{--ci:240ms}
.rv .ct-d{stroke-dasharray:1 3}
.rv:not(.is-in) .ct-d{stroke-dashoffset:1.01}
.rv:not(.is-in) .ct-tile{opacity:0}
.rv:not(.is-in) .ct-tx{opacity:0;transform:translateY(8px)}
.rv:not(.is-in) > li::after{clip-path:inset(0 0 100% 0)}
.rv.is-in .ct-tile{transition:opacity 240ms linear var(--cd,0ms)}
.rv.is-in .ct-d{transition:stroke-dashoffset 400ms var(--ease) calc(var(--cd,0ms) + 80ms + var(--ci,0ms))}
.rv.is-in .ct-tx{transition:opacity 400ms var(--ease) calc(var(--cd,0ms) + 100ms),transform 400ms var(--ease) calc(var(--cd,0ms) + 100ms)}
.rv.is-in > li::after{clip-path:inset(0 0 0 0);transition:clip-path 320ms linear calc(var(--cd,0ms) + 120ms)}
.ct-more{margin-top:36px}
.ct-duo{display:grid;gap:48px var(--gap)}
.ct-form{padding:28px 20px 32px;border:1px solid var(--line);border-radius:4px;background:var(--white)}
.ct-form h2,.ct-side h2{margin-top:18px;font-size:clamp(1.625rem,2.6vw,2.125rem);line-height:1.12}
.qf{display:grid;gap:26px 24px;margin-top:32px}
.qf[hidden]{display:none}
.f{position:relative;min-width:0}
.f label{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 12px;font-weight:bold;font-size:0.75rem;line-height:1.4;letter-spacing:0.1em;text-transform:uppercase;color:rgba(10,37,64,0.78);transition:color 180ms linear}
.f-rq{font-weight:normal;letter-spacing:0.06em;color:rgba(10,37,64,0.7)}
/* A unit inside a field label keeps its own case, g/m² on the French page */
.f-u{text-transform:none;letter-spacing:0.04em}
/* Two fields side by side where one label takes two lines: both labels sit on the same base line */
@media (min-width:700px){.f-2l label{min-height:2.8em;align-content:flex-end}}
.f input,.f select,.f textarea{display:block;width:100%;min-height:46px;margin:6px 0 0;padding:10px 0;border:0;border-bottom:1px solid rgba(10,37,64,0.35);border-radius:0;background:none;font:inherit;color:var(--navy);-webkit-appearance:none;appearance:none}
.f textarea{min-height:132px;resize:vertical}
.f select{padding-right:28px;cursor:pointer}
.f input:focus,.f select:focus,.f textarea:focus{outline:none}
.f ::placeholder{color:rgba(10,37,64,0.55);opacity:1}
.f-ln{display:block;height:2px;margin-top:-2px;background:var(--sand);transform:scaleX(0);transform-origin:left;transition:transform 380ms var(--ease);pointer-events:none}
.f :focus ~ .f-ln{transform:scaleX(1)}
.f:focus-within label{color:var(--navy)}
.f [aria-invalid="true"]{border-bottom:2px solid var(--navy)}
.f-sel::after{content:"";position:absolute;right:4px;top:39px;width:8px;height:8px;border-right:2px solid var(--navy);border-bottom:2px solid var(--navy);transform:rotate(45deg);pointer-events:none}
.f-file input{min-height:0;padding:8px 0 0;border-bottom:0;font-size:0.9375rem;-webkit-appearance:auto;appearance:auto}
.f-file input:focus-visible{outline:2px solid var(--sand);outline-offset:3px}
.f-file ::file-selector-button{margin-right:14px;padding:9px 14px;border:1px solid var(--navy);border-radius:4px;background:var(--white);font:inherit;font-weight:bold;font-size:0.875rem;color:var(--navy);cursor:pointer}
/* The file button in the words of the page. Without the script the
   control of the browser shows, as written above. With it, that control
   lies invisible over the button drawn here and still does the work:
   click, keyboard and drop. */
.f-btn,.f-name{display:none}
.f-pick.is-on{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:8px}
.f-pick.is-on input{position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:0;opacity:0;cursor:pointer}
.f-pick.is-on ::file-selector-button{cursor:pointer}
.f-pick.is-on .f-btn{display:inline-block;flex:none;padding:9px 14px;border:1px solid var(--navy);border-radius:4px;background:var(--white);font-weight:bold;font-size:0.875rem;line-height:1.4;color:var(--navy);transition:background-color 180ms linear,color 180ms linear}
.f-pick.is-on .f-name{display:block;min-width:0;font-size:0.9375rem;line-height:1.4;color:var(--charcoal);overflow-wrap:anywhere}
.f-pick.is-file .f-name{font-weight:bold;color:var(--navy)}
.f-pick.is-on:hover .f-btn{background:var(--navy);color:var(--white)}
.f-pick.is-on:focus-within .f-btn{outline:2px solid var(--sand);outline-offset:3px}
.f-hint,.f-err,.f-prog,.f-note,.f-after{font-size:0.875rem;line-height:1.55}
.f-hint,.f-err{margin-top:8px}
.f-err,.f-prog{font-weight:bold;color:var(--navy)}
.f-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.f-note a,.f-alert a{font-weight:bold;color:var(--olive);text-decoration:underline;text-underline-offset:3px}
.f-alert{padding:14px 16px;border-left:3px solid var(--sand);background:var(--light-gray);font-weight:bold;color:var(--navy)}
/* Without the script the receiver sends the visitor back to the sentence that applies */
.f-alert:target{display:block}
.f-go{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px}
.f-go .btn{cursor:pointer}
.f-go .btn[disabled]{opacity:0.6;cursor:default}
.ct-done{display:none;margin-top:28px;text-align:center}
.ct-done.is-sent,.ct-done:target{display:block}
.ct-done:focus{outline:none}
.ct-done h3{margin-top:22px;font-size:1.5rem}
.ct-done p{max-width:420px;margin:8px auto 0}
.ct-env{padding:8px 12px;border-radius:4px;background:var(--light-gray)}
.ev{display:block;width:100%;max-width:420px;height:auto;margin:0 auto}
.ev-pill text{font:600 14px Outfit,system-ui,sans-serif;fill:#FFFFFF}
.ev-sheet{transform:translate(164px,116px)}
.ev-flap,.ev-clip{transform-box:view-box}
.ev-flap{transform-origin:200px 110px}
.ev-clip{transform-origin:200px 224px}
.ev-fo{transform:scaleY(0)}
.is-sent .ev-sheet,:target .ev-sheet{animation:ev-sheet 1900ms var(--ease) 100ms both}
.is-sent .ev-fo,:target .ev-fo{animation:ev-fo 260ms ease-in 2050ms both}
.is-sent .ev-fc,:target .ev-fc{animation:ev-fc 300ms ease-out 2310ms both}
.is-sent .ev-clip,:target .ev-clip{animation:ev-clip 320ms linear 2650ms both}
.is-sent .ev-pill,:target .ev-pill{animation:ev-pill 420ms linear 2950ms both}
@keyframes ev-sheet{0%{opacity:0;transform:translate(16px,66px)}14%{opacity:1;transform:translate(16px,66px)}34%{opacity:1;transform:translate(16px,66px)}62%{opacity:1;transform:translate(164px,4px)}100%{opacity:1;transform:translate(164px,116px)}}
@keyframes ev-fo{from{transform:scaleY(-1)}to{transform:scaleY(0)}}
@keyframes ev-fc{from{transform:scaleY(0);opacity:0}1%{opacity:1}to{transform:scaleY(1);opacity:1}}
@keyframes ev-clip{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes ev-pill{from{opacity:0}to{opacity:1}}
.ct-mail{margin:28px 0 0;border-top:2px solid var(--sand)}
.ct-mail div{padding:16px 0;border-bottom:1px solid var(--line)}
.ct-mail dt,.ct-adr strong{font-weight:bold;font-size:0.75rem;line-height:1.4;letter-spacing:0.1em;text-transform:uppercase;color:rgba(10,37,64,0.78)}
.ct-mail dd{margin:4px 0 0}
.ct-mail a{display:inline-flex;align-items:center;min-height:44px;font-family:var(--display);font-weight:600;font-size:1.25rem;line-height:1.3;color:var(--navy);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px;text-decoration-color:var(--line-sand);transition:text-decoration-color 180ms var(--ease)}
.ct-mail a:hover{text-decoration-color:var(--sand)}
.ct-adr{margin-top:28px}
.ct-adr p + p{margin-top:14px}
.ct-adr strong{display:block;margin-bottom:2px}
.fq-list{max-width:880px;border-top:2px solid var(--sand)}
.fq{border-bottom:1px solid var(--line)}
.fq h3{font-size:1.125rem;line-height:1.35}
.fq button{display:flex;width:100%;align-items:center;justify-content:space-between;gap:20px;padding:20px 0;text-align:left;cursor:default}
.fq-pm{display:none;position:relative;flex:none;width:16px;height:16px}
.fq-pm::before,.fq-pm::after{content:"";position:absolute;left:0;top:7px;width:16px;height:2px;background:var(--sand);transition:transform 300ms var(--ease)}
.fq-pm::after{transform:rotate(90deg)}
.fq-pn{display:grid;grid-template-rows:1fr}
.fq-pn > div{min-height:0;overflow:hidden}
.fq-pn p{max-width:720px;padding-bottom:22px}
.fq-on .fq button{cursor:pointer}
.fq-on .fq-pm{display:block}
.fq-on .is-open .fq-pm::after{transform:none}
.fq-on .fq-pn{grid-template-rows:0fr;transition:grid-template-rows 360ms var(--ease)}
.fq-on .fq-pn > div{visibility:hidden;transition:visibility 0s linear 360ms}
.fq-on .is-open .fq-pn{grid-template-rows:1fr}
.fq-on .is-open .fq-pn > div{visibility:visible;transition-delay:0s}
@media (min-width:700px){
  .qf{grid-template-columns:repeat(2,minmax(0,1fr))}
  .f-wide{grid-column:1 / -1}
  .ct-form{padding:36px 32px 40px}
}
@media (min-width:900px){
  .ct-steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap)}
  .ct-steps li{display:block}
  .ct-tx{margin-top:20px}
  .ct-steps li::after{left:80px;right:calc(8px - var(--gap));top:35px;bottom:auto;width:auto;height:2px;background:repeating-linear-gradient(90deg,var(--sand) 0 9px,transparent 9px 14px)}
  .rv:not(.is-in) > li::after{clip-path:inset(0 100% 0 0)}
}
@media (min-width:1024px){
  .ct-sec{padding-top:48px}
  .ct-sec .head{margin-bottom:48px}
  .ct-duo{grid-template-columns:minmax(0,7fr) minmax(0,4fr);column-gap:64px;align-items:start}
  .ct-form{padding:44px 44px 48px}
  .ct-side{padding-top:44px}
}
@media print{
  .rv:not(.is-in) .ct-d{stroke-dashoffset:0}
  .rv:not(.is-in) .ct-tile{opacity:1}
  .rv:not(.is-in) .ct-tx{opacity:1;transform:none}
  .rv:not(.is-in) > li::after{clip-path:none}
  .fq-on .fq-pn{grid-template-rows:1fr}
  .fq-on .fq-pn > div{visibility:visible}
  .fq-pm,.f-ln{display:none}
}
:lang(fr) .su-fig .pr-keys{grid-template-columns:none}
@media (min-width:600px){
  .spec-row,.comp-rows li{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--gap);align-items:baseline}
}
@media (min-width:900px){
  .ph{padding-bottom:88px}
  .q-text{grid-column:1 / 6}
  .spec-row,.comp-rows li{column-gap:32px}
  .comp + .comp{margin-top:72px}
}

/* 20. Reduced motion and print */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important;transition:none !important}
  .rv:not(.is-in).reveal{opacity:1;transform:none}
  .rv:not(.is-in) .gf-o,.rv:not(.is-in) .fl-track{stroke-dashoffset:0}
  .rv:not(.is-in) .gf-s{opacity:0.55}
  .rv:not(.is-in) .fl-pulse,.rv:not(.is-in) .fl-label,.rv:not(.is-in) .step-n,.rv:not(.is-in) .cp-list li{opacity:1}
  .rv:not(.is-in) .fl-disc{opacity:1;transform:none}
  .rv:not(.is-in) .steps-line,.rv:not(.is-in) .cp-line{transform:none}
  .rv:not(.is-in) .step-node{border-color:var(--sand)}
}

@media print{
  body{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .skip,.hd,.ft,.btn,.menu-btn{display:none !important}
  *,*::before,*::after{animation:none !important;transition:none !important}
  .section{padding:40px 0}
  .card,.why li,.lanes,.comp-list li{break-inside:avoid}
  .rv:not(.is-in).reveal{opacity:1;transform:none}
  .rv:not(.is-in) .gf-o,.rv:not(.is-in) .fl-track{stroke-dashoffset:0}
  .rv:not(.is-in) .gf-s{opacity:0.55}
  .rv:not(.is-in) .fl-pulse,.rv:not(.is-in) .fl-label,.rv:not(.is-in) .step-n,.rv:not(.is-in) .cp-list li{opacity:1}
  .rv:not(.is-in) .fl-disc{opacity:1;transform:none}
  .rv:not(.is-in) .steps-line,.rv:not(.is-in) .cp-line{transform:none}
  .rv:not(.is-in) .step-node{border-color:var(--sand)}
  .wm-arc{stroke-dashoffset:0}
  .wm-node,.wm-lab,.wm-d1{opacity:1}
  .wm-run,.wm-ping,.wm-beacon{display:none}
  .rv:not(.is-in) .sm-route{stroke-dashoffset:0}
  .sm-run,.sm-ping,.sm-beacon{display:none}
}

/* Legal Notice and Privacy Policy: one reading column, no motion */
.lg{max-width:800px}
.lg-date{font-weight:bold;font-size:0.75rem;line-height:1.4;letter-spacing:0.14em;text-transform:uppercase;color:var(--charcoal)}
.lg h2{position:relative;margin-top:48px;padding-left:19px;font-size:clamp(1.375rem,2.2vw,1.625rem);line-height:1.25;letter-spacing:0;text-wrap:wrap}
.lg h2::before{content:"";position:absolute;left:0;top:calc(0.625em - 3.5px);width:7px;height:7px;background:var(--sand)}
.lg p{margin-top:16px}
.lg p.lg-date{margin-top:0}
.lg a{font-weight:bold;color:var(--olive);text-decoration:underline;text-underline-offset:3px}
.lg-rows{margin:20px 0 0;border-top:2px solid var(--sand)}
.lg-row{display:grid;gap:4px;padding:16px 0;border-bottom:1px solid var(--line)}
.lg-row dt{font-weight:bold;color:var(--navy)}
.lg-row dd{margin:0}
@media (min-width:768px){
  .lg h2{margin-top:64px}
  .lg-row{grid-template-columns:minmax(0,4fr) minmax(0,8fr);column-gap:32px}
}
