@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&display=swap');

:root {
  --site-width: 980px;
  --black: #000;
  --white: #fff;
  --nav-grey: #858585;
}

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  min-height: 100%;
}

body {
  position: relative;
  background: #fff;
  color: #000;
  font-family: 'Montserrat', Arial, Helvetica, sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
  overflow-x: hidden;
}

.page-texture {
  position: fixed;
  z-index: -1;
  inset: 0;
  pointer-events: none;
  background-color: #fff;
  background-image: url("images/background.png");
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
}


.site-header {
  width: 100%;
  background: transparent;
}

.header-inner {
  position: relative;
  width: var(--site-width);
  height: 199px;
  margin: 0 auto;
}

.language-switcher {
  position: absolute;
  top: 30px;
  left: 0;
  width: 92px;
  min-height: 45px;
  z-index: 10;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 15px;
  font-weight: 400;
}

.language-switcher summary {
  list-style: none;
  width: 92px;
  height: 45px;
  border: 1px solid #959595;
  background: #fff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 13px 0 14px;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.language-switcher summary:hover,
.language-switcher[open] summary {
  border-color: #111;
  box-shadow: 0 7px 18px rgba(0, 0, 0, .08);
}


.language-switcher summary::-webkit-details-marker {
  display: none;
}

.chevron {
  width: 10px;
  height: 10px;
  border-right: 1.5px solid #111;
  border-bottom: 1.5px solid #111;
  transform: rotate(45deg) translateY(-2px);
  transition: transform .22s ease;
}


.language-switcher[open] .chevron {
  transform: rotate(225deg) translate(-1px, -1px);
}

.language-menu {
  border: 1px solid #959595;
  border-top: 0;
  background: #fff;
}

.language-menu a {
  display: block;
  padding: 11px 14px;
  color: #000;
  text-decoration: none;
}

.language-menu a:hover {
  background: #f4f4f4;
}

.logo {
  position: absolute;
  top: 0;
  left: 303px;
  width: 373px;
  height: 155px;
  display: block;
  overflow: hidden;
}

.logo img {
  display: block;
  width: 373px;
  height: 155px;
  object-fit: cover;
}

.main-nav {
  position: absolute;
  top: 155px;
  left: 162px;
  width: 662px;
  height: 40px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
}

.main-nav a {
  position: relative;
  height: 40px;
  padding: 9px 17px 0;
  color: var(--nav-grey);
  font-size: 18px;
  line-height: 1.4;
  font-weight: 400;
  text-decoration: none;
  white-space: nowrap;
  transition: color .24s ease, transform .24s ease;
}

.main-nav a::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: calc(100% - 18px);
  height: 4px;
  background: #000;
  transform: translateX(-50%) scaleX(0);
  transform-origin: center;
  transition: transform .28s cubic-bezier(.22, 1, .36, 1),
              opacity .16s ease;
}

.main-nav a:hover,
.main-nav a:focus-visible,
.main-nav a.active {
  color: #000;
}

.main-nav a:hover,
.main-nav a:focus-visible {
  transform: translateY(-1px);
}

.main-nav a:hover::before,
.main-nav a:focus-visible::before,
.main-nav a.active::before {
  transform: translateX(-50%) scaleX(1);
}

.services {
  width: var(--site-width);
  margin: 39px auto 0;
}

.service-grid {
  display: grid;
  grid-template-columns: 320px 330px 330px;
  gap: 0;
  width: 980px;
}

.top-row {
  height: 502px;
}

.bottom-row {
  height: 492px;
}

.service-card,
.blank-cell {
  position: relative;
  height: 100%;
}

.service-card.dark {
  background: #000;
  color: #fff;
}

.service-card.light,
.blank-cell {
  background: #fff;
  color: #000;
}

.service-card svg {
  display: block;
  width: 100%;
  height: 100%;
  fill: currentColor;
}

.service-card h2 {
  position: absolute;
  margin: 0;
  font-size: 31px;
  line-height: 1em;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0;
}

.service-copy {
  position: absolute;
  width: 286px;
  height: 100%;
}

.service-copy p {
  margin: 0;
  font-size: 16px;
  line-height: 1.8;
  font-weight: 400;

  /* Homepage only: restore the original Wix treatment. The prose fills the
     fixed 286px copy rail and is justified between words, while the final
     line remains naturally aligned. Compound words are kept intact rather
     than being automatically hyphenated. */
  text-align: justify;
  text-align-last: left;
  text-justify: inter-word;
  hyphens: none;
  -webkit-hyphens: none;
  overflow-wrap: normal;
  word-break: normal;
  letter-spacing: 0;
  word-spacing: normal;
  font-kerning: normal;
  font-variant-ligatures: common-ligatures;
  text-rendering: optimizeLegibility;
}

.service-copy .og-track-wide {
  letter-spacing: .05em;
}

.service-copy .og-track-tight-space {
  letter-spacing: -.05em;
}


.read-more {
  position: absolute;
  right: 0;
  bottom: 0;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 0 5px;
  border: 0;
  color: inherit;
  font-size: 13px;
  line-height: 1;
  font-weight: 700;
  letter-spacing: .005em;
  text-align: right;
  text-decoration: none;
  white-space: nowrap;
  transition: letter-spacing .28s cubic-bezier(.22, 1, .36, 1),
              opacity .22s ease;
}

/* Minimalist animated underline: invisible at rest, draws itself on hover. */
.read-more::before {
  content: "";
  position: absolute;
  left: 0;
  right: 14px;
  bottom: 0;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform .32s cubic-bezier(.22, 1, .36, 1);
}

.read-more::after {
  content: ">";
  display: inline-block;
  font-size: 13px;
  line-height: 1;
  transform: translateX(0);
  transition: transform .32s cubic-bezier(.22, 1, .36, 1);
}

.read-more:hover,
.read-more:focus-visible {
  letter-spacing: .025em;
}

.read-more:hover::before,
.read-more:focus-visible::before {
  transform: scaleX(1);
  transform-origin: left center;
}

.read-more:hover::after,
.read-more:focus-visible::after {
  transform: translateX(4px);
}

.read-more:focus-visible {
  outline: 1px solid currentColor;
  outline-offset: 5px;
}

/* Row 1 — values taken from the original Wix component geometry. */
.copywriting .service-icon {
  position: absolute;
  top: 19px;
  left: 126px;
  width: 67px;
  height: 99px;
}

.copywriting h2 {
  top: 144px;
  left: 6px;
  width: 315px;
}

.copywriting .service-copy {
  top: 211px;
  left: 17px;
  height: 255px;
}

.proofreading .service-icon {
  position: absolute;
  top: 36px;
  left: 119px;
  width: 99px;
  height: 65px;
}

.proofreading h2 {
  top: 120px;
  left: 0;
  width: 330px;
}

.proofreading .service-copy {
  top: 211px;
  left: 22px;
  height: 255px;
}

.translation .service-icon {
  position: absolute;
  top: 30px;
  left: 125px;
  width: 81px;
  height: 99px;
}

.translation h2 {
  top: 144px;
  left: 8px;
  width: 315px;
}

.translation .service-copy {
  top: 211px;
  left: 22px;
  height: 255px;
}

/* Row 2 */
.communication .service-icon {
  position: absolute;
  top: 27px;
  left: 110px;
  width: 99px;
  height: 92px;
}

.communication h2 {
  top: 128px;
  left: 2px;
  width: 315px;
}

.communication .service-copy {
  top: 223px;
  left: 17px;
  height: 260px;
}

.language-lessons .service-icon {
  position: absolute;
  top: 52px;
  left: 119px;
  width: 99px;
  height: 76px;
}

.language-lessons h2 {
  top: 143px;
  left: 8px;
  width: 320px;
}

.language-lessons .service-copy {
  top: 223px;
  left: 22px;
  height: 260px;
}

.site-footer {
  width: var(--site-width);
  margin: 0 auto;
  padding: 24px 27px;
  color: #5d5d5d;
  font-size: 13px;
  line-height: normal;
  text-align: center;
}

.site-footer p {
  margin: 0;
}

.site-footer a {
  color: inherit;
  text-decoration: underline;
}

@media (max-width: 1020px) {
  :root {
    --site-width: min(980px, 100vw);
  }

  .header-inner {
    width: 100%;
    height: auto;
    min-height: 205px;
    padding: 0 20px;
  }

  .language-switcher {
    left: 20px;
  }

  .logo {
    left: 50%;
    transform: translateX(-50%);
  }

  .main-nav {
    left: 50%;
    transform: translateX(-50%);
    max-width: calc(100vw - 40px);
  }

  .services {
    width: 100%;
    max-width: 980px;
  }

  .service-grid {
    width: 100%;
    grid-template-columns: 32.653061% 33.673469% 33.673469%;
  }
}

@media (max-width: 720px) {
  .header-inner {
    min-height: 230px;
  }

  .language-switcher {
    top: 14px;
  }

  .logo {
    top: 4px;
    width: min(373px, calc(100vw - 130px));
    height: auto;
    aspect-ratio: 373 / 155;
  }

  .logo img {
    width: 100%;
    height: 100%;
  }

  .main-nav {
    top: 170px;
    width: calc(100vw - 24px);
    height: auto;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0 4px;
  }

  .main-nav a {
    font-size: 14px;
    padding-inline: 9px;
  }

  .services {
    margin-top: 22px;
  }

  .service-grid {
    display: block;
    height: auto;
  }

  .service-card {
    width: min(100%, 420px);
    height: 502px;
    margin: 0 auto;
  }

  .bottom-row .service-card {
    height: 492px;
  }

  .blank-cell {
    display: none;
  }

  .copywriting .service-icon,
  .copywriting h2,
  .copywriting .service-copy,
  .proofreading .service-icon,
  .proofreading h2,
  .proofreading .service-copy,
  .translation .service-icon,
  .translation h2,
  .translation .service-copy,
  .communication .service-icon,
  .communication h2,
  .communication .service-copy,
  .language-lessons .service-icon,
  .language-lessons h2,
  .language-lessons .service-copy {
    left: 50%;
    transform: translateX(-50%);
  }

  .site-footer {
    width: 100%;
    padding-inline: 20px;
  }
}

/* =========================
   What you get page
   ========================= */
.what-you-get-page .header-inner {
  height: 199px;
}

.what-you-get {
  width: var(--site-width);
  margin: 23px auto 0;
}

.detail-row {
  position: relative;
  width: 100%;
  overflow: hidden;
}

.detail-row.dark {
  background: #000;
  color: #fff;
}

.detail-row.light {
  background: #fff;
  color: #000;
}

.detail-row:nth-child(1),
.detail-row:nth-child(3),
.detail-row:nth-child(4) {
  height: 270px;
}

.detail-row:nth-child(2),
.detail-row:nth-child(5) {
  height: 250px;
}

.detail-icon {
  position: absolute;
  left: 35px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.detail-icon svg {
  display: block;
  width: 100%;
  height: 100%;
  fill: currentColor;
}

.copy-icon {
  top: 45px;
  width: 108px;
  height: 159px;
}

.proof-icon {
  top: 65px;
  left: 32px;
  width: 122px;
  height: 80px;
}

.translation-icon {
  top: 46px;
  left: 40px;
  width: 105px;
  height: 127px;
}

.communication-icon {
  top: 57px;
  left: 30px;
  width: 126px;
  height: 118px;
}

.lessons-icon {
  top: 65px;
  left: 28px;
  width: 132px;
  height: 102px;
}

.detail-copy {
  position: absolute;
  top: 25px;
  left: 194px;
  width: calc(100% - 194px);
}

.detail-copy h1,
.detail-copy h2 {
  margin: 0;
  color: inherit;
  font-size: 27px;
  line-height: 1.05;
  font-weight: 700;
  letter-spacing: -.006em;
  white-space: nowrap;
}

.detail-copy p {
  width: 615px;
  margin: 27px 0 0;
  color: inherit;
  font-size: 16px;
  line-height: 1.8;
  font-weight: 400;
  text-align: justify;
  text-align-last: left;
  text-justify: inter-word;
  hyphens: auto;
  -webkit-hyphens: auto;
  hyphenate-limit-chars: 7 3 3;
  hyphenate-limit-lines: 1;
  letter-spacing: .001em;
  word-spacing: -.012em;
  font-kerning: normal;
  font-variant-ligatures: common-ligatures;
  text-rendering: optimizeLegibility;
}

/* The source design places these at a uniform right-hand stop.  Keeping the
   link independent of paragraph height preserves that alignment. */
.see-rates {
  position: absolute;
  right: 40px;
  bottom: 52px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 0 5px;
  color: inherit;
  font-size: 14px;
  line-height: 1;
  font-weight: 700;
  letter-spacing: .004em;
  text-decoration: none;
  white-space: nowrap;
  transition: letter-spacing .28s cubic-bezier(.22, 1, .36, 1),
              opacity .22s ease;
}

.detail-row:nth-child(2) .see-rates,
.detail-row:nth-child(5) .see-rates {
  bottom: 41px;
}

.see-rates::before {
  content: "";
  position: absolute;
  left: 0;
  right: 14px;
  bottom: 0;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform .32s cubic-bezier(.22, 1, .36, 1);
}

.see-rates::after {
  content: ">";
  display: inline-block;
  transform: translateX(0);
  transition: transform .32s cubic-bezier(.22, 1, .36, 1);
}

.see-rates:hover,
.see-rates:focus-visible {
  letter-spacing: .025em;
}

.see-rates:hover::before,
.see-rates:focus-visible::before {
  transform: scaleX(1);
  transform-origin: left center;
}

.see-rates:hover::after,
.see-rates:focus-visible::after {
  transform: translateX(4px);
}

.see-rates:focus-visible {
  outline: 1px solid currentColor;
  outline-offset: 5px;
}

.guarantee {
  width: 860px;
  margin: 34px auto 0;
  padding-top: 12px;
  border-top: 2px solid #6f6f6f;
  color: #111;
  text-align: center;
}

.guarantee p {
  margin: 0;
  font-size: 14px;
  line-height: 1.7;
  font-style: italic;
  font-weight: 400;
}

.what-you-get-page .site-footer {
  padding-top: 29px;
}

@media (max-width: 1020px) {
  .what-you-get {
    width: 100%;
    max-width: 980px;
  }

  .detail-copy {
    width: calc(100% - 218px);
  }

  .detail-copy h1,
  .detail-copy h2 {
    font-size: clamp(20px, 2.75vw, 28px);
    letter-spacing: -.012em;
  }

  .detail-copy p {
    width: min(615px, calc(100vw - 300px));
  }

  .guarantee {
    width: min(860px, calc(100vw - 50px));
  }
}

@media (max-width: 720px) {
  .what-you-get-page .header-inner {
    height: auto;
  }

  .what-you-get {
    margin-top: 22px;
  }

  .detail-row,
  .detail-row:nth-child(1),
  .detail-row:nth-child(2),
  .detail-row:nth-child(3),
  .detail-row:nth-child(4),
  .detail-row:nth-child(5) {
    height: auto;
    min-height: 0;
    padding: 38px 28px 82px;
  }

  .detail-icon,
  .copy-icon,
  .proof-icon,
  .translation-icon,
  .communication-icon,
  .lessons-icon {
    position: relative;
    top: auto;
    left: auto;
    margin: 0 auto 28px;
  }

  .copy-icon {
    width: 78px;
    height: 115px;
  }

  .proof-icon {
    width: 112px;
    height: 74px;
  }

  .translation-icon {
    width: 84px;
    height: 102px;
  }

  .communication-icon {
    width: 112px;
    height: 105px;
  }

  .lessons-icon {
    width: 118px;
    height: 92px;
  }

  .detail-copy {
    position: relative;
    top: auto;
    left: auto;
    width: min(100%, 540px);
    margin: 0 auto;
  }

  .detail-copy h1,
  .detail-copy h2 {
    font-size: clamp(16px, 4.2vw, 25px);
    line-height: 1.1;
    text-align: center;
    white-space: nowrap;
  }

  .detail-copy p {
    width: 100%;
    margin-top: 24px;
    font-size: 15px;
    line-height: 1.72;
    text-align: left;
    word-spacing: normal;
  }

  .see-rates,
  .detail-row:nth-child(2) .see-rates,
  .detail-row:nth-child(5) .see-rates {
    right: 28px;
    bottom: 28px;
  }

  .guarantee {
    margin-top: 30px;
    padding-inline: 10px;
  }
}


@media (max-width: 440px) {
  .detail-copy h1,
  .detail-copy h2 {
    font-size: clamp(11px, 3.35vw, 14px);
    letter-spacing: -.018em;
  }
}



/* During a page change the active navigation rule glides from the old tab to
   the new one, echoing the existing underline hover animation. */
.nav-page-marker {
  position: absolute;
  z-index: 3;
  top: 0;
  height: 4px;
  background: #000;
  pointer-events: none;
  opacity: 1;
  transition: left 500ms cubic-bezier(.22, 1, .36, 1),
              width 500ms cubic-bezier(.22, 1, .36, 1),
              opacity 160ms ease;
}

/* Keep the destination tab's normal underline hidden while the travelling
   marker is moving. Once it arrives, cross-fade the two identical rules so
   there is no one-frame disappearance / reappearance at the hand-off. */
.page-entering .main-nav a.active::before {
  opacity: 0;
}

body.page-transition-settling .main-nav a.active::before {
  opacity: 1;
}

body.page-transition-settling .nav-page-marker {
  opacity: 0;
}

/* =========================
   Page-to-page motion
   ========================= */
:root {
  --page-motion-duration: 360ms;
  --page-motion-ease: cubic-bezier(.22, 1, .36, 1);
}

/* Only the changing page content moves. The logo, language selector and
   navigation remain visually anchored, which makes the two pages feel like
   one continuous interface rather than separate documents. */
.page-leaving .services,
.page-leaving .what-you-get,
.page-leaving .rates,
.page-leaving .clients,
.page-leaving .contact,
.page-entering .services,
.page-entering .what-you-get,
.page-entering .rates,
.page-entering .clients,
.page-entering .contact,
.page-entering .guarantee,
.page-entering .site-footer {
  will-change: transform, opacity;
}

body[data-page-transition="forward"].page-leaving .services,
body[data-page-transition="forward"].page-leaving .what-you-get,
body[data-page-transition="forward"].page-leaving .rates,
body[data-page-transition="forward"].page-leaving .clients,
body[data-page-transition="forward"].page-leaving .contact {
  animation: page-out-left var(--page-motion-duration) var(--page-motion-ease) both;
}

body[data-page-transition="back"].page-leaving .what-you-get,
body[data-page-transition="back"].page-leaving .rates,
body[data-page-transition="back"].page-leaving .clients,
body[data-page-transition="back"].page-leaving .contact,
body[data-page-transition="back"].page-leaving .guarantee {
  animation: page-out-right var(--page-motion-duration) var(--page-motion-ease) both;
}

body[data-page-transition="forward"].page-entering .what-you-get,
body[data-page-transition="forward"].page-entering .rates,
body[data-page-transition="forward"].page-entering .clients,
body[data-page-transition="forward"].page-entering .contact {
  animation: page-in-right 520ms var(--page-motion-ease) both;
}

body[data-page-transition="back"].page-entering .services,
body[data-page-transition="back"].page-entering .what-you-get,
body[data-page-transition="back"].page-entering .rates,
body[data-page-transition="back"].page-entering .clients,
body[data-page-transition="back"].page-entering .contact {
  animation: page-in-left 520ms var(--page-motion-ease) both;
}

/* Secondary elements come in a fraction later, keeping the movement subtle. */
.page-entering .guarantee,
.page-entering .site-footer {
  animation: page-soft-in 420ms 120ms var(--page-motion-ease) both;
}

/* Individual blocks add a restrained stagger on arrival. */
body[data-page-transition="forward"].page-entering .detail-row,
body[data-page-transition="forward"].page-entering .rate-row {
  animation: row-reveal 520ms var(--page-motion-ease) both;
}
body[data-page-transition="forward"].page-entering .detail-row:nth-child(2) { animation-delay: 35ms; }
body[data-page-transition="forward"].page-entering .detail-row:nth-child(3) { animation-delay: 70ms; }
body[data-page-transition="forward"].page-entering .detail-row:nth-child(4) { animation-delay: 105ms; }
body[data-page-transition="forward"].page-entering .detail-row:nth-child(5) { animation-delay: 140ms; }
body[data-page-transition="forward"].page-entering .rate-row:nth-child(2) { animation-delay: 30ms; }
body[data-page-transition="forward"].page-entering .rate-row:nth-child(3) { animation-delay: 60ms; }
body[data-page-transition="forward"].page-entering .rate-row:nth-child(4) { animation-delay: 90ms; }
body[data-page-transition="forward"].page-entering .rate-row:nth-child(5) { animation-delay: 120ms; }

body[data-page-transition="back"].page-entering .service-card,
body[data-page-transition="back"].page-entering .detail-row,
body[data-page-transition="back"].page-entering .rate-row {
  animation: card-reveal 500ms var(--page-motion-ease) both;
}
body[data-page-transition="back"].page-entering .top-row .service-card:nth-child(2) { animation-delay: 35ms; }
body[data-page-transition="back"].page-entering .top-row .service-card:nth-child(3) { animation-delay: 70ms; }
body[data-page-transition="back"].page-entering .bottom-row .service-card:nth-child(1) { animation-delay: 105ms; }
body[data-page-transition="back"].page-entering .bottom-row .service-card:nth-child(2) { animation-delay: 140ms; }

@keyframes page-out-left {
  to { opacity: 0; transform: translate3d(-28px, 0, 0); }
}

@keyframes page-out-right {
  to { opacity: 0; transform: translate3d(28px, 0, 0); }
}

@keyframes page-in-right {
  from { opacity: 0; transform: translate3d(30px, 0, 0); }
  to   { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes page-in-left {
  from { opacity: 0; transform: translate3d(-30px, 0, 0); }
  to   { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes page-soft-in {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes row-reveal {
  from { opacity: .42; transform: translateX(14px); }
  to   { opacity: 1; transform: translateX(0); }
}

@keyframes card-reveal {
  from { opacity: .45; transform: translateX(-12px) scale(.992); }
  to   { opacity: 1; transform: translateX(0) scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  .page-leaving .services,
  .page-leaving .what-you-get,
  .page-leaving .rates,
  .page-leaving .clients,
  .page-leaving .guarantee,
  .page-entering .services,
  .page-entering .what-you-get,
  .page-entering .rates,
  .page-entering .clients,
  .page-entering .detail-row,
  .page-entering .rate-row,
  .page-entering .service-card,
  .page-entering .guarantee,
  .page-entering .site-footer {
    animation: none !important;
  }
}

/* =========================
   Rates page
   ========================= */
.rates-page .header-inner {
  height: 199px;
}

.rates {
  width: var(--site-width);
  margin: 0 auto;
  color: #414141;
}

.rate-row {
  position: relative;
  width: 100%;
  display: grid;
  grid-template-columns: 314px 1fr;
}

.rate-icon {
  grid-column: 1;
  justify-self: start;
  color: #000;
}

.rate-icon svg {
  display: block;
  width: 100%;
  height: 100%;
  fill: currentColor;
}

.rate-copy {
  grid-column: 2;
  justify-self: start;
}

.rate-copy h1,
.rate-copy h2,
.rate-copy p {
  margin: 0;
  padding: 0;
}

.rate-copy h1,
.rate-copy h2 {
  color: #414141;
  font-size: 22px;
  line-height: 24px;
  font-weight: 700;
  letter-spacing: 0;
  white-space: nowrap;
}

.rate-copy h1 span,
.rate-copy h2 span {
  position: relative;
  top: -1px;
  font-size: 12px;
  line-height: 24px;
  font-weight: 400;
  font-style: italic;
  white-space: nowrap;
}

.rate-copy p {
  color: #414141;
  font-size: 16px;
  line-height: 24px;
  font-weight: 400;
  letter-spacing: 0;
  word-spacing: 0;
}

.rate-copy a {
  position: relative;
  color: inherit;
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
  transition: color .2s ease, text-underline-offset .2s ease;
}

.rate-copy a:hover,
.rate-copy a:focus-visible {
  color: #000;
  text-underline-offset: 4px;
}

.rate-copy a:focus-visible {
  outline: 1px solid currentColor;
  outline-offset: 3px;
}

/* Geometry mirrors the original Wix layout: the text begins at x=314,
   while each icon keeps its own optical horizontal alignment. */
.rate-copywriting {
  min-height: 133px;
  padding: 41px 0 16px;
}

.rate-copywriting .rate-icon {
  width: 51px;
  height: 75px;
  margin-left: 233px;
  margin-top: 1px;
}

.rate-copywriting .rate-copy {
  width: 518px;
}

.rate-proofreading {
  min-height: 122px;
  padding: 16px 0 30px;
}

.rate-proofreading .rate-icon {
  width: 79px;
  height: 52px;
  margin-left: 204px;
  margin-top: 12px;
}

.rate-proofreading .rate-copy {
  width: 518px;
}

.rate-translation {
  min-height: 198px;
  padding: 0 0 30px;
}

.rate-translation .rate-icon {
  width: 68px;
  height: 83px;
  margin-left: 215px;
  margin-top: 31px;
}

.rate-translation .rate-copy {
  width: 641px;
}

.rate-communication {
  min-height: 130px;
  padding: 0 0 30px;
}

.rate-communication .rate-icon {
  width: 73px;
  height: 69px;
  margin-left: 210px;
  margin-top: 15px;
}

.rate-communication .rate-copy {
  width: 666px;
}

.rate-lessons {
  min-height: 130px;
  padding: 0 0 30px;
}

.rate-lessons .rate-icon {
  width: 73px;
  height: 57px;
  margin-left: 210px;
  margin-top: 21px;
}

.rate-lessons .rate-copy {
  width: 666px;
}

.rates-footer {
  padding-top: 22px;
  padding-bottom: 29px;
}

@media (max-width: 1020px) {
  .rates {
    width: 100%;
    max-width: 980px;
  }

  .rate-copy {
    max-width: calc(100vw - 334px);
  }

  .rate-copy h1,
  .rate-copy h2 {
    font-size: clamp(17px, 2.15vw, 22px);
  }

  .rate-copy p {
    font-size: clamp(14px, 1.57vw, 16px);
  }
}

@media (max-width: 720px) {
  .rates-page .header-inner {
    height: auto;
  }

  .rates {
    margin-top: 6px;
    padding: 0 24px 8px;
  }

  .rate-row,
  .rate-copywriting,
  .rate-proofreading,
  .rate-translation,
  .rate-communication,
  .rate-lessons {
    display: block;
    min-height: 0;
    padding: 30px 0 28px;
  }

  .rate-icon,
  .rate-copywriting .rate-icon,
  .rate-proofreading .rate-icon,
  .rate-translation .rate-icon,
  .rate-communication .rate-icon,
  .rate-lessons .rate-icon {
    margin: 0 auto 22px;
  }

  .rate-copy,
  .rate-copywriting .rate-copy,
  .rate-proofreading .rate-copy,
  .rate-translation .rate-copy,
  .rate-communication .rate-copy,
  .rate-lessons .rate-copy {
    width: min(100%, 560px);
    max-width: none;
    margin: 0 auto;
  }

  .rate-copy h1,
  .rate-copy h2 {
    font-size: clamp(15px, 4.4vw, 22px);
    text-align: center;
  }

  .rate-copy h1 span,
  .rate-copy h2 span {
    font-size: 11px;
  }

  .rate-copy p {
    font-size: 15px;
    line-height: 1.55;
    text-align: left;
  }
}

@media (max-width: 470px) {
  .rate-copy h1,
  .rate-copy h2 {
    font-size: clamp(12px, 3.75vw, 17px);
    letter-spacing: -.01em;
  }

  .rate-copy h1 span,
  .rate-copy h2 span {
    font-size: 9px;
  }
}


/* =========================
   Clients page
   ========================= */
.clients-page .header-inner {
  height: 199px;
}

.clients {
  width: var(--site-width);
  margin: 0 auto;
  padding-top: 57px;
}

.clients h1 {
  width: 980px;
  margin: 0 0 40px;
  color: #000;
  font-size: 28px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: 0;
  text-align: center;
  white-space: nowrap;
}

.clients-logo-stage {
  position: relative;
  width: 980px;
  height: 825px;
}

.client-logo {
  position: absolute;
  overflow: hidden;
}

.client-logo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Exact geometry from the original 980px Wix layout. */
.client-rotondes { left: 2px;   top: 4px;   width: 188px; height: 99px; }
.client-theatres { left: 253px; top: 4px;   width: 188px; height: 99px; }
.client-uni      { left: 502px; top: 0;     width: 107px; height: 107px; }
.client-sante    { left: 669px; top: 17px;  width: 310px; height: 73px; }

.client-kirps    { left: 4px;   top: 148px; width: 196px; height: 81px; }
.client-focuna   { left: 247px; top: 137px; width: 157px; height: 99px; }
.client-culture  { left: 443px; top: 156px; width: 310px; height: 73px; }
.client-centaure { left: 779px; top: 148px; width: 200px; height: 68px; }

.client-esch      { left: 0;     top: 256px; width: 176px; height: 130px; }
.client-binsfeld  { left: 234px; top: 278px; width: 196px; height: 86px; }
.client-moderne   { left: 502px; top: 278px; width: 217px; height: 86px; }
.client-charlotte { left: 760px; top: 264px; width: 217px; height: 112px; }

.client-british { left: 4px;   top: 432px; width: 120px; height: 120px; }
.client-taylors { left: 191px; top: 456px; width: 200px; height: 73px; }
.client-luar    { left: 497px; top: 442px; width: 200px; height: 86px; }
.client-oxygen  { left: 777px; top: 475px; width: 200px; height: 33px; }

.client-results { left: 104px; top: 604px; width: 180px; height: 23px; }
.client-motp    { left: 426px; top: 575px; width: 145px; height: 81px; }
.client-istha   { left: 725px; top: 575px; width: 217px; height: 73px; }
.client-schilling { left: 381px; top: 690px; width: 217px; height: 90px; }

.clients-footer {
  padding-top: 24px;
  padding-bottom: 29px;
}

/* Subtle stagger within the same smooth inter-page transition.
   All logo animations finish comfortably before the transition state is removed,
   avoiding the end-frame blink from the earlier version. */
body.page-entering .client-logo {
  will-change: transform, opacity;
}

body[data-page-transition="forward"].page-entering .client-logo,
body[data-page-transition="back"].page-entering .client-logo {
  animation: client-logo-reveal 420ms var(--page-motion-ease) both;
}

body.page-entering .client-logo:nth-child(2)  { animation-delay: 12ms; }
body.page-entering .client-logo:nth-child(3)  { animation-delay: 24ms; }
body.page-entering .client-logo:nth-child(4)  { animation-delay: 36ms; }
body.page-entering .client-logo:nth-child(5)  { animation-delay: 48ms; }
body.page-entering .client-logo:nth-child(6)  { animation-delay: 60ms; }
body.page-entering .client-logo:nth-child(7)  { animation-delay: 72ms; }
body.page-entering .client-logo:nth-child(8)  { animation-delay: 84ms; }
body.page-entering .client-logo:nth-child(9)  { animation-delay: 96ms; }
body.page-entering .client-logo:nth-child(10) { animation-delay: 108ms; }
body.page-entering .client-logo:nth-child(11) { animation-delay: 120ms; }
body.page-entering .client-logo:nth-child(12) { animation-delay: 132ms; }
body.page-entering .client-logo:nth-child(13) { animation-delay: 144ms; }
body.page-entering .client-logo:nth-child(14) { animation-delay: 156ms; }
body.page-entering .client-logo:nth-child(15) { animation-delay: 168ms; }
body.page-entering .client-logo:nth-child(16) { animation-delay: 180ms; }
body.page-entering .client-logo:nth-child(17) { animation-delay: 192ms; }
body.page-entering .client-logo:nth-child(18) { animation-delay: 204ms; }
body.page-entering .client-logo:nth-child(19) { animation-delay: 216ms; }
body.page-entering .client-logo:nth-child(20) { animation-delay: 228ms; }

@keyframes client-logo-reveal {
  from { opacity: .35; transform: translateY(7px) scale(.995); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-width: 1020px) and (min-width: 721px) {
  .clients {
    width: 980px;
  }
}

@media (max-width: 720px) {
  .clients-page .header-inner {
    height: auto;
  }

  .clients {
    width: 100%;
    padding: 20px 24px 8px;
  }

  .clients h1 {
    width: 100%;
    margin-bottom: 34px;
    font-size: clamp(21px, 6vw, 28px);
    white-space: normal;
  }

  .clients-logo-stage {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: center;
    gap: 34px 28px;
    width: 100%;
    height: auto;
  }

  .client-logo,
  .client-rotondes, .client-theatres, .client-uni, .client-sante,
  .client-kirps, .client-focuna, .client-culture, .client-centaure,
  .client-esch, .client-binsfeld, .client-moderne, .client-charlotte,
  .client-british, .client-taylors, .client-luar, .client-oxygen,
  .client-results, .client-motp, .client-istha, .client-schilling {
    position: static;
    justify-self: center;
    width: min(100%, var(--mobile-logo-width, 210px));
    height: auto;
    overflow: visible;
  }

  .client-logo img {
    width: 100%;
    height: auto;
    object-fit: contain;
  }

  .client-uni     { --mobile-logo-width: 110px; }
  .client-focuna  { --mobile-logo-width: 165px; }
  .client-esch    { --mobile-logo-width: 150px; }
  .client-british { --mobile-logo-width: 145px; }
  .client-results { --mobile-logo-width: 190px; }
  .client-motp    { --mobile-logo-width: 155px; }

  .clients-footer {
    padding-top: 42px;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.page-entering .client-logo {
    animation: none !important;
  }
}

.client-schilling img { object-fit: contain; }

/* =========================
   Contact page
   ========================= */
.contact {
  width: var(--site-width);
  margin: 67px auto 0;
}

/* Original Wix layout: 965px text element, positioned 6px into the 980px grid. */
.contact-intro {
  width: 965px;
  margin: 0 0 70px 6px;
  color: #000;
  font-size: 17px;
  line-height: 1.4;
  font-weight: 400;
  letter-spacing: 0;
  white-space: nowrap;
}

/* The original form sits 307px from the left edge of the 980px content grid:
   23px app-widget offset + 284px field offset. */
.contact-form-block {
  width: 350px;
  margin-left: 307px;
}

.contact-form-block h1 {
  width: 349px;
  margin: 0 0 30px;
  font-size: 30px;
  line-height: 1.4;
  font-weight: 400;
  letter-spacing: 0;
}

.contact-form {
  width: 350px;
  margin: 0;
}

.contact-form input,
.contact-form select,
.contact-form textarea {
  display: block;
  width: 350px;
  border: 3px solid #000;
  border-radius: 0;
  background: #fff;
  color: #000;
  font-family: inherit;
  font-size: 15px;
  line-height: 1.4;
  font-weight: 400;
  letter-spacing: 0;
  outline: 0;
  box-shadow: none;
  transition: border-color 220ms ease,
              box-shadow 220ms ease,
              transform 220ms cubic-bezier(.22, 1, .36, 1);
}

.contact-form input {
  height: 60px;
  margin: 0 0 12px;
  padding: 3px 3px 3px 12px;
}

.contact-form input::placeholder,
.contact-form textarea::placeholder {
  color: #000;
  opacity: 1;
}

.contact-form input:hover,
.contact-form select:hover,
.contact-form textarea:hover {
  border-color: #000;
}

.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus {
  border-color: #000;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, .18);
}

.contact-select-wrap {
  position: relative;
  width: 350px;
  height: 60px;
  margin: 0 0 13px;
}

.contact-select-wrap::after {
  content: "";
  position: absolute;
  top: 23px;
  right: 18px;
  width: 9px;
  height: 9px;
  border-right: 1.5px solid #000;
  border-bottom: 1.5px solid #000;
  transform: rotate(45deg);
  transform-origin: center;
  pointer-events: none;
  transition: transform 220ms cubic-bezier(.22, 1, .36, 1);
}

.contact-select-wrap:focus-within::after {
  transform: translateY(3px) rotate(225deg);
}

.contact-form select {
  appearance: none;
  -webkit-appearance: none;
  height: 60px;
  margin: 0;
  padding: 0 48px 0 12px;
  cursor: pointer;
}

.contact-form textarea {
  width: 350px;
  min-height: 150px;
  height: 150px;
  margin: 0 0 20px;
  padding: 3px 10px 3px 16px;
  resize: vertical;
  line-height: 1.4;
}

/* Exact original geometry (130 × 46), with a very light modern hover motion. */
.contact-submit {
  position: relative;
  isolation: isolate;
  width: 130px;
  height: 46px;
  margin: 0 0 18px;
  border: 0;
  border-radius: 0;
  background: #000;
  color: #fff;
  font-family: inherit;
  font-size: 16px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: 0;
  cursor: pointer;
  overflow: hidden;
  transition: transform 230ms cubic-bezier(.22, 1, .36, 1),
              background-color 230ms ease,
              box-shadow 230ms ease;
}

.contact-submit::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 10px;
  width: 42px;
  height: 1px;
  background: currentColor;
  transform: translateX(-50%) scaleX(0);
  transform-origin: center;
  transition: transform 260ms cubic-bezier(.22, 1, .36, 1);
}

.contact-submit:hover,
.contact-submit:focus-visible {
  transform: translateY(-1px);
  background: rgba(0, 0, 0, .78);
  box-shadow: 0 7px 16px rgba(0, 0, 0, .10);
}

.contact-submit:hover::after,
.contact-submit:focus-visible::after {
  transform: translateX(-50%) scaleX(1);
}

.contact-submit:active {
  transform: translateY(0);
  box-shadow: none;
}

.contact-submit:focus-visible {
  outline: 2px solid #000;
  outline-offset: 4px;
}

/* Wix keeps its success message in the grid but hides it until submission.
   Keeping the space preserves the original footer position. */
.contact-status {
  width: 349px;
  min-height: 21px;
  margin: 0 0 33px;
  color: #000;
  font-size: 15px;
  line-height: 1.4;
  font-weight: 400;
}

.contact-status:empty {
  visibility: hidden;
}

.contact-footer {
  padding-top: 0;
  padding-bottom: 29px;
}

.honeypot {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

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

/* Contact page joins the same seamless left/right navigation motion used by
   the rest of the site. */
.page-leaving .contact,
.page-entering .contact {
  will-change: transform, opacity;
}

body[data-page-transition="forward"].page-leaving .contact {
  animation: page-out-left var(--page-motion-duration) var(--page-motion-ease) both;
}

body[data-page-transition="back"].page-leaving .contact {
  animation: page-out-right var(--page-motion-duration) var(--page-motion-ease) both;
}

body[data-page-transition="forward"].page-entering .contact {
  animation: page-in-right 520ms var(--page-motion-ease) both;
}

body[data-page-transition="back"].page-entering .contact {
  animation: page-in-left 520ms var(--page-motion-ease) both;
}

body.page-entering .contact-form > input,
body.page-entering .contact-form > .contact-select-wrap,
body.page-entering .contact-form > textarea,
body.page-entering .contact-form > .contact-submit {
  animation: contact-field-reveal 430ms var(--page-motion-ease) both;
}

body.page-entering .contact-form > input:nth-of-type(1) { animation-delay: 35ms; }
body.page-entering .contact-form > input:nth-of-type(2) { animation-delay: 65ms; }
body.page-entering .contact-form > input:nth-of-type(3) { animation-delay: 95ms; }
body.page-entering .contact-form > .contact-select-wrap { animation-delay: 125ms; }
body.page-entering .contact-form > textarea { animation-delay: 155ms; }
body.page-entering .contact-form > .contact-submit { animation-delay: 185ms; }

@keyframes contact-field-reveal {
  from { opacity: .45; transform: translateY(7px); }
  to   { opacity: 1; transform: translateY(0); }
}

@media (max-width: 1020px) {
  .contact {
    width: 100%;
    max-width: 980px;
  }

  .contact-intro {
    width: calc(100% - 30px);
    margin-left: 15px;
    white-space: normal;
  }

  .contact-form-block {
    margin-left: clamp(24px, calc(50% - 175px), 307px);
  }
}

@media (max-width: 720px) {
  .contact {
    margin-top: 28px;
    padding: 0 24px 26px;
  }

  .contact-intro {
    width: 100%;
    margin: 0 0 58px;
    font-size: 15px;
    line-height: 1.7;
  }

  .contact-form-block,
  .contact-form,
  .contact-form input,
  .contact-form select,
  .contact-form textarea,
  .contact-select-wrap {
    width: 100%;
  }

  .contact-form-block {
    margin-left: 0;
  }

  .contact-form-block h1 {
    width: 100%;
    margin-bottom: 25px;
    font-size: 28px;
  }

  .contact-submit {
    width: 130px;
    height: 46px;
  }

  .contact-status {
    width: 100%;
  }

  .contact-footer {
    padding-top: 20px;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.page-entering .contact-form > input,
  body.page-entering .contact-form > .contact-select-wrap,
  body.page-entering .contact-form > textarea,
  body.page-entering .contact-form > .contact-submit {
    animation: none !important;
  }
}
/* END CONTACT PAGE */



/* =========================
   Disclaimer / legal page
   ========================= */
.legal-page .header-inner {
  height: 199px;
}

.legal-content {
  width: 894px;
  min-height: 445px;
  margin: 35px auto 20px;
  color: #414141;
}

.legal-content h1 {
  margin: 0 0 33px;
  color: #414141;
  font-size: 30px;
  line-height: 1.5;
  font-weight: 400;
  letter-spacing: 0;
}

.legal-copy {
  font-size: 15px;
  line-height: 1.5;
  font-weight: 400;
  letter-spacing: 0;
}

.legal-copy p {
  margin: 0 0 22.5px;
}

.legal-owner {
  margin-bottom: 22.5px;
}

.legal-owner p {
  margin-bottom: 0;
}

.legal-copy a {
  color: inherit;
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
  transition: color 180ms ease, text-underline-offset 180ms ease;
}

.legal-copy a:hover,
.legal-copy a:focus-visible {
  color: #000;
  text-underline-offset: 4px;
}

.legal-copy a:focus-visible {
  outline: 1px solid currentColor;
  outline-offset: 3px;
}

.legal-footer {
  padding-top: 24px;
  padding-bottom: 24px;
}

/* Legal pages use the same quiet page motion as the main sections, but no
   navigation marker is shown because none of the five main tabs is active. */
.page-leaving .legal-content,
.page-entering .legal-content {
  will-change: transform, opacity;
}

body[data-page-transition="forward"].page-leaving .legal-content {
  animation: page-out-left var(--page-motion-duration) var(--page-motion-ease) both;
}

body[data-page-transition="back"].page-leaving .legal-content {
  animation: page-out-right var(--page-motion-duration) var(--page-motion-ease) both;
}

body[data-page-transition="forward"].page-entering .legal-content {
  animation: page-in-right 520ms var(--page-motion-ease) both;
}

body[data-page-transition="back"].page-entering .legal-content {
  animation: page-in-left 520ms var(--page-motion-ease) both;
}

body.page-entering .legal-copy > * {
  animation: legal-line-reveal 430ms var(--page-motion-ease) both;
}

body.page-entering .legal-copy > *:nth-child(1) { animation-delay: 35ms; }
body.page-entering .legal-copy > *:nth-child(2) { animation-delay: 75ms; }
body.page-entering .legal-copy > *:nth-child(3) { animation-delay: 115ms; }
body.page-entering .legal-copy > *:nth-child(4) { animation-delay: 155ms; }

@keyframes legal-line-reveal {
  from { opacity: .5; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}

@media (max-width: 1020px) {
  .legal-content {
    width: calc(100% - 86px);
    max-width: 894px;
  }
}

@media (max-width: 720px) {
  .legal-page .header-inner {
    height: auto;
  }

  .legal-content {
    width: calc(100% - 48px);
    min-height: 0;
    margin-top: 24px;
    margin-bottom: 14px;
  }

  .legal-content h1 {
    margin-bottom: 24px;
    font-size: 28px;
  }

  .legal-copy {
    font-size: 14px;
    line-height: 1.6;
  }

  .legal-copy p {
    margin-bottom: 20px;
  }

  .legal-owner {
    margin-bottom: 20px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-leaving .legal-content,
  .page-entering .legal-content,
  .page-entering .legal-copy > * {
    animation: none !important;
  }
}

/* =========================
   Privacy policy page
   ========================= */
.privacy-content {
  width: 980px;
  min-height: 705px;
  margin-top: 35px;
  margin-bottom: 18px;
}

.privacy-copy {
  font-size: 15px;
  line-height: 1.5;
}

.privacy-copy > p:first-child {
  margin-bottom: 26px;
}

.privacy-section {
  margin: 0 0 24px;
}

.privacy-section h2 {
  margin: 0;
  color: #414141;
  font-size: 18px;
  line-height: 1.5;
  font-weight: 700;
  letter-spacing: 0;
}

.privacy-section p {
  margin: 0;
  text-align: justify;
  text-align-last: left;
  text-justify: inter-word;
  hyphens: auto;
  -webkit-hyphens: auto;
  hyphenate-limit-chars: 7 3 3;
  hyphenate-limit-lines: 1;
  letter-spacing: .001em;
  word-spacing: -.012em;
  font-kerning: normal;
  font-variant-ligatures: common-ligatures;
  text-rendering: optimizeLegibility;
}

.privacy-section p + p {
  margin-top: 0;
}

.privacy-footer {
  padding-top: 20px;
}

body.page-entering .privacy-section {
  animation: legal-line-reveal 430ms var(--page-motion-ease) both;
}

body.page-entering .privacy-section:nth-of-type(1) { animation-delay: 65ms; }
body.page-entering .privacy-section:nth-of-type(2) { animation-delay: 100ms; }
body.page-entering .privacy-section:nth-of-type(3) { animation-delay: 135ms; }
body.page-entering .privacy-section:nth-of-type(4) { animation-delay: 170ms; }

@media (max-width: 1020px) {
  .privacy-content {
    width: calc(100% - 86px);
    max-width: 980px;
  }
}

@media (max-width: 720px) {
  .privacy-content {
    width: calc(100% - 48px);
    min-height: 0;
  }

  .privacy-copy {
    font-size: 14px;
    line-height: 1.6;
  }

  .privacy-copy > p:first-child,
  .privacy-section {
    margin-bottom: 22px;
  }

  .privacy-section h2 {
    font-size: 17px;
  }

  .privacy-section p {
    text-align: left;
    hyphens: none;
    -webkit-hyphens: none;
    word-spacing: normal;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.page-entering .privacy-section {
    animation: none !important;
  }
}

/* =========================
   Cookie policy page
   ========================= */
.cookie-content {
  width: 1008px;
  min-height: 1180px;
  margin-top: 35px;
  margin-bottom: 18px;
}

.cookie-copy {
  font-size: 15px;
  line-height: 1.5;
}

.cookie-copy > p {
  margin: 0 0 26px;
}

.cookie-section {
  margin: 0 0 26px;
}

.cookie-section h2 {
  margin: 0 0 1px;
  color: #414141;
  font-size: 16px;
  line-height: 1.5;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: lowercase;
}

.cookie-section p {
  margin: 0 0 13px;
  text-align: left;
}

.cookie-section ul {
  margin: 0;
  padding-left: 30px;
  list-style: disc outside;
}

.cookie-section li {
  margin: 0;
  padding-left: 0;
  line-height: 1.5;
}

.cookie-section strong {
  font-weight: 700;
}

.cookie-current h2,
.cookie-third-party-title {
  font-size: 18px;
}

.cookie-table-wrap {
  width: 100%;
  margin: 8px 0 13px;
  overflow-x: auto;
  border-radius: 6px;
}

.cookie-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  font-size: 14px;
  line-height: 1.45;
}

.cookie-table th,
.cookie-table td {
  padding: 9px 12px;
  text-align: left;
  vertical-align: top;
}

.cookie-table th {
  background: #dfdddd;
  color: #fff;
  font-size: 15px;
  line-height: 1.25;
  font-weight: 400;
}

.cookie-table th:nth-child(1) { width: 24%; }
.cookie-table th:nth-child(2) { width: 16%; }
.cookie-table th:nth-child(3) { width: 24%; }
.cookie-table th:nth-child(4) { width: 36%; }

.cookie-table tbody tr {
  border-bottom: 1px solid rgba(65, 65, 65, .12);
}

.cookie-table td {
  background: rgba(255, 255, 255, .42);
}

.cookie-table code {
  font-family: 'Montserrat', Arial, Helvetica, sans-serif;
  font-size: .92em;
  overflow-wrap: anywhere;
}

.cookie-note {
  font-size: 13px;
  color: #5b5b5b;
}

.cookie-browser-links {
  margin-top: -3px !important;
}

.cookie-browser-links a {
  text-decoration-thickness: 1px;
}

.cookie-closing {
  margin-top: 5px !important;
  margin-bottom: 0 !important;
}

.cookie-footer {
  padding-top: 20px;
}

body.page-entering .cookie-section {
  animation: legal-line-reveal 430ms var(--page-motion-ease) both;
}

body.page-entering .cookie-section:nth-of-type(1) { animation-delay: 55ms; }
body.page-entering .cookie-section:nth-of-type(2) { animation-delay: 80ms; }
body.page-entering .cookie-section:nth-of-type(3) { animation-delay: 105ms; }
body.page-entering .cookie-section:nth-of-type(4) { animation-delay: 130ms; }
body.page-entering .cookie-section:nth-of-type(5) { animation-delay: 155ms; }
body.page-entering .cookie-section:nth-of-type(6) { animation-delay: 180ms; }

@media (max-width: 1100px) {
  .cookie-content {
    width: calc(100% - 86px);
    max-width: 1008px;
  }
}

@media (max-width: 720px) {
  .cookie-content {
    width: calc(100% - 48px);
    min-height: 0;
  }

  .cookie-copy {
    font-size: 14px;
    line-height: 1.6;
  }

  .cookie-copy > p,
  .cookie-section {
    margin-bottom: 22px;
  }

  .cookie-section h2 {
    font-size: 16px;
  }

  .cookie-current h2 {
    font-size: 17px;
  }

  .cookie-table {
    min-width: 700px;
    font-size: 13px;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.page-entering .cookie-section {
    animation: none !important;
  }
}


/* =========================
   French-language refinements
   ========================= */
/* French navigation labels are longer; widen the same navigation rail without
   changing the header or logo geometry. */
.fr-page .main-nav {
  left: 76px;
  width: 828px;
}

/* Preserve the original one-line title treatment on the French detail page. */
.fr-page.what-you-get-page .detail-row:nth-child(1) .detail-copy h1 {
  font-size: 23px;
  letter-spacing: -.024em;
}
.fr-page.what-you-get-page .detail-row:nth-child(3) .detail-copy h2,
.fr-page.what-you-get-page .detail-row:nth-child(5) .detail-copy h2 {
  font-size: 24px;
  letter-spacing: -.018em;
}

/* A few French home headings are intrinsically longer than their English
   equivalents; this keeps their visual weight consistent inside the same boxes. */
.fr-page .proofreading h2,
.fr-page .communication h2 {
  font-size: 27px;
  line-height: 1.05;
}
.fr-page .language-lessons h2 {
  font-size: 29px;
}

@media (max-width: 1020px) {
  .fr-page .main-nav {
    left: 50%;
    width: min(828px, calc(100vw - 30px));
    transform: translateX(-50%);
  }
  .fr-page.what-you-get-page .detail-row:nth-child(1) .detail-copy h1,
  .fr-page.what-you-get-page .detail-row:nth-child(3) .detail-copy h2,
  .fr-page.what-you-get-page .detail-row:nth-child(5) .detail-copy h2 {
    font-size: clamp(16px, 2.35vw, 24px);
  }
}

@media (max-width: 720px) {
  .fr-page .main-nav {
    top: 170px;
    width: calc(100vw - 16px);
    gap: 0 1px;
  }
  .fr-page .main-nav a {
    font-size: 13px;
    padding-inline: 6px;
  }
  .fr-page.what-you-get-page .detail-row:nth-child(1) .detail-copy h1,
  .fr-page.what-you-get-page .detail-row:nth-child(3) .detail-copy h2,
  .fr-page.what-you-get-page .detail-row:nth-child(5) .detail-copy h2 {
    font-size: clamp(12px, 3.3vw, 18px);
  }
}

@media (max-width: 440px) {
  .fr-page .main-nav a {
    font-size: 11.5px;
    padding-inline: 4px;
  }
  .fr-page.what-you-get-page .detail-copy h1,
  .fr-page.what-you-get-page .detail-copy h2,
  .fr-page.what-you-get-page .detail-row:nth-child(1) .detail-copy h1,
  .fr-page.what-you-get-page .detail-row:nth-child(3) .detail-copy h2,
  .fr-page.what-you-get-page .detail-row:nth-child(5) .detail-copy h2 {
    font-size: clamp(10px, 2.9vw, 13px);
  }
}


/* ===== Balanced ragged-right prose on interior/legal pages ===== */
/*
   Interior body copy is left-aligned at normal word and letter spacing. The
   companion script chooses line breaks that keep the main lines in a paragraph
   roughly similar in visual length. The homepage is intentionally excluded and
   retains the original Wix inter-word justification.
*/
.detail-copy p,
.rate-copy p,
.contact-intro,
.legal-copy > p,
.legal-owner p,
.privacy-copy > p,
.privacy-section p,
.cookie-copy > p,
.cookie-section p,
.cookie-section li,
.cookie-note,
.cookie-closing,
.guarantee p {
  text-align: left;
  text-align-last: auto;
  text-justify: auto;
  hyphens: none !important;
  -webkit-hyphens: none !important;
  word-break: normal;
  overflow-wrap: normal;
  text-wrap: wrap;
  letter-spacing: 0;
  word-spacing: normal;
  font-kerning: normal;
  font-variant-ligatures: common-ligatures;
  text-rendering: optimizeLegibility;
}

/* Contact metadata with deliberate <br> elements is left exactly as authored. */
.legal-owner p:has(br) {
  text-align: left;
  letter-spacing: 0;
  word-spacing: normal;
}



/* Homepage copy remains on the original fixed-width Wix text rails. */
.service-copy p {
  max-width: 100%;
}
