/* Froumbra, site stylesheet
   One ground, chalk text, citron accent for interactive things only.
   Two voices: tall condensed headlines, whispered wide labels. */

:root {
  --ground: #2B2A27;
  --band: #232220;
  --text: #E8E3D6;
  --muted: #A39C8E;
  --line: #46433D;
  --accent: #D3C84B;

  --display: "Avenir Next Condensed", "Bahnschrift SemiCondensed", "Bahnschrift", "Roboto Condensed", "Arial Narrow", "Helvetica Neue", Arial, sans-serif;
  --serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;

  --ease: cubic-bezier(0.2, 0.7, 0.2, 1);
  --pad: clamp(20px, 4.4vw, 64px);
  --gutter: clamp(20px, 2.4vw, 32px);
  --air: clamp(88px, 11vw, 160px);
  --anno: 12px;
}

/* ---------- Reset ---------- */

*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  background: var(--ground);
}

@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}

body {
  margin: 0;
  background: var(--ground);
  color: var(--text);
  font-family: var(--serif);
  font-size: 1.0625rem;
  line-height: 1.78;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
  overflow-x: clip;
}

img, svg { display: block; max-width: 100%; }
svg { height: auto; }

p { margin: 0 0 1.1em; max-width: 34em; text-wrap: pretty; overflow-wrap: break-word; }
p:last-child { margin-bottom: 0; }

ul, ol { margin: 0; padding: 0; }
dl, dd { margin: 0; }

button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }

::selection { background: var(--accent); color: var(--ground); }

:focus { outline: none; }
:focus-visible {
  outline: 1px solid var(--accent);
  outline-offset: 4px;
}

summary { list-style: none; cursor: pointer; }
summary::-webkit-details-marker { display: none; }
summary::marker { content: ""; }

/* ---------- Links ---------- */

a {
  color: inherit;
  text-decoration-line: underline;
  text-decoration-color: var(--line);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.24em;
  transition: text-decoration-color 240ms var(--ease), color 240ms var(--ease);
}
a:hover { text-decoration-color: var(--accent); }

/* ---------- Utilities ---------- */

.fr-wrap {
  width: min(100% - (2 * var(--pad)), 1320px);
  margin-inline: auto;
}

.fr-sr {
  position: absolute !important;
  width: 1px; height: 1px;
  margin: -1px; padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.fr-skip {
  position: absolute;
  left: var(--pad);
  top: 0;
  z-index: 100;
  transform: translateY(-120%);
  background: var(--ground);
  color: var(--text);
  border: 1px solid var(--line);
  padding: 10px 16px;
  font-family: var(--display);
  font-stretch: condensed;
  font-size: 0.6875rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  text-decoration: none;
  transition: transform 240ms var(--ease);
}
.fr-skip:focus-visible { transform: translateY(12px); }

/* ---------- Type ---------- */

h1, h2, h3, h4 {
  font-family: var(--display);
  font-weight: 500;
  font-stretch: condensed;
  margin: 0;
  color: var(--text);
  text-wrap: balance;
  overflow-wrap: break-word;
}

.fr-h1 {
  font-size: clamp(2.5rem, 1.7rem + 2.6vw, 3.75rem);
  line-height: 1.02;
  letter-spacing: -0.02em;
  margin-bottom: 0.55em;
}

.fr-h2 {
  font-size: clamp(2rem, 1.55rem + 1.5vw, 2.5rem);
  line-height: 1.06;
  letter-spacing: -0.015em;
  margin-bottom: 0.65em;
}

.fr-h3 {
  font-size: 1.625rem;
  line-height: 1.15;
  letter-spacing: -0.01em;
  margin-bottom: 0.5em;
}

.fr-label {
  display: block;
  margin: 0 0 1.5rem;
  font-family: var(--display);
  font-stretch: condensed;
  font-weight: 500;
  font-size: 0.6875rem;
  line-height: 1.6;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--muted);
  max-width: none;
}

.fr-lead {
  font-size: 1.25rem;
  line-height: 1.6;
  color: var(--text);
  max-width: 28em;
  margin-bottom: 1.2em;
}

.fr-muted { color: var(--muted); }

.fr-note {
  font-size: 0.9375rem;
  line-height: 1.65;
  color: var(--muted);
}

.fr-voice {
  font-size: 1.1875rem;
  line-height: 1.72;
  color: var(--text);
  max-width: 32em;
}

.fr-sign {
  display: block;
  margin-top: 1.4em;
  font-family: var(--display);
  font-stretch: condensed;
  font-size: 0.6875rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--muted);
}
.fr-sign::before {
  content: "";
  display: inline-block;
  vertical-align: middle;
  width: 32px;
  height: 1px;
  margin-right: 14px;
  background: var(--muted);
}

.fr-badge {
  display: inline-block;
  font-family: var(--display);
  font-stretch: condensed;
  font-size: 0.625rem;
  line-height: 1;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--text);
  border: 1px solid var(--muted);
  padding: 0.5em 0.75em 0.45em;
  white-space: nowrap;
}
.fr-badge--no { color: var(--muted); border-color: var(--line); border-style: dashed; }
.fr-badge--part { color: var(--muted); border-color: var(--muted); }

/* Chevron icon used everywhere: sized in em, fluid by viewBox */
.fr-chev {
  width: 0.72em;
  height: auto;
  flex: none;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.4;
  stroke-linecap: round;
  stroke-linejoin: round;
  overflow: visible;
}

/* ---------- Text link with chevron ---------- */

.fr-link {
  display: inline-flex;
  align-items: center;
  gap: 0.7em;
  padding: 4px 0 8px;
  font-family: var(--display);
  font-stretch: condensed;
  font-weight: 500;
  font-size: 1.25rem;
  line-height: 1.2;
  letter-spacing: 0;
  color: var(--text);
  text-decoration: none;
  border-bottom: 1px solid var(--line);
  transition: border-color 260ms var(--ease), color 260ms var(--ease);
  max-width: 100%;
}
.fr-link .fr-chev {
  width: 0.62em;
  color: var(--muted);
  transition: transform 320ms var(--ease), color 260ms var(--ease);
}
.fr-link:hover { border-bottom-color: var(--accent); }
.fr-link:hover .fr-chev { transform: translateX(5px); color: var(--accent); }

.fr-link--small {
  font-size: 0.6875rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  padding: 2px 0 7px;
}
.fr-link--small .fr-chev { width: 0.9em; }

/* ---------- Notice band ---------- */

.fr-band {
  position: relative;
  z-index: 70;
  background: var(--band);
  border-bottom: 1px solid var(--line);
  font-family: var(--display);
  font-stretch: condensed;
  font-weight: 500;
  font-size: 0.6875rem;
  line-height: 1.5;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--muted);
}

.fr-band__inner {
  min-height: 44px;
  display: flex;
  align-items: center;
  gap: 8px 32px;
}

.fr-band__label {
  margin: 0;
  max-width: none;
  color: var(--accent);
  white-space: nowrap;
}

.fr-band__items {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  row-gap: 2px;
  color: var(--text);
  min-width: 0;
}

.fr-band__item { white-space: nowrap; }
.fr-band__item + .fr-band__item::before {
  content: "\00B7";
  padding: 0 0.85em 0 0.6em;
  color: var(--muted);
}

.fr-band__note { margin-left: auto; }

.fr-band__toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.75em;
  padding: 13px 0;
  color: var(--muted);
  white-space: nowrap;
  transition: color 240ms var(--ease);
}
.fr-band__toggle:hover { color: var(--text); }

.fr-band__chev {
  width: 0.95em;
  height: auto;
  color: var(--accent);
  fill: none;
  stroke: currentColor;
  stroke-width: 1.4;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform 480ms var(--ease);
}
.fr-band__note[open]:not(.fr-is-closing) .fr-band__chev { transform: rotate(180deg); }

.fr-band__body {
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  background: var(--band);
  border-bottom: 1px solid var(--line);
}

/* Closed, the note takes no layout at all, so its text is never placed off the page. */
.fr-band__note:not([open]) > .fr-band__body { display: none; }

.fr-band__text {
  width: min(100% - (2 * var(--pad)), 1320px);
  margin-inline: auto;
  padding: clamp(28px, 4vw, 48px) 0 clamp(32px, 4.4vw, 56px);
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--gutter);
  font-family: var(--serif);
  font-stretch: normal;
  font-weight: 400;
  font-size: 1.0625rem;
  line-height: 1.75;
  letter-spacing: 0;
  text-transform: none;
  color: var(--text);
}
.fr-band__text > * { grid-column: 6 / span 7; }
.fr-band__text > .fr-label { grid-column: 1 / span 4; grid-row: 1 / span 3; margin: 0.45em 0 1rem; }
.fr-band__text p { max-width: 36em; }

/* ---------- Header ---------- */

.fr-head {
  position: relative;
  z-index: 50;
  background: var(--ground);
  border-bottom: 1px solid var(--line);
}

.fr-head__inner {
  height: 76px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.fr-mark {
  font-family: var(--display);
  font-stretch: condensed;
  font-weight: 500;
  font-size: 1.0625rem;
  letter-spacing: 0.36em;
  margin-right: -0.36em;
  text-transform: uppercase;
  color: var(--text);
  text-decoration: none;
  white-space: nowrap;
}
.fr-mark:hover { color: var(--text); }

.fr-nav__list {
  list-style: none;
  display: flex;
  align-items: center;
  gap: clamp(24px, 3vw, 44px);
}

.fr-nav__link {
  position: relative;
  display: inline-block;
  padding: 10px 0;
  font-family: var(--display);
  font-stretch: condensed;
  font-weight: 500;
  font-size: 0.6875rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--muted);
  text-decoration: none;
  white-space: nowrap;
  transition: color 240ms var(--ease);
}
.fr-nav__link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0.26em;
  bottom: 4px;
  height: 1px;
  background: var(--accent);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 320ms var(--ease);
}
.fr-nav__link:hover { color: var(--text); }
.fr-nav__link:hover::after { transform: scaleX(1); }
.fr-nav__link[aria-current="page"] { color: var(--text); }
.fr-nav__link[aria-current="page"]::after { background: var(--text); transform: scaleX(1); }

/* Phone menu, built on details/summary */

.fr-menu { display: none; }

.fr-menu__btn {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0 12px 12px;
  font-family: var(--display);
  font-stretch: condensed;
  font-weight: 500;
  font-size: 0.6875rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--text);
}

.fr-menu__icon {
  width: 18px;
  height: auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.2;
  stroke-linecap: round;
  overflow: visible;
}
.fr-menu__icon line {
  transform-box: fill-box;
  transform-origin: center;
  transition: transform 260ms var(--ease);
}
.fr-menu[open]:not(.fr-menu--closing) .fr-menu__l1 { transform: translateY(3px) rotate(45deg); }
.fr-menu[open]:not(.fr-menu--closing) .fr-menu__l2 { transform: translateY(-3px) rotate(-45deg); }

.fr-menu__close { display: none; }
.fr-menu[open]:not(.fr-menu--closing) .fr-menu__open { display: none; }
.fr-menu[open]:not(.fr-menu--closing) .fr-menu__close { display: inline; }

.fr-menu__panel {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: var(--ground);
  border-bottom: 1px solid var(--line);
  border-top: 1px solid var(--line);
  padding: 8px var(--pad) 32px;
}

.fr-menu__list { list-style: none; }

.fr-menu__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
  font-family: var(--display);
  font-stretch: condensed;
  font-weight: 500;
  font-size: 1.625rem;
  line-height: 1.1;
  letter-spacing: -0.01em;
  color: var(--muted);
  text-decoration: none;
  transition: color 240ms var(--ease), padding-left 320ms var(--ease);
}
.fr-menu__link .fr-chev { width: 0.5em; color: var(--muted); transition: color 240ms var(--ease); }
.fr-menu__link:hover { color: var(--text); padding-left: 8px; }
.fr-menu__link:hover .fr-chev { color: var(--accent); }
.fr-menu__link[aria-current="page"] { color: var(--text); }

.fr-menu__mail {
  display: inline-block;
  margin-top: 24px;
  font-family: var(--display);
  font-stretch: condensed;
  font-size: 0.6875rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--muted);
  overflow-wrap: anywhere;
}

@media (prefers-reduced-motion: no-preference) {
  .fr-menu[open] .fr-menu__panel { animation: fr-menu-in 260ms var(--ease) both; }
  .fr-menu.fr-menu--closing .fr-menu__panel { animation: fr-menu-out 260ms var(--ease) both; }
}

@keyframes fr-menu-in {
  from { opacity: 0; transform: translateY(-8px); }
  to { opacity: 1; transform: none; }
}
@keyframes fr-menu-out {
  from { opacity: 1; transform: none; }
  to { opacity: 0; transform: translateY(-8px); }
}

/* ---------- Hero ---------- */

.fr-hero { position: relative; }

.fr-hero__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-template-rows: 1fr auto auto 1fr;
  column-gap: var(--gutter);
  min-height: min(calc(100vh - 120px), 760px);
  min-height: min(calc(100svh - 120px), 760px);
  padding-block: clamp(36px, 4.4vw, 60px);
}

.fr-hero__text {
  grid-column: 1 / span 5;
  grid-row: 2;
  padding-right: clamp(0px, 2vw, 32px);
  min-width: 0;
}

.fr-hero__actions {
  grid-column: 1 / span 5;
  grid-row: 3;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 18px 40px;
  margin-top: 44px;
  min-width: 0;
}

.fr-hero__fig {
  grid-column: 6 / span 7;
  grid-row: 1 / -1;
  align-self: center;
  min-width: 0;
}

.fr-hero__title {
  font-size: clamp(2.75rem, 1.9rem + 3.4vw, 4.75rem);
  line-height: 0.98;
  letter-spacing: -0.02em;
  margin-bottom: 0.42em;
}
.fr-hero__title span { display: block; }

.fr-hero__lead {
  font-size: 1.25rem;
  line-height: 1.6;
  max-width: 25em;
  margin-bottom: 0;
}

.fr-hero .fr-draw {
  max-height: min(600px, calc(100vh - 300px));
  max-height: min(600px, calc(100svh - 300px));
  min-height: 300px;
  margin-inline: auto;
}

.fr-facts {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  row-gap: 6px;
  margin-top: 30px;
  font-family: var(--display);
  font-stretch: condensed;
  font-weight: 500;
  font-size: 0.6875rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--muted);
}
.fr-facts li { white-space: nowrap; }
.fr-facts li + li::before {
  content: "\00B7";
  padding: 0 1.1em 0 0.8em;
}

/* ---------- Figures and drawings ---------- */

.fr-fig { margin: 0; min-width: 0; }

.fr-fig__frame {
  position: relative;
  border: 1px solid var(--line);
  padding: clamp(14px, 2.6vw, 36px);
}

.fr-fig__meta {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 6px 16px;
  padding-bottom: 12px;
  margin-bottom: clamp(14px, 2.2vw, 28px);
  border-bottom: 1px solid var(--line);
  font-family: var(--display);
  font-stretch: condensed;
  font-size: 0.625rem;
  line-height: 1.5;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--muted);
}

.fr-fig__cap {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 4px 18px;
  margin-top: 16px;
  font-family: var(--display);
  font-stretch: condensed;
  font-size: 0.8125rem;
  line-height: 1.55;
  letter-spacing: 0.12em;
  color: var(--muted);
}

.fr-fig__num {
  padding-top: 0.12em;
  font-size: 0.6875rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--text);
  white-space: nowrap;
}

.fr-fig--bare .fr-fig__frame { border: 0; padding: 0; }

/* Shared hairline vocabulary for every workshop drawing */

.fr-draw {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
}
.fr-draw * { vector-effect: non-scaling-stroke; }

.fr-ln {
  fill: none;
  stroke: var(--text);
  stroke-width: 1;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.fr-ln--soft { stroke: var(--muted); }
.fr-ln--faint { stroke: var(--line); }
.fr-ln--acc { stroke: var(--accent); }
.fr-ln--hair { stroke-width: 0.75; }
.fr-ln--bold { stroke-width: 1.5; }
.fr-ln--dash { stroke-dasharray: 5 4; }
.fr-ln--dot { stroke-dasharray: 1 4; }

.fr-pleat {
  fill: none;
  stroke: var(--text);
  stroke-width: 0.75;
  stroke-linecap: round;
  opacity: 0.82;
}

.fr-fill { fill: var(--ground); }
.fr-fill--band { fill: var(--band); }
.fr-fill--line { fill: var(--line); }
.fr-fill--text { fill: var(--text); }
.fr-fill--muted { fill: var(--muted); }
.fr-fill--acc { fill: var(--accent); }

.fr-anno {
  fill: var(--muted);
  stroke: none;
  font-family: var(--display);
  font-stretch: condensed;
  font-weight: 500;
  font-size: var(--anno);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.fr-anno--text { fill: var(--text); }
.fr-anno--acc { fill: var(--accent); }
.fr-anno--wide { letter-spacing: 0.26em; }
.fr-anno--lg { font-size: calc(var(--anno) * 1.25); letter-spacing: 0.2em; }
.fr-anno--sm { font-size: calc(var(--anno) * 0.85); }

/* ---------- Section rhythm ---------- */

.fr-split,
.fr-block,
.fr-strip,
.fr-next,
.fr-shapes,
.fr-aside {
  padding-bottom: var(--air);
}

.fr-split > .fr-wrap,
.fr-block > .fr-wrap,
.fr-strip > .fr-wrap,
.fr-next > .fr-wrap,
.fr-shapes > .fr-wrap,
.fr-aside > .fr-wrap {
  border-top: 1px solid var(--line);
  padding-top: var(--air);
}

.fr-air-s { --air: clamp(64px, 7vw, 104px); }
.fr-air-l { --air: clamp(104px, 13vw, 200px); }
.fr-norule > .fr-wrap { border-top: 0; }

/* Inner page intro: sits straight under the header */
.fr-split--intro > .fr-wrap {
  border-top: 0;
  padding-top: clamp(56px, 7vw, 112px);
}

/* ---------- Split: seven columns of drawing, five of text ---------- */

.fr-split__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--gutter);
  align-items: center;
}

.fr-split__fig {
  grid-column: 1 / span 7;
  grid-row: 1;
  min-width: 0;
}

.fr-split__text {
  grid-column: 8 / span 5;
  grid-row: 1;
  padding-left: clamp(0px, 3.2vw, 48px);
  min-width: 0;
}

.fr-split--flip .fr-split__fig { grid-column: 6 / span 7; }
.fr-split--flip .fr-split__text {
  grid-column: 1 / span 5;
  padding-left: 0;
  padding-right: clamp(0px, 3.2vw, 48px);
}

.fr-split--top .fr-split__grid { align-items: start; }
.fr-split--top .fr-split__text { padding-top: clamp(0px, 4vw, 56px); }

.fr-split__text .fr-h2 + .fr-lead { margin-top: -0.1em; }
.fr-split__text > .fr-link,
.fr-split__text > .fr-link--small { margin-top: 1.2em; }

.fr-split__links {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 32px;
  margin-top: 2em;
}

/* ---------- Block: heading column against content column ---------- */

.fr-block__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--gutter);
  align-items: start;
}

.fr-block__head { grid-column: 1 / span 4; min-width: 0; padding-right: 16px; }
.fr-block__body { grid-column: 6 / span 7; min-width: 0; }
.fr-block--wide .fr-block__body { grid-column: 5 / span 8; }

.fr-block__head p { color: var(--muted); max-width: 22em; }
.fr-block__body > p { max-width: 34em; }
.fr-block__body > * + .fr-prices,
.fr-block__body > * + .fr-rows,
.fr-block__body > * + .fr-acc { margin-top: 2.2rem; }
.fr-block__foot { margin-top: 2.4rem; max-width: 34em; }

/* ---------- Ruled rows: prices, hours, terms ---------- */

.fr-prices,
.fr-rows {
  border-top: 1px solid var(--line);
}

.fr-prices__group {
  font-family: var(--display);
  font-stretch: condensed;
  font-weight: 500;
  font-size: 0.6875rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--muted);
  margin: 3rem 0 1rem;
}
.fr-prices__group:first-child { margin-top: 0; }
.fr-prices__group + .fr-prices { margin-top: 0; }

.fr-prices__row,
.fr-rows__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: baseline;
  gap: 6px 32px;
  padding: 20px 0 19px;
  border-bottom: 1px solid var(--line);
}

.fr-prices__label,
.fr-rows__k {
  min-width: 0;
  transition: transform 320ms var(--ease);
}

.fr-prices__name,
.fr-rows__k {
  display: block;
  font-family: var(--display);
  font-stretch: condensed;
  font-weight: 500;
  font-size: 0.6875rem;
  line-height: 1.7;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--text);
  overflow-wrap: break-word;
}

.fr-prices__help {
  display: block;
  margin-top: 6px;
  font-family: var(--serif);
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--muted);
  max-width: 30em;
}

.fr-prices__fig,
.fr-rows__v {
  font-family: var(--display);
  font-stretch: condensed;
  font-weight: 500;
  font-size: 1.25rem;
  line-height: 1.25;
  letter-spacing: 0;
  font-variant-numeric: tabular-nums lining-nums;
  color: var(--text);
  text-align: right;
  white-space: nowrap;
}

.fr-prices__row:hover .fr-prices__label,
.fr-rows__row:hover .fr-rows__k { transform: translateX(6px); }
.fr-prices__row:hover .fr-prices__help { color: var(--text); }

.fr-rows__v--text {
  font-family: var(--serif);
  font-size: 1rem;
  line-height: 1.6;
  white-space: normal;
}

/* Prose variant: label on the left, a sentence on the right */
.fr-rows--prose .fr-rows__row {
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  align-items: start;
}
.fr-rows--prose .fr-rows__k { padding-top: 0.35em; }
.fr-rows--prose .fr-rows__v {
  font-family: var(--serif);
  font-size: 1.0625rem;
  line-height: 1.7;
  text-align: left;
  white-space: normal;
  color: var(--text);
}
.fr-rows--prose .fr-rows__v p { margin-bottom: 0.6em; }
.fr-rows--prose .fr-rows__v .fr-note { display: block; margin-top: 4px; }

/* Two ruled columns, hours beside place */
.fr-cols {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 48px var(--gutter);
}
.fr-cols__col { min-width: 0; }
.fr-cols__col > .fr-label { margin-bottom: 1rem; }
.fr-cols__col > p { margin-top: 1.4rem; color: var(--muted); }

/* ---------- Accordions ---------- */

.fr-acc { border-top: 1px solid var(--line); }

.fr-acc__item { border-bottom: 1px solid var(--line); }

.fr-acc__sum {
  display: grid;
  grid-template-columns: 3.75rem minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 8px 20px;
  padding: 26px 0 25px;
}

.fr-acc__num {
  font-family: var(--display);
  font-stretch: condensed;
  font-weight: 500;
  font-size: 0.6875rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--muted);
  transition: color 260ms var(--ease);
}

.fr-acc__title {
  font-family: var(--display);
  font-stretch: condensed;
  font-weight: 500;
  font-size: 1.625rem;
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: var(--text);
  min-width: 0;
  overflow-wrap: break-word;
  transition: transform 340ms var(--ease);
}

.fr-acc__meta {
  font-family: var(--display);
  font-stretch: condensed;
  font-size: 0.6875rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--muted);
  white-space: nowrap;
  text-align: right;
}

.fr-acc__sum .fr-chev {
  width: 0.85rem;
  color: var(--accent);
  transition: transform 480ms var(--ease);
}

.fr-acc__sum:hover .fr-acc__title { transform: translateX(8px); }
.fr-acc__sum:hover .fr-acc__num { color: var(--text); }
.fr-acc__item[open]:not(.fr-is-closing) > .fr-acc__sum .fr-chev { transform: rotate(180deg); }
.fr-acc__item[open]:not(.fr-is-closing) > .fr-acc__sum .fr-acc__num { color: var(--text); }

.fr-acc__body { overflow: hidden; }

.fr-acc__inner {
  padding: 0 0 36px calc(3.75rem + 20px);
  max-width: calc(34em + 3.75rem + 20px);
}
.fr-acc__inner > p { color: var(--text); }
.fr-acc__inner > * + * { margin-top: 1rem; }
.fr-acc__inner > p + p { margin-top: 0; }

.fr-acc__fignum {
  display: block;
  margin-bottom: 0.8rem;
  font-family: var(--display);
  font-stretch: condensed;
  font-size: 0.6875rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--muted);
}

@media (prefers-reduced-motion: no-preference) {
  .fr-acc__item[open] .fr-acc__fignum { animation: fr-fade-in 700ms 140ms var(--ease) both; }
}

@keyframes fr-fade-in {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: none; }
}

.fr-acc__facts {
  display: grid;
  grid-template-columns: minmax(0, 9rem) minmax(0, 1fr);
  gap: 0 24px;
  border-top: 1px solid var(--line);
  margin-top: 1.4rem;
}
.fr-acc__facts dt,
.fr-acc__facts dd {
  padding: 12px 0 11px;
  border-bottom: 1px solid var(--line);
}
.fr-acc__facts dt {
  font-family: var(--display);
  font-stretch: condensed;
  font-size: 0.6875rem;
  line-height: 2.2;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--muted);
}
.fr-acc__facts dd {
  font-size: 1rem;
  line-height: 1.6;
  color: var(--text);
  min-width: 0;
}

.fr-acc__state { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin-bottom: 1rem; }

/* ---------- Shapes tabs (home) ---------- */

.fr-shapes__head {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--gutter);
  align-items: end;
  margin-bottom: clamp(36px, 4.4vw, 60px);
}
.fr-shapes__title { grid-column: 1 / span 6; min-width: 0; }
.fr-shapes__title .fr-h2 { margin-bottom: 0; }
.fr-shapes__aside { grid-column: 8 / span 5; min-width: 0; }
.fr-shapes__aside p { color: var(--muted); margin-bottom: 1rem; }

.fr-tabs__list {
  position: relative;
  display: flex;
  gap: clamp(24px, 4vw, 56px);
  border-bottom: 1px solid var(--line);
  overflow-x: auto;
  scrollbar-width: none;
}
.fr-tabs__list::-webkit-scrollbar { display: none; }

html:not(.fr-js) .fr-tabs__list { display: none; }

.fr-tab {
  position: relative;
  padding: 16px 0 17px;
  font-family: var(--display);
  font-stretch: condensed;
  font-weight: 500;
  font-size: 0.6875rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--muted);
  white-space: nowrap;
  transition: color 260ms var(--ease);
}
.fr-tab:hover { color: var(--text); }
.fr-tab[aria-selected="true"] { color: var(--text); }
.fr-tab:focus-visible { outline-offset: -2px; }

.fr-tabs__ink {
  position: absolute;
  left: 0;
  bottom: -1px;
  height: 2px;
  width: 40px;
  background: var(--accent);
  transform-origin: left center;
  pointer-events: none;
}
.fr-tabs__ink--live { transition: transform 420ms var(--ease), width 420ms var(--ease); }

.fr-tabs__panels { position: relative; }
.fr-tabs__panels--moving {
  overflow: hidden;
  transition: height 480ms var(--ease);
}

.fr-tabs__panel {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--gutter);
  align-items: center;
  padding-top: clamp(36px, 4vw, 56px);
  transition: opacity 400ms var(--ease);
}
.fr-tabs__panel[hidden] { display: none; }

html:not(.fr-js) .fr-tabs__panel + .fr-tabs__panel {
  border-top: 1px solid var(--line);
  margin-top: clamp(36px, 4vw, 56px);
}

.fr-tabs__panel--leaving {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  pointer-events: none;
}
.fr-tabs__panel--out,
.fr-tabs__panel--entering { opacity: 0; }

.fr-tabs__fig { grid-column: 1 / span 6; min-width: 0; }
.fr-tabs__body { grid-column: 8 / span 5; min-width: 0; }
.fr-tabs__body .fr-h3 { font-size: clamp(1.625rem, 1.3rem + 1vw, 2.125rem); }
.fr-tabs__body p { color: var(--text); }

.fr-tabs__price {
  display: flex;
  align-items: baseline;
  gap: 16px;
  margin: 1.6rem 0 1.4rem;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}
.fr-tabs__price .fr-label { margin: 0; }
.fr-tabs__price strong {
  font-family: var(--display);
  font-stretch: condensed;
  font-weight: 500;
  font-size: 1.625rem;
  letter-spacing: -0.01em;
  color: var(--text);
}

/* ---------- Practical strip ---------- */

.fr-strip__head { margin-bottom: clamp(40px, 5vw, 72px); }

.fr-strip__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: var(--gutter);
}

.fr-strip__item {
  min-width: 0;
  padding-right: clamp(0px, 2vw, 32px);
}
.fr-strip__item + .fr-strip__item {
  border-left: 1px solid var(--line);
  padding-left: clamp(20px, 2.6vw, 40px);
}

.fr-strip__fig {
  display: block;
  margin: 0 0 0.6rem;
  font-family: var(--display);
  font-stretch: condensed;
  font-weight: 500;
  font-size: clamp(2.5rem, 1.9rem + 2vw, 3.5rem);
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--text);
}

.fr-strip__item p { color: var(--muted); max-width: 24em; }
.fr-strip__item .fr-label { margin-bottom: 1.4rem; }

.fr-strip__foot {
  margin-top: clamp(40px, 5vw, 64px);
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 12px 32px;
}
.fr-strip__foot p { color: var(--muted); margin: 0; }

/* ---------- From the bench aside ---------- */

.fr-aside__inner {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--gutter);
}
.fr-aside__inner > .fr-label { grid-column: 2 / span 3; padding-top: 0.55em; }
.fr-aside__text { grid-column: 5 / span 6; min-width: 0; }
.fr-aside__text p {
  font-size: 1.1875rem;
  line-height: 1.75;
  max-width: 31em;
}
.fr-aside__text .fr-h3 { margin-bottom: 0.8em; }

/* ---------- Lists ---------- */

.fr-list { list-style: none; border-top: 1px solid var(--line); max-width: 36em; }
.fr-list li {
  position: relative;
  padding: 14px 0 13px 32px;
  border-bottom: 1px solid var(--line);
  line-height: 1.65;
  transition: transform 320ms var(--ease), color 260ms var(--ease);
}
.fr-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 1.45em;
  width: 14px;
  height: 1px;
  background: var(--muted);
  transition: background-color 260ms var(--ease), width 320ms var(--ease);
}
.fr-list li:hover { transform: translateX(6px); }
.fr-list li:hover::before { background: var(--text); width: 18px; }

.fr-steps { list-style: none; counter-reset: fr-step; max-width: 36em; }
.fr-steps li {
  counter-increment: fr-step;
  display: grid;
  grid-template-columns: 3rem minmax(0, 1fr);
  gap: 0 16px;
  padding: 18px 0 17px;
  border-top: 1px solid var(--line);
}
.fr-steps li:last-child { border-bottom: 1px solid var(--line); }
.fr-steps li::before {
  content: counter(fr-step, decimal-leading-zero);
  padding-top: 0.5em;
  font-family: var(--display);
  font-stretch: condensed;
  font-size: 0.6875rem;
  letter-spacing: 0.26em;
  color: var(--muted);
  transition: color 260ms var(--ease);
}
.fr-steps li > * { grid-column: 2; min-width: 0; }
.fr-steps li:hover::before { color: var(--text); }
.fr-steps__title {
  display: block;
  font-family: var(--display);
  font-stretch: condensed;
  font-weight: 500;
  font-size: 1.25rem;
  line-height: 1.3;
  margin-bottom: 4px;
}
.fr-steps li p { margin: 0; }

/* Definitions, used for materials */
.fr-defs { border-top: 1px solid var(--line); }
.fr-defs__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  gap: 8px var(--gutter);
  padding: 24px 0 23px;
  border-bottom: 1px solid var(--line);
}
.fr-defs__row dt {
  font-family: var(--display);
  font-stretch: condensed;
  font-weight: 500;
  font-size: 1.25rem;
  line-height: 1.3;
  letter-spacing: -0.005em;
  color: var(--text);
  transition: transform 320ms var(--ease);
  min-width: 0;
}
.fr-defs__row dd { min-width: 0; }
.fr-defs__row dd p { margin-bottom: 0.6em; }
.fr-defs__row:hover dt { transform: translateX(6px); }

/* What we turn away */
.fr-turn { list-style: none; border-top: 1px solid var(--line); }
.fr-turn li {
  display: grid;
  grid-template-columns: 3rem minmax(0, 1fr);
  gap: 0 16px;
  padding: 22px 0 21px;
  border-bottom: 1px solid var(--line);
  counter-increment: fr-turn;
}
.fr-turn { counter-reset: fr-turn; }
.fr-turn li::before {
  content: counter(fr-turn, decimal-leading-zero);
  padding-top: 0.55em;
  font-family: var(--display);
  font-stretch: condensed;
  font-size: 0.6875rem;
  letter-spacing: 0.26em;
  color: var(--muted);
}
.fr-turn li > * { grid-column: 2; min-width: 0; }
.fr-turn__what {
  display: block;
  color: var(--text);
  max-width: 34em;
  transition: transform 320ms var(--ease);
}
.fr-turn__why {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-size: 0.9875rem;
  line-height: 1.65;
  max-width: 34em;
}
.fr-turn li:hover .fr-turn__what { transform: translateX(6px); }

/* ---------- Contact ---------- */

.fr-mail {
  display: inline-block;
  max-width: 100%;
  margin: 0.1em 0 0.35em;
  font-family: var(--display);
  font-stretch: condensed;
  font-weight: 500;
  font-size: clamp(2rem, 1.1rem + 3.6vw, 4.25rem);
  line-height: 1.04;
  letter-spacing: -0.02em;
  color: var(--text);
  text-decoration-line: underline;
  text-decoration-color: var(--line);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.14em;
  overflow-wrap: anywhere;
}
.fr-mail:hover { text-decoration-color: var(--accent); }

.fr-mail-line { color: var(--muted); margin-top: 0.6rem; }

/* In the contact split the address shares the row with a drawing, so it is set to
   fit one line rather than break inside the word. */
.fr-mail--fit {
  font-size: clamp(1.9rem, 0.8rem + 2.3vw, 2.75rem);
  overflow-wrap: normal;
  white-space: nowrap;
}


/* ---------- Next block ---------- */

.fr-next__inner {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--gutter);
  align-items: start;
}
.fr-next__head { grid-column: 1 / span 5; min-width: 0; }
.fr-next__head .fr-h2 { margin-bottom: 0.4em; }
.fr-next__head p { color: var(--muted); }

.fr-next__list {
  grid-column: 7 / span 6;
  list-style: none;
  border-top: 1px solid var(--line);
  min-width: 0;
}

.fr-next__link {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 4px 24px;
  padding: 26px 0 25px;
  border-bottom: 1px solid var(--line);
  text-decoration: none;
  color: var(--text);
}
.fr-next__title {
  font-family: var(--display);
  font-stretch: condensed;
  font-weight: 500;
  font-size: clamp(1.625rem, 1.3rem + 1vw, 2.125rem);
  line-height: 1.1;
  letter-spacing: -0.01em;
  transition: transform 340ms var(--ease);
  min-width: 0;
  overflow-wrap: break-word;
}
.fr-next__help {
  grid-column: 1;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--muted);
  transition: transform 340ms var(--ease), color 260ms var(--ease);
}
.fr-next__link .fr-chev {
  grid-column: 2;
  grid-row: 1 / span 2;
  width: 0.85rem;
  color: var(--muted);
  transition: transform 340ms var(--ease), color 260ms var(--ease);
}
.fr-next__link:hover .fr-next__title,
.fr-next__link:hover .fr-next__help { transform: translateX(10px); }
.fr-next__link:hover .fr-next__help { color: var(--text); }
.fr-next__link:hover .fr-chev { color: var(--accent); transform: translateX(4px); }

/* ---------- Footer ---------- */

.fr-foot {
  border-top: 1px solid var(--line);
  padding: clamp(64px, 8vw, 112px) 0 36px;
  background: var(--ground);
}

.fr-foot__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--gutter);
  row-gap: 48px;
}

.fr-foot__brand { grid-column: 1 / span 4; min-width: 0; }
.fr-foot__brand .fr-mark { display: inline-block; margin-bottom: 20px; }
.fr-foot__brand p { color: var(--muted); font-size: 0.9875rem; line-height: 1.7; max-width: 24em; }

.fr-foot__nav { grid-column: 6 / span 3; min-width: 0; }
.fr-foot__contact { grid-column: 9 / span 4; min-width: 0; }

.fr-foot__nav .fr-label,
.fr-foot__contact .fr-label { margin-bottom: 1.1rem; }

.fr-foot__list { list-style: none; }
.fr-foot__list a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 5px 0;
  font-family: var(--display);
  font-stretch: condensed;
  font-weight: 500;
  font-size: 1.0625rem;
  line-height: 1.4;
  color: var(--muted);
  text-decoration: none;
  transition: color 240ms var(--ease), transform 320ms var(--ease);
}
.fr-foot__list a .fr-chev { width: 0.5em; opacity: 0; transition: opacity 240ms var(--ease); color: var(--accent); }
.fr-foot__list a:hover { color: var(--text); transform: translateX(6px); }
.fr-foot__list a:hover .fr-chev { opacity: 1; }
.fr-foot__list a[aria-current="page"] { color: var(--text); }

.fr-foot__mail {
  display: inline-block;
  font-family: var(--display);
  font-stretch: condensed;
  font-weight: 500;
  font-size: 1.375rem;
  line-height: 1.3;
  color: var(--text);
  overflow-wrap: anywhere;
  margin-bottom: 14px;
}
.fr-foot__contact p { color: var(--muted); font-size: 0.9875rem; line-height: 1.7; margin-bottom: 0.4em; }

.fr-foot__base {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 10px 32px;
  margin-top: clamp(56px, 7vw, 96px);
  padding-top: 22px;
  border-top: 1px solid var(--line);
  font-family: var(--display);
  font-stretch: condensed;
  font-size: 0.6875rem;
  line-height: 1.7;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--muted);
}
.fr-foot__base p { margin: 0; max-width: none; }

/* ---------- Scroll reveal (classes are added by the script only) ---------- */

.fr-rv > * {
  transition: opacity 900ms var(--ease), transform 900ms var(--ease);
}
.fr-rv > *:nth-child(2) { transition-delay: 120ms; }
.fr-rv > *:nth-child(3) { transition-delay: 220ms; }
.fr-rv > *:nth-child(n+4) { transition-delay: 300ms; }
.fr-rv--off > * {
  opacity: 0;
  transform: translate3d(0, 12px, 0);
}

/* ---------- Responsive ---------- */

@media (max-width: 1180px) {
  .fr-band__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "label note"
      "items items";
    align-items: center;
    gap: 0 20px;
    padding: 4px 0 12px;
  }
  .fr-band__label { grid-area: label; }
  .fr-band__note { grid-area: note; margin-left: 0; }
  .fr-band__items { grid-area: items; }
  .fr-band__toggle { padding: 10px 0; }
}

@media (max-width: 960px) {
  .fr-hero__grid {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto;
    min-height: 0;
    padding-block: 36px 52px;
  }
  .fr-hero__text,
  .fr-hero__actions,
  .fr-hero__fig {
    grid-column: 1;
    grid-row: auto;
    padding-right: 0;
  }
  .fr-hero__fig { margin-top: 36px; }
  .fr-hero__actions {
    flex-direction: column;
    gap: 14px;
    margin-top: 32px;
  }
  .fr-hero .fr-draw { max-height: 380px; min-height: 0; }

  .fr-split__grid,
  .fr-block__grid,
  .fr-next__inner,
  .fr-shapes__head,
  .fr-tabs__panel,
  .fr-aside__inner,
  .fr-foot__grid,
  .fr-band__text {
    grid-template-columns: minmax(0, 1fr);
  }

  .fr-split__fig,
  .fr-split__text,
  .fr-split--flip .fr-split__fig,
  .fr-split--flip .fr-split__text {
    grid-column: 1;
    grid-row: auto;
    padding: 0;
  }
  .fr-split__text { margin-top: clamp(36px, 7vw, 56px); max-width: 38em; }
  .fr-split--intro .fr-split__text { order: -1; margin-top: 0; margin-bottom: clamp(40px, 8vw, 56px); }
  .fr-split--top .fr-split__text { padding-top: 0; }

  .fr-block__head,
  .fr-block__body,
  .fr-block--wide .fr-block__body { grid-column: 1; padding: 0; }
  .fr-block__head { margin-bottom: 36px; }

  .fr-next__head,
  .fr-next__list { grid-column: 1; }
  .fr-next__head { margin-bottom: 32px; }

  .fr-shapes__title,
  .fr-shapes__aside { grid-column: 1; }
  .fr-shapes__aside { margin-top: 20px; }

  .fr-tabs__fig,
  .fr-tabs__body { grid-column: 1; }
  .fr-tabs__body { margin-top: 28px; }

  .fr-aside__inner > .fr-label,
  .fr-aside__text { grid-column: 1; padding-top: 0; }

  .fr-band__text > *,
  .fr-band__text > .fr-label { grid-column: 1; grid-row: auto; }

  .fr-foot__brand,
  .fr-foot__nav,
  .fr-foot__contact { grid-column: 1; }
}

@media (min-width: 640px) and (max-width: 960px) {
  .fr-foot__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fr-foot__brand { grid-column: 1 / -1; }
  .fr-foot__nav { grid-column: 1; }
  .fr-foot__contact { grid-column: 2; }
}

@media (max-width: 860px) {
  .fr-nav { display: none; }
  .fr-menu { display: block; }
  .fr-head__inner { height: 64px; }
}

@media (max-width: 760px) {
  .fr-strip__grid { grid-template-columns: minmax(0, 1fr); }
  .fr-strip__item,
  .fr-strip__item + .fr-strip__item {
    border-left: 0;
    padding: 28px 0 0;
  }
  .fr-strip__item + .fr-strip__item { border-top: 1px solid var(--line); margin-top: 28px; }

  .fr-cols { grid-template-columns: minmax(0, 1fr); }

  .fr-rows--prose .fr-rows__row,
  .fr-defs__row { grid-template-columns: minmax(0, 1fr); }
  .fr-rows--prose .fr-rows__k { padding-top: 0; }
}

@media (max-width: 560px) {
  .fr-band {
    font-size: 0.625rem;
    letter-spacing: 0.17em;
  }
  .fr-band__item + .fr-band__item::before { padding: 0 0.6em 0 0.4em; }

  .fr-acc__sum {
    grid-template-columns: 2.4rem minmax(0, 1fr) auto;
    gap: 6px 14px;
    padding: 22px 0 21px;
  }
  .fr-acc__meta { grid-column: 2; grid-row: 2; text-align: left; white-space: normal; }
  .fr-acc__sum .fr-chev { grid-column: 3; grid-row: 1; }
  .fr-acc__title { font-size: 1.375rem; }
  .fr-acc__inner { padding-left: calc(2.4rem + 14px); }
  .fr-acc__facts { grid-template-columns: minmax(0, 1fr); }
  .fr-acc__facts dt { border-bottom: 0; padding-bottom: 0; }

  .fr-prices__row,
  .fr-rows__row { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .fr-prices__fig,
  .fr-rows__v { text-align: left; white-space: normal; }

  .fr-fig__cap { grid-template-columns: minmax(0, 1fr); gap: 2px; }

  .fr-steps li,
  .fr-turn li { grid-template-columns: 2.2rem minmax(0, 1fr); }

  .fr-hero__title { margin-bottom: 0.5em; }
  .fr-facts li + li::before { padding: 0 0.7em 0 0.5em; }
}

/* ---------- Reduced motion ---------- */

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    transition-duration: 0.01ms !important;
    transition-delay: 0ms !important;
    animation-duration: 0.01ms !important;
    animation-delay: 0ms !important;
    animation-iteration-count: 1 !important;
  }
  .fr-rv--off > * { opacity: 1; transform: none; }
}

@media print {
  .fr-band__note, .fr-menu, .fr-skip { display: none; }
  .fr-rv--off > * { opacity: 1; transform: none; }
  body { background: #fff; color: #000; }
}