/* FullExam landing - hand-written CSS (replaces Elementor/WordPress CSS). */

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/fonts/inter-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Roboto";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/fonts/roboto-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --blue: #3137ff;
  --ink: #222;
  --dark: #393939;
  --font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-ui: "Roboto", system-ui, -apple-system, "Segoe UI", sans-serif;
  --header-h: 90px;
  --wide: 1366px;
  --boxed: 1140px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: var(--header-h); -webkit-text-size-adjust: 100%; }
body { margin: 0; background: #fff; color: #000; font-family: var(--font-body); font-size: 16px; line-height: 1.5; }
img { max-width: 100%; height: auto; vertical-align: middle; }
h1, h2, h3, p, ul { margin: 0; padding: 0; }
ul { list-style: none; }
a { color: inherit; }
.accent { color: var(--blue); }

/* ---------- buttons ---------- */
.btn { display: inline-block; font-family: var(--font-ui); text-decoration: none; text-align: center; border: 2px solid #fff; cursor: pointer; transition: background-color .3s, color .3s; }
.btn--light { background: #fff; color: #000; font-size: 15px; font-weight: 500; line-height: 15px; padding: 12px 24px; border-radius: 25px; }
.btn--light:hover, .btn--light:focus-visible { background: #e9eaff; }
.btn--ghost { background: transparent; color: #fff; font-size: 16px; line-height: 16px; padding: 20px 40px; border-radius: 150px; }
.btn--ghost:hover, .btn--ghost:focus-visible { background: #fff; color: var(--blue); }
.btn--primary { background: var(--blue); color: #fff; font-size: 16px; font-weight: 800; line-height: 16px; padding: 20px 40px; border-radius: 150px; }
.btn--primary:hover, .btn--primary:focus-visible { background: #fff; color: var(--blue); border-color: var(--blue); }

/* ---------- header ---------- */
.site-header { position: sticky; top: 0; z-index: 100; height: var(--header-h); display: flex; align-items: center; background: var(--img-header) 50% 0 / cover; color: #fff; }
.site-header__logo { flex: none; margin-left: 25px; width: 180px; }
.site-header__logo img { display: block; width: 180px; height: auto; }
.site-header__nav { flex: 0 1 861px; margin-left: 35px; }
.site-header__nav ul { display: flex; justify-content: center; gap: 50px; }
.site-header__nav a { font-family: var(--font-ui); font-size: 16px; line-height: 24px; text-decoration: none; color: #fff; transition: opacity .2s; }
.site-header__nav a:hover { opacity: .75; }
.site-header__nav a:focus-visible { outline: 2px solid #fff; outline-offset: 4px; border-radius: 2px; }
.site-header__login { margin-left: auto; margin-right: 30px; }

/* ---------- hero ---------- */
.hero { min-height: 705px; background: var(--img-hero) 50% 50% / cover; padding: 65px 10px; color: #fff; }
.hero__inner { max-width: var(--wide); margin: 0 auto; padding-left: 10px; }
.hero h1 { font-weight: 400; margin: 0; }
.hero__eyebrow { display: block; margin-left: 223px; font-size: 51px; line-height: 51px; text-shadow: 0 0 10px rgba(0, 0, 0, .3); }
.hero__title { display: block; margin: 47px 0 0 220px; max-width: 654px; font-size: 107px; line-height: 107px; font-weight: 600; }
.hero__lead { margin: 76px 0 0 226px; max-width: 450px; font-size: 16px; line-height: 24px; }
.hero .btn { margin: 79px 0 0 221px; }

/* ---------- generic ---------- */
.prose p { margin: 0 0 14.4px; }
.prose p:last-child { margin-bottom: 0; }
.prose--justify { text-align: justify; }
.h-center { text-align: center; font-weight: 400; font-size: 43px; line-height: 43px; margin: 0; }
.h-center b { font-weight: 700; }
.h-lg { font-size: 42px; line-height: 42px; font-weight: 600; }
.h-md { font-size: 32px; line-height: 32px; font-weight: 600; margin-bottom: 20px; }

/* ---------- intro ---------- */
.intro { max-width: var(--wide); margin: 0 auto; padding: 159px 20px 20px 30px; display: grid; grid-template-columns: minmax(0, 592fr) minmax(0, 707fr); column-gap: 17px; align-items: start; }
.intro__text { padding-top: 18px; color: var(--ink); }
.intro__text .h-lg { color: #000; margin-bottom: 20px; }
.intro__text .prose { font-size: 18px; line-height: 27px; }
.intro__img { width: 100%; max-width: 800px; justify-self: center; }

/* ---------- features ---------- */
.features { background: #fff var(--img-pattern) top right; background-attachment: fixed; }
.features > .h-center { font-family: var(--font-ui); padding: 127px 10px 10px; }
.features__grid { max-width: var(--boxed); margin: 0 auto; padding: 20px 70px 21px 60px; display: grid; grid-template-columns: 1fr 1fr; gap: 79px 130px; align-items: start; }
.card { background: #fff; border-radius: 30px; box-shadow: 0 0 13px -8px #636363; padding: 30px 40px 70px; color: var(--ink); display: flex; flex-direction: column; gap: 20px; }
.card img { width: 50px; height: 50px; }
.card h3 { font-size: 26px; line-height: 39px; font-weight: 600; letter-spacing: -.2px; }
.card .prose { font-size: 16px; line-height: 24px; }
.card:nth-child(even) h3 { line-height: 30px; }
.card:nth-child(2) .prose { line-height: 19px; }

/* ---------- why ---------- */
.why > .h-center { font-family: var(--font-body); padding: 80px 10px 110px; }
.why__body { max-width: var(--boxed); margin: 0 auto; position: relative; left: -9px; display: grid; grid-template-columns: minmax(0, 509px) 540px; column-gap: 90px; align-items: start; padding-bottom: 89px; }
.why__list { display: flex; flex-direction: column; gap: 55px; margin-top: -3px; }
.why__list li { position: relative; display: flex; gap: 25px; align-items: flex-start; }
.why__list li:not(:last-child)::after { content: ""; position: absolute; left: 19px; top: 45px; height: calc(100% + 10px); border-left: 1px dotted #000; }
.why__list li > img { position: relative; z-index: 1; flex: none; width: 45px; height: 45px; }
.why__list .h-md { min-height: 64px; margin-top: 13px; }
.why__list .prose { font-size: 16px; line-height: 24px; }
.why__wheel { width: 540px; margin-top: 45px; }

/* Entrance animations (js/animate.js): Elementor's keyframes, 1.25 s duration, 300 ms delay.
   Content is hidden only when JS runs and the user has not asked for reduced motion. */
.why { overflow-x: clip; }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes fadeInLeft { from { opacity: 0; transform: translate3d(-100%, 0, 0); } to { opacity: 1; transform: none; } }
@keyframes fadeInRight { from { opacity: 0; transform: translate3d(100%, 0, 0); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: no-preference) {
  .js [data-animate]:not(.is-animated) { visibility: hidden; }
  .js [data-animate].is-animated { animation: 1.25s ease .3s both; }
  .js [data-animate="fadeIn"].is-animated { animation-name: fadeIn; }
  .js [data-animate="fadeInLeft"].is-animated { animation-name: fadeInLeft; }
  .js [data-animate="fadeInRight"].is-animated { animation-name: fadeInRight; }
}

/* ---------- services ---------- */
.services { padding: 138px 10px 142px; }
.services > .h-center { font-family: var(--font-body); margin-bottom: 30px; }
.services__intro { max-width: var(--boxed); margin: 0 auto; font-size: 18px; line-height: 27px; }

/* ---------- showcase ---------- */
.showcase { max-width: var(--wide); margin: 0 auto; padding: 90px 20px 20px; display: grid; grid-template-columns: var(--cols, 1fr 1fr); column-gap: 20px; align-items: start; }
.showcase--1 { --cols: minmax(0, 545fr) minmax(0, 761fr); --pw: 474px; }
.showcase--2 { --cols: minmax(0, 800fr) minmax(0, 504fr); --pw: 489px; }
.showcase--3 { --cols: minmax(0, 519fr) minmax(0, 787fr); --pw: 519px; }
.showcase--flip img { order: -1; }
.showcase .prose { max-width: var(--pw, none); }
.showcase .h-lg { font-size: 43px; line-height: 43px; margin-bottom: 20px; }
.showcase .prose { font-size: 18px; line-height: 27px; }
.showcase img { width: 100%; max-width: 800px; }
.showcase--flip .showcase__text { padding-left: 1px; }

/* ---------- cta ---------- */
.cta { padding: 130px 10px 155px; }
.cta__card { max-width: var(--boxed); margin: 0 auto; padding: 105px 10px; border-radius: 20px; box-shadow: 0 0 13px -6px rgba(0, 0, 0, .5); background: #fff var(--img-pattern); display: flex; flex-direction: column; align-items: center; text-align: center; gap: 20px; color: var(--ink); }
.cta__card h2 { font-size: 40px; line-height: 40px; font-weight: 700; }
.cta__card p { margin-bottom: 14px; }

/* ---------- footer ---------- */
.site-footer { background: var(--dark); color: #fff; padding: 10px 10px 0; }
.site-footer__logo { display: block; text-align: center; height: 47px; }
.site-footer__logo img { width: 148px; height: auto; }
.site-footer__offices { max-width: 1121px; margin: 10px auto 0; display: grid; grid-template-columns: repeat(4, 1fr); column-gap: 45px; padding: 0 0 30px 0; }
.office h2 { font-size: 20px; line-height: 20px; font-weight: 400; margin: 20px 0 20px; }
.office li { display: flex; align-items: flex-start; font-size: 16px; line-height: 24px; }
.office li svg, .site-footer__mail svg { flex: none; width: 16px; height: 16px; margin: 4px 15px 0 0; fill: #fff; }
.office li span { white-space: pre-line; }
.site-footer__mail { display: flex; justify-content: center; align-items: center; height: 24px; margin: 0; padding-bottom: 0; }
.site-footer__mail svg { width: 22px; height: 22px; fill: none; margin: 0 16px 0 0; }
.site-footer::after { content: ""; display: block; height: 90px; }

/* ---------- language switcher (flags, fixed bottom-right as Weglot did) ---------- */
.lang-switcher { position: fixed; right: 40px; bottom: 5px; z-index: 9999; display: flex; gap: 20px; padding: 4px 20px 3px 0; }
.lang-switcher__item { display: block; line-height: 0; opacity: .85; }
.lang-switcher__item img { width: 27px; height: 20px; }
.lang-switcher__item:hover, .lang-switcher__item.is-current { opacity: 1; }

/* ---------- form page ---------- */
.form-intro { max-width: var(--boxed); margin: 0 auto; padding: 78px 103px 24px 0; font-size: 18px; line-height: 27px; font-weight: 500; }
.form-intro p { margin: 0; }
.form-section { max-width: var(--boxed); margin: 0 auto; padding: 106px 10px 130px; }
.form-section__title { font-size: 36px; line-height: 36px; font-weight: 600; }
.form-section__title::after { content: ""; display: block; width: 112px; height: 3px; background: var(--blue); margin-top: 8px; }
.contact-form { max-width: 1010px; margin-top: 29px; display: flex; flex-direction: column; gap: 20px; }
.contact-form__row { display: grid; grid-template-columns: minmax(0, 601fr) minmax(0, 397fr); gap: 12px; }
.contact-form input, .contact-form textarea { width: 100%; font: inherit; font-size: 15px; color: #000; background: #fff; border: 1px solid #949494; border-radius: 23px; padding: 6px 16px; height: 50px; }
.contact-form textarea { height: 158px; resize: vertical; }
.contact-form ::placeholder { color: #666; opacity: 1; }
.contact-form input:focus-visible, .contact-form textarea:focus-visible { outline: 2px solid var(--blue); outline-offset: 1px; }
.contact-form input:user-invalid { border-color: #c0392b; }
.contact-form__actions .btn { width: 192px; height: 47px; padding: 0; font-weight: 500; border-radius: 28px; margin-left: 2px; }
.contact-form__actions .btn[disabled] { opacity: .6; cursor: progress; }
.contact-form__status { margin: 0; font-size: 16px; }
.contact-form__status.is-success { color: #1e7e34; }
.contact-form__status.is-error { color: #c0392b; }

/* ---------- 404 (hello-elementor look) ---------- */
.notfound { max-width: var(--boxed); margin: 0 auto; padding: 10px 0 40px; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; color: #333; }
.notfound h1 { font-size: 40px; line-height: 1.2; font-weight: 500; margin-bottom: 20px; }

/* ---------- tablet ---------- */
@media (max-width: 1024px) {
  .hero { padding: 62px 10px; }
  .hero__title { font-size: 86px; line-height: 86px; margin: 61px 0 0 33px; }
  .hero__eyebrow { margin-left: 31px; }
  .hero__lead { margin: 62px 0 0 41px; max-width: 687px; }
  .hero .btn { margin: 76px 0 0 26px; }
  .features__grid { column-gap: 20px; padding: 20px; }
  /* Elementor footer: logo row 68 px, office cards pad 10 with 26 px gaps, mail row 10 px below, 80 px tail */
  .site-footer__logo { height: 48px; }
  .site-footer__offices { max-width: none; column-gap: 26px; padding: 10px 0; }
  .office { padding: 10px; }
  .office h2 { margin: 0 0 20px; }
  .site-footer__mail { margin-top: 10px; }
  .site-footer::after { height: 80px; }
  /* Elementor card geometry (<=1024): title/body widgets are a % of (card - 20 px) minus their margins; bottom space differs per card */
  /* showcase text widgets are 87% / 97% / 100% of their column in Elementor tablet and mobile */
  .showcase { --pw: 100%; }
  .showcase--1 { --pw: 87%; }
  .showcase--2 { --pw: 97%; }
  .card { padding: 30px 10px 70px 40px; }
  .card h3 { max-width: calc(var(--tp) * (100% + 30px) - 30px); }
  .card .prose { max-width: calc(var(--bp) * (100% + 30px) - 30px - var(--br)); }
  .card:nth-child(1) { --tp: .92; --bp: .94; --br: 10px; }
  .card:nth-child(2) { --tp: .96; --bp: 1; --br: 13px; padding-bottom: 76px; }
  .card:nth-child(3) { --tp: .82236; --bp: .91; --br: 0px; padding-bottom: 67px; }
  .card:nth-child(3) h3 { margin-bottom: 15px; }
  .card:nth-child(4) { --tp: .87; --bp: .93; --br: 0px; padding-bottom: 67px; }
  .form-intro { padding-left: 20px; padding-right: 20px; }
}

/* tablet header/CTA (Elementor 768-1024 geometry): logo 142x45, nav column 393/542 px, login left-aligned in its column, CTA card 500 px with 120 px margins */
@media (min-width: 768px) and (max-width: 1024px) {
  .site-header__logo { margin-left: 20px; width: 142px; }
  .site-header__logo img { width: 142px; }
  .site-header__nav { flex: none; width: 393px; margin-left: 9px; }
  .site-header__nav ul { justify-content: flex-start; gap: 29px; }
  .site-header__login { margin: 0 0 0 20px; flex: none; }
  .cta { padding: 250px 10px 275px; }
  .card { width: 80%; margin-left: 50px; }
  .intro { padding-bottom: 45px; }
  .showcase .prose p:last-child { margin-bottom: 14.4px; }
  .intro__img { margin-top: 42px; }
  .why__body { left: 0; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 40px; padding: 0 20px 44px; }
  .why__list { gap: 57px; padding-bottom: 40px; }
  .why__list li { gap: 6px; padding-right: 50px; }
  .why__wheel { width: 100%; margin-top: 202px; }
  .card img { width: calc((100% + 30px) * .14); height: auto; }
  .cta__card { max-width: 500px; }
  .form-intro { padding-right: 67px; }
  .form-section { padding-bottom: 142px; }
}
@media (min-width: 900px) and (max-width: 1024px) {
  .site-header__nav { width: 542px; margin-left: 55px; }
}

/* ---------- mobile ---------- */
@media (max-width: 767px) {
  .site-header__logo { margin-left: 15px; width: 175px; }
  .site-header__logo img { width: 175px; }
  .site-header__nav { display: none; }
  .site-header__login { margin-right: 42px; }

  .hero { padding: 20px 10px; }
  .hero__inner { padding-left: 10px; }
  .hero__eyebrow, .hero__title, .hero__lead, .hero .btn { margin-left: 0; }
  .hero__eyebrow { font-size: 22px; line-height: 22px; }
  .hero__title { font-size: 35px; line-height: 35px; margin-top: 20px; }
  .hero__lead { margin-top: 20px; max-width: 234px; font-size: 15px; line-height: 22.5px; }
  .hero .btn { margin-top: 34px; }

  .intro { grid-template-columns: minmax(0, 1fr); padding: 177px 30px 20px; }
  .intro__text { padding-top: 0; }
  .intro__text .prose { font-size: 17px; line-height: 25.5px; }
  .card h3, .card:nth-child(even) h3 { line-height: 26px; }
  .intro__img { margin: 183px -10px 0; width: calc(100% + 20px); max-width: none; }

  .features > .h-center { padding-top: 127px; }
  .features__grid { grid-template-columns: minmax(0, 1fr); padding: 20px; row-gap: 79px; }
  .card img { width: 48px; height: 48px; }

  .why > .h-center { padding-top: 80px; }
  .why__body { grid-template-columns: minmax(0, 1fr); left: 0; padding: 0 70px 20px 7px; row-gap: 0; }
  .why__list { gap: 57px; }
  .why__list li:nth-child(2) { margin-top: 5px; }
  .why__list li { gap: 19px; }
  /* full width minus 20px each side, as Elementor: cancels .why__body's 7px/70px padding */
  .why__wheel { margin-left: 13px; width: calc(100% + 37px); max-width: none; }
  .why__wheel { margin-top: 90px; }

  .services { padding-top: 138px; }
  .services__intro { padding: 0; }

  .showcase, .showcase--flip { grid-template-columns: minmax(0, 1fr); row-gap: 105px; padding: 90px 20px 20px; --cols: minmax(0, 1fr); }
  /* flipped block is image-first (gap 90, p margin below) */
  .showcase--flip { row-gap: 90px; padding-bottom: 34px; }

  .cta { padding-top: 52px; }
  .cta__card { padding: 105px 10px; }

  .site-footer__offices { grid-template-columns: minmax(0, 1fr); row-gap: 26px; padding: 10px; }
  .site-footer__logo img { width: 150px; }
  .office { padding: 10px 0; }

  .form-intro { padding: 78px 43px 24px 10px; }
  .form-section { padding: 96px 10px 120px; }
  .contact-form__row { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .contact-form__actions .btn { width: 141px; margin-left: 0; }
}

