/* Focus presentation for the existing English and Hungarian site pages.
   Loaded after the legacy layout and shared Focus styles. */
body.focus-site:not(.focus-home) {
  --sub-ink: #171817;
  --sub-muted: #666b68;
  --sub-rule: #d9dad4;
  --sub-surface: #efefe9;
  color: var(--sub-ink);
  background: #ffffff;
}

body.focus-site:not(.focus-home) main { min-height: 60vh; }
body.focus-site:not(.focus-home) .section {
  max-width: 1396px;
  margin: 0 auto;
  padding: clamp(64px, 7.5vw, 108px) 54px;
}
body.focus-site:not(.focus-home) .page-hero {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 440px;
  max-width: 1396px;
  margin: 0 auto;
  padding: 90px 54px 82px;
  text-align: center;
  color: var(--sub-ink);
  background: transparent;
}
body.focus-site:not(.focus-home) .page-hero h1 {
  max-width: 1060px;
  margin: 0 auto 25px;
  color: var(--sub-ink);
  font-size: clamp(42px, 5.5vw, 76px);
  font-weight: 520;
  line-height: 1.08;
  letter-spacing: -.045em;
  text-wrap: balance;
}
body.focus-site:not(.focus-home) .page-hero p:not(.eyebrow) {
  max-width: 760px;
  margin: 0 auto;
  color: var(--sub-muted);
  font-size: clamp(17px, 1.6vw, 21px);
  line-height: 1.55;
  letter-spacing: -.015em;
  text-wrap: pretty;
}
body.focus-site:not(.focus-home) .eyebrow,
body.focus-site:not(.focus-home) .section-heading .eyebrow {
  color: var(--sub-muted);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: .12em;
  margin: 0 0 21px;
  text-transform: uppercase;
}
body.focus-site:not(.focus-home) .section h2,
body.focus-site:not(.focus-home) .cta h2 {
  color: var(--sub-ink);
  font-size: clamp(30px, 3.4vw, 48px);
  font-weight: 510;
  line-height: 1.14;
  letter-spacing: -.038em;
  text-wrap: balance;
  margin: 0 0 22px;
}
body.focus-site:not(.focus-home) .section-heading {
  max-width: 840px;
  margin-bottom: 48px;
}
body.focus-site:not(.focus-home) .section-heading p:not(.eyebrow),
body.focus-site:not(.focus-home) .service-continuation p:not(.eyebrow) {
  color: var(--sub-muted);
  font-size: 18px;
  line-height: 1.7;
  max-width: 800px;
}

/* A text-first service directory; legacy illustration backgrounds are removed. */
body.focus-site:not(.focus-home) .service-overview {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding-top: 4px;
  padding-bottom: 64px;
  background: transparent;
}
body.focus-site:not(.focus-home) .service-overview a {
  display: inline-flex;
  align-items: center;
  min-height: 48px;
  padding: 13px 20px;
  border: 1px solid var(--sub-rule);
  border-radius: 99px;
  color: var(--sub-ink);
  background: transparent;
  box-shadow: none;
  transition: background .2s, border-color .2s;
}
body.focus-site:not(.focus-home) .service-overview a:hover {
  background: #fff;
  border-color: #a8ada7;
}
body.focus-site:not(.focus-home) .service-overview a:first-child {
  color: #fff;
  background: var(--sub-ink);
  border-color: var(--sub-ink);
}
body.focus-site:not(.focus-home) .service-overview strong {
  color: inherit;
  max-width: none;
  font-size: 13px;
  line-height: 1.5;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  text-shadow: none;
}
body.focus-site:not(.focus-home) .service-overview a::after,
body.focus-site:not(.focus-home) .well-engineering-detail::after,
body.focus-site:not(.focus-home) .about-intro::after,
body.focus-site:not(.focus-home) .principles-grid article::after,
body.focus-site:not(.focus-home) .training-note::after,
body.focus-site:not(.focus-home) .join-note::after,
body.focus-site:not(.focus-home) .contact-card::after,
body.focus-site:not(.focus-home) .contact-accent::after,
body.focus-site:not(.focus-home) .service-detail::after {
  display: none;
  content: none;
}
body.focus-site:not(.focus-home) :is(.well-engineering-detail, .safety-detail, .fire-detail, .environmental-detail, .cad-detail, .service-continuation, .about-intro, .about-value-band, .join-intro, .join-roles, .join-model, .join-cta, .join-form-section, .contact-layout) {
  color: var(--sub-ink);
  background: transparent;
  border-top: 1px solid var(--sub-rule);
}
body.focus-site:not(.focus-home) .well-lifecycle-grid,
body.focus-site:not(.focus-home) .support-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}
body.focus-site:not(.focus-home) .well-lifecycle-grid article,
body.focus-site:not(.focus-home) .support-grid article {
  min-height: 0;
  padding: 34px;
  border: 1px solid #e2e3dc;
  border-radius: 20px;
  background: #fcfcf8;
  box-shadow: none;
}
body.focus-site:not(.focus-home) .well-lifecycle-grid article > span,
body.focus-site:not(.focus-home) .support-grid article > span {
  display: block;
  width: auto;
  height: auto;
  padding: 0;
  margin-bottom: 23px;
  color: #838b85;
  background: transparent;
  font-size: 12px;
  font-weight: 400;
  letter-spacing: .04em;
}
body.focus-site:not(.focus-home) .well-lifecycle-grid h3,
body.focus-site:not(.focus-home) .support-grid h3 {
  margin: 0 0 19px;
  color: var(--sub-ink);
  font-size: 26px;
  font-weight: 500;
  letter-spacing: -.025em;
  line-height: 1.25;
  text-wrap: balance;
}
body.focus-site:not(.focus-home) .well-lifecycle-grid p {
  color: var(--sub-muted);
  font-size: 16px;
  line-height: 1.65;
  margin-bottom: 24px;
}
body.focus-site:not(.focus-home) .well-lifecycle-grid ul,
body.focus-site:not(.focus-home) .support-grid ul { gap: 10px; }
body.focus-site:not(.focus-home) .well-lifecycle-grid li,
body.focus-site:not(.focus-home) .support-grid li {
  color: #555d57;
  font-size: 15px;
  line-height: 1.6;
  padding-left: 18px;
}
body.focus-site:not(.focus-home) .well-lifecycle-grid li::before,
body.focus-site:not(.focus-home) .support-grid li::before {
  width: 4px;
  height: 4px;
  top: .72em;
  background: #929a92;
}
body.focus-site:not(.focus-home) .well-lifecycle-grid .service-note {
  color: #717970;
  font-size: 12px;
  line-height: 1.55;
  border-top-color: var(--sub-rule);
  margin-bottom: 0;
  font-style: normal;
}
body.focus-site:not(.focus-home) .service-continuation {
  padding-bottom: 72px;
  text-align: center;
}
body.focus-site:not(.focus-home) .service-continuation h2,
body.focus-site:not(.focus-home) .service-continuation p { margin-left: auto; margin-right: auto; }
body.focus-site:not(.focus-home) .service-continuation + .safety-detail { border-top: 0; }

/* About and partnership pages use the same calm editorial rhythm. */
body.focus-site:not(.focus-home) .about-intro > div { transform: none; }
body.focus-site:not(.focus-home) :is(.intro-grid, .join-intro, .join-model) {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(36px, 6vw, 90px);
}
body.focus-site:not(.focus-home) :is(.intro-grid, .join-intro, .join-model) p {
  color: var(--sub-muted);
  font-size: 17px;
  line-height: 1.75;
}
body.focus-site:not(.focus-home) .content-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; }
body.focus-site:not(.focus-home) .principles-grid article {
  min-height: 0;
  padding: 30px 0 16px;
  border: 0;
  border-top: 1px solid var(--sub-rule);
  border-radius: 0;
  box-shadow: none;
  background: transparent;
}
body.focus-site:not(.focus-home) .principles-grid article h2 { font-size: 27px; margin-bottom: 15px; }
body.focus-site:not(.focus-home) .principles-grid article p { font-size: 16px; line-height: 1.7; color: var(--sub-muted); }
body.focus-site:not(.focus-home) .proof-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; margin-top: 36px; }
body.focus-site:not(.focus-home) .proof-grid > div {
  padding: 25px 0 0;
  border: 0;
  border-top: 1px solid var(--sub-rule);
  border-radius: 0;
  background: transparent;
}
body.focus-site:not(.focus-home) .proof-grid strong { color: var(--sub-ink); font-size: 21px; font-weight: 500; }
body.focus-site:not(.focus-home) .proof-grid p { color: var(--sub-muted); font-size: 15px; line-height: 1.7; }
body.focus-site:not(.focus-home) .cta {
  max-width: 1288px;
  margin: 0 auto 70px;
  padding: 54px;
  color: var(--sub-ink);
  background: var(--sub-surface);
  border: 1px solid #e2e3dc;
  border-radius: 24px;
}
body.focus-site:not(.focus-home) .cta h2 { max-width: 820px; margin: 0; font-size: clamp(28px, 3vw, 40px); }
body.focus-site:not(.focus-home) .cta .button { flex-shrink: 0; }
body.focus-site:not(.focus-home) .training-note {
  max-width: 1050px;
  padding: 64px;
  margin: 0 auto 70px;
  border: 1px solid #e2e3dc;
  border-radius: 24px;
  color: var(--sub-ink);
  background: var(--sub-surface);
  box-shadow: none;
}
body.focus-site:not(.focus-home) .training-note p { color: var(--sub-muted); font-size: 18px; }
body.focus-site:not(.focus-home) .training-note .eyebrow { font-size: 11px; }
body.focus-site:not(.focus-home) .join-note {
  padding: 32px;
  border: 1px solid var(--sub-rule);
  border-radius: 20px;
  background: var(--sub-surface);
  box-shadow: none;
}
body.focus-site:not(.focus-home) .join-note strong { color: var(--sub-ink); font-size: 21px; font-weight: 500; }
body.focus-site:not(.focus-home) .role-list-intro p { color: var(--sub-muted); }
body.focus-site:not(.focus-home) .role-group {
  padding: 30px 32px 18px;
  border: 1px solid #e2e3dc;
  border-radius: 20px;
  background: #fcfcf8;
  box-shadow: none;
}
body.focus-site:not(.focus-home) .role-group h3 { color: var(--sub-ink); font-size: 24px; font-weight: 500; letter-spacing: -.025em; }
body.focus-site:not(.focus-home) .role-list li { color: #4f5750; font-size: 16px; font-weight: 400; padding-left: 20px; border-bottom-color: var(--sub-rule); }
body.focus-site:not(.focus-home) .role-list li::before { width: 4px; height: 4px; background: #929a92; }
body.focus-site:not(.focus-home) .role-notes { background: transparent; border: 0; padding: 0; }
body.focus-site:not(.focus-home) .role-requirement { border-left: 1px solid #b9bfb7; padding-left: 20px; color: var(--sub-muted); }
body.focus-site:not(.focus-home) .join-cta p { margin-bottom: 28px; color: var(--sub-muted); }

/* Existing FormSubmit forms retain their original controls and native behavior. */
body.focus-site:not(.focus-home) .contact-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(0, .8fr);
  gap: clamp(40px, 6vw, 86px);
  align-items: start;
  overflow: visible;
}
body.focus-site:not(.focus-home) .contact-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  min-width: 0;
  padding: 0;
  gap: 25px 22px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
body.focus-site:not(.focus-home) .contact-form label { color: var(--sub-ink); font-size: 13px; font-weight: 450; gap: 10px; min-width: 0; }
body.focus-site:not(.focus-home) .contact-form :is(input, select, textarea) {
  color: var(--sub-ink);
  background-color: #fdfdf9;
  border-color: #d6d9d1;
  border-radius: 10px;
  font-size: 16px;
  min-height: 48px;
}
body.focus-site:not(.focus-home) .contact-form textarea { max-height: none; }
body.focus-site:not(.focus-home) .contact-form :is(input, select, textarea):focus { outline: 2px solid #788a83; outline-offset: 3px; border-color: #879a90; }
body.focus-site:not(.focus-home) .contact-form .privacy-check {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 12px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  line-height: 1.6;
  font-size: 13px;
  color: var(--sub-muted);
}
body.focus-site:not(.focus-home) .contact-form .privacy-check input {
  width: 18px;
  height: 18px;
  min-height: 18px;
  flex: 0 0 18px;
  margin-top: 2px;
  accent-color: #343c37;
}
body.focus-site:not(.focus-home) .contact-form .privacy-check a { color: var(--sub-ink); }
body.focus-site:not(.focus-home) .contact-form > button { justify-self: start; width: auto; padding-inline: 30px; }
body.focus-site:not(.focus-home) .contact-form .form-note { font-size: 13px; line-height: 1.65; margin: 0; color: var(--sub-muted); }
body.focus-site:not(.focus-home) .contact-form .form-warning { padding: 14px 18px; border-left: 1px solid #b9bfb7; background: var(--sub-surface); }
body.focus-site:not(.focus-home) .contact-form input[type="file"] { height: auto; padding: 12px; font-size: 13px; }
body.focus-site:not(.focus-home) .contact-form input[type="file"]::file-selector-button { border: 0; border-radius: 20px; padding: 6px 11px; margin-right: 10px; background: #e9ece4; color: #343c37; cursor: pointer; }
body.focus-site:not(.focus-home) .contact-card {
  padding: 34px;
  border: 1px solid #e2e3dc;
  border-radius: 20px;
  background: #ffffff;
  color: var(--sub-muted);
  box-shadow: none;
}
body.focus-site:not(.focus-home) .contact-card h2 { font-size: 27px; margin-bottom: 27px; }
body.focus-site:not(.focus-home) .contact-card a { width: fit-content; color: var(--sub-ink); font-size: clamp(15px, 1.5vw, 21px); font-weight: 450; line-height: 1.5; margin-bottom: 15px; overflow-wrap: anywhere; }
body.focus-site:not(.focus-home) .contact-card p { margin-top: 28px; font-size: 15px; line-height: 1.75; }

/* Legal content stays complete, with comfortable reading width and table scroll. */
body.focus-site:not(.focus-home) .privacy-content { max-width: 980px; width: calc(100% - 108px); padding: 30px 0 90px; }
body.focus-site:not(.focus-home) .privacy-summary { border: 1px solid var(--sub-rule); border-radius: 16px; background: var(--sub-surface); box-shadow: none; padding: 28px; }
body.focus-site:not(.focus-home) .privacy-summary p { color: var(--sub-muted); }
body.focus-site:not(.focus-home) .privacy-section { padding: 34px 0; border-top-color: var(--sub-rule); }
body.focus-site:not(.focus-home) .privacy-section h2 { color: var(--sub-ink); font-size: 29px; font-weight: 500; line-height: 1.25; letter-spacing: -.025em; }
body.focus-site:not(.focus-home) .privacy-section h3 { color: var(--sub-ink); font-weight: 550; }
body.focus-site:not(.focus-home) .privacy-section p,
body.focus-site:not(.focus-home) .privacy-section li,
body.focus-site:not(.focus-home) .privacy-meta dd { color: #59625b; font-size: 16px; line-height: 1.75; }
body.focus-site:not(.focus-home) .privacy-section p + p { margin-top: 14px; }
body.focus-site:not(.focus-home) .privacy-section a { color: var(--sub-ink); overflow-wrap: anywhere; }
body.focus-site:not(.focus-home) .privacy-meta dt { color: var(--sub-ink); font-weight: 500; }
body.focus-site:not(.focus-home) .privacy-table { background: #fdfdf9; font-size: 14px; }
body.focus-site:not(.focus-home) .privacy-table th { background: #eeefe8; color: var(--sub-ink); font-weight: 550; }
body.focus-site:not(.focus-home) .privacy-table :is(th, td) { border-color: var(--sub-rule); }
body.focus-site:not(.focus-home) .privacy-updated { color: var(--sub-muted); }
body.focus-site:not(.focus-home) .inline-actions { justify-content: center; flex-wrap: wrap; }

@media (max-width: 1100px) {
  body.focus-site:not(.focus-home) .section { padding-right: 38px; padding-left: 38px; }
  body.focus-site:not(.focus-home) .page-hero { padding-right: 38px; padding-left: 38px; }
  body.focus-site:not(.focus-home) .cta,
  body.focus-site:not(.focus-home) .training-note { margin-left: 38px; margin-right: 38px; padding: 44px; }
  body.focus-site:not(.focus-home) .well-lifecycle-grid article,
  body.focus-site:not(.focus-home) .support-grid article { padding: 28px; }
  body.focus-site:not(.focus-home) .contact-layout { gap: 40px; grid-template-columns: minmax(0, 1.3fr) minmax(0, .85fr); }
  body.focus-site:not(.focus-home) .contact-card { padding: 27px; }
}
@media (max-width: 820px) {
  body.focus-site:not(.focus-home) .section { padding: 68px 32px; }
  body.focus-site:not(.focus-home) .page-hero { min-height: 380px; padding: 66px 32px; }
  body.focus-site:not(.focus-home) .page-hero h1 { font-size: clamp(40px, 6.5vw, 55px); }
  body.focus-site:not(.focus-home) .service-overview { padding-top: 0; padding-bottom: 46px; }
  body.focus-site:not(.focus-home) :is(.intro-grid, .join-intro, .join-model, .contact-layout) { grid-template-columns: 1fr; gap: 32px; }
  body.focus-site:not(.focus-home) .proof-grid { grid-template-columns: 1fr; gap: 28px; }
  body.focus-site:not(.focus-home) .cta { align-items: flex-start; margin: 0 32px 58px; padding: 36px; }
  body.focus-site:not(.focus-home) .training-note { margin: 0 32px 58px; padding: 42px 32px; }
  body.focus-site:not(.focus-home) .contact-card { padding: 30px; }
  body.focus-site:not(.focus-home) .contact-card a { font-size: 20px; }
  body.focus-site:not(.focus-home) .privacy-content { width: calc(100% - 64px); }
}
@media (max-width: 600px) {
  body.focus-site:not(.focus-home) .section { padding: 56px 23px; }
  body.focus-site:not(.focus-home) .page-hero { min-height: 0; padding: 56px 23px 50px; }
  body.focus-site:not(.focus-home) .page-hero h1 { font-size: clamp(34px, 9vw, 44px); line-height: 1.1; letter-spacing: -.04em; margin-bottom: 23px; }
  body.focus-site:not(.focus-home) .page-hero p:not(.eyebrow) { font-size: 17px; }
  body.focus-site:not(.focus-home) .section h2,
  body.focus-site:not(.focus-home) .cta h2 { font-size: 32px; line-height: 1.15; }
  body.focus-site:not(.focus-home) .section-heading { margin-bottom: 32px; }
  body.focus-site:not(.focus-home) .section-heading p:not(.eyebrow),
  body.focus-site:not(.focus-home) .service-continuation p:not(.eyebrow) { font-size: 16px; }
  body.focus-site:not(.focus-home) .section-heading .eyebrow { font-size: 10px; letter-spacing: .11em; }
  body.focus-site:not(.focus-home) .service-overview { padding-top: 0; padding-bottom: 42px; gap: 8px; }
  body.focus-site:not(.focus-home) .service-overview a { padding: 10px 14px; min-height: 42px; }
  body.focus-site:not(.focus-home) .service-overview strong { font-size: 12px; }
  body.focus-site:not(.focus-home) :is(.well-lifecycle-grid, .support-grid, .content-grid, .role-groups, .role-notes, .contact-form) { grid-template-columns: 1fr; }
  body.focus-site:not(.focus-home) .well-lifecycle-grid article,
  body.focus-site:not(.focus-home) .support-grid article { padding: 27px 23px; border-radius: 17px; }
  body.focus-site:not(.focus-home) .well-lifecycle-grid h3,
  body.focus-site:not(.focus-home) .support-grid h3 { font-size: 24px; }
  body.focus-site:not(.focus-home) .content-grid { gap: 15px; }
  body.focus-site:not(.focus-home) .principles-grid article h2 { font-size: 25px; }
  body.focus-site:not(.focus-home) .cta,
  body.focus-site:not(.focus-home) .training-note { margin: 0 23px 46px; padding: 30px 25px; border-radius: 20px; }
  body.focus-site:not(.focus-home) .training-note p { font-size: 16px; }
  body.focus-site:not(.focus-home) .training-note .eyebrow { font-size: 10px; }
  body.focus-site:not(.focus-home) .join-note,
  body.focus-site:not(.focus-home) .role-group { padding: 27px 23px; }
  body.focus-site:not(.focus-home) .role-group h3 { font-size: 23px; }
  body.focus-site:not(.focus-home) .contact-card { padding: 28px 23px; }
  body.focus-site:not(.focus-home) .contact-card h2 { font-size: 26px; }
  body.focus-site:not(.focus-home) .contact-card a { font-size: 18px; }
  body.focus-site:not(.focus-home) .contact-form > button { width: 100%; }
  body.focus-site:not(.focus-home) .privacy-content { width: calc(100% - 46px); padding-top: 16px; }
  body.focus-site:not(.focus-home) .privacy-summary { padding: 23px; }
  body.focus-site:not(.focus-home) .privacy-section h2 { font-size: 26px; }
  body.focus-site:not(.focus-home) .privacy-meta { grid-template-columns: 1fr; gap: 6px; }
  body.focus-site:not(.focus-home) .privacy-meta dd { margin-bottom: 12px; }
  body.focus-site:not(.focus-home) .inline-actions { width: 100%; }
  body.focus-site:not(.focus-home) .inline-actions .button { width: 100%; }
}

/* A concise invitation replaces the large Contact headline. */
body.focus-site:not(.focus-home) .contact-hero-simple {
  min-height: 0;
  padding-top: clamp(56px, 6vw, 80px);
  padding-bottom: clamp(50px, 6vw, 80px);
}
body.focus-site:not(.focus-home) .contact-hero-simple .contact-intro {
  max-width: 760px;
  margin: 0;
  font-size: clamp(24px, 2.5vw, 34px);
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: -.02em;
  text-wrap: balance;
}
body.focus-site.focus-contact .contact-form :is(input, select, textarea) {
  background-color: #ffffff;
}
