@font-face {
  font-family: "Montserrat";
  src: url("../fonts/montserrat-variable.ttf") format("truetype");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

:root {
  --ink: #2b2a29;
  --ink-deep: #191919;
  --paper: #fff;
  --sand: #f5f5f5;
  --brand-red: #d21f34;
  --brand-red-dark: #b7192c;
  --accent: var(--brand-red);
  --muted: #646464;
  --line: #e1e1e1;
  --sans: "Montserrat", Arial, Helvetica, sans-serif;
  --display: var(--sans);
  --bs-primary: var(--brand-red);
  --bs-primary-rgb: 210, 31, 52;
  --bs-body-font-family: var(--sans);
  --bs-body-color: var(--ink);
  --bs-body-bg: var(--paper);
  --bs-border-color: var(--line);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 28px; }
body { margin: 0; font-size: 16px; line-height: 1.65; -webkit-font-smoothing: antialiased; }
::selection { background: #f8d9de; color: var(--ink-deep); }
a { color: inherit; text-underline-offset: 5px; }
a:hover { color: var(--accent); }
a, button { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible, select:focus-visible { outline: 3px solid var(--accent); outline-offset: 5px; }
img { display: block; max-width: 100%; }
h1, h2, h3, p, figure { margin-top: 0; }
h1, h2 { font-family: var(--display); font-weight: 750; letter-spacing: -0.045em; line-height: 1.14; }
h1 { font-size: clamp(2.2rem, 4vw, 3.7rem); }
h2 { font-size: clamp(1.9rem, 2.8vw, 2.7rem); }
h3 { font-size: 1.4rem; font-weight: 650; }
h1 em, h2 em { font-style: normal; font-weight: inherit; color: var(--accent); }
p { margin-bottom: 1.4rem; }
.site-container { width: calc(100% - 112px); max-width: 1320px; padding-right: 0; padding-left: 0; }
.section-padding { padding-top: 104px; padding-bottom: 104px; }
.eyebrow { margin-bottom: 21px; font-family: var(--sans); font-size: 10px; font-weight: 650; line-height: 1.6; letter-spacing: 0.18em; text-transform: uppercase; }
.arrow-icon { width: 23px; height: 23px; flex-shrink: 0; transition: transform 180ms ease; }
.text-link { display: inline-flex; gap: 21px; align-items: center; font-size: 13px; font-weight: 600; text-decoration: none; line-height: 1.5; }
.text-link:hover .arrow-icon, .btn:hover .arrow-icon { transform: translateX(3px); }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 27px; min-height: 51px; padding: 14px 23px; border-radius: 0; font-size: 12px; font-weight: 600; line-height: 1.5; transition: background 180ms ease, color 180ms ease; }
.btn-primary { --bs-btn-bg: var(--brand-red); --bs-btn-border-color: var(--brand-red); --bs-btn-color: #fff; --bs-btn-hover-bg: var(--brand-red-dark); --bs-btn-hover-border-color: var(--brand-red-dark); --bs-btn-active-bg: var(--brand-red-dark); --bs-btn-active-border-color: var(--brand-red-dark); --bs-btn-focus-shadow-rgb: 210, 31, 52; }
.btn-light { --bs-btn-bg: var(--paper); --bs-btn-border-color: var(--paper); --bs-btn-color: var(--ink); --bs-btn-hover-bg: #ececec; --bs-btn-hover-border-color: #ececec; }
.skip-link { position: fixed; z-index: 100; left: 20px; top: -80px; padding: 12px 20px; color: white; background: var(--ink); }
.skip-link:focus { top: 10px; }
main:focus { outline: none; }

/* Brand and navigation */
.site-header { border-top: 4px solid var(--brand-red); border-bottom: 1px solid var(--line); }
.site-header .navbar { min-height: 106px; padding-block: 24px; }
.brand { display: inline-flex; align-items: center; flex-shrink: 0; text-decoration: none; }
.brand-logo { display: block; width: 300px; height: auto; max-width: 100%; }
.navbar-brand { margin-right: 45px; padding: 0; }
.navbar-nav { gap: 25px; }
.navbar .nav-link { position: relative; padding: 9px 0 !important; color: var(--muted); font-size: 12px; font-weight: 600; }
.navbar .nav-link:hover, .navbar .nav-link.is-active { color: var(--ink); }
.navbar .nav-link.is-active::after { position: absolute; bottom: 1px; left: 0; width: 22px; height: 1px; background: var(--accent); content: ""; }
.nav-contact { display: inline-flex; align-items: center; gap: 24px; border-bottom: 1px solid var(--ink); padding-block: 6px; font-size: 12px; font-weight: 600; text-decoration: none; }
.nav-contact .arrow-icon { width: 18px; height: 18px; }
.navbar-toggler { display: flex; align-items: center; gap: 10px; border: 1px solid var(--line); border-radius: 0; padding: 10px 12px; color: var(--ink); font-size: 12px; }
.navbar-toggler:focus { box-shadow: none; }
.menu-lines { display: block; width: 17px; height: 9px; border-top: 1px solid currentColor; border-bottom: 1px solid currentColor; }

/* Home */
.hero { display: grid; grid-template-columns: 1.03fr 1fr; gap: 60px; padding-top: 54px; padding-bottom: 62px; }
.hero-copy { padding-top: 26px; padding-bottom: 10px; }
.hero .eyebrow { display: flex; align-items: center; gap: 14px; font-size: 9px; }
.short-rule { display: inline-block; width: 28px; height: 1px; background: var(--accent); }
.hero h1 { margin-top: 28px; margin-bottom: 28px; font-size: clamp(2.75rem, 4.9vw, 4.6rem); font-weight: 850; line-height: 1.07; letter-spacing: -0.05em; text-transform: uppercase; }
.hero-description { max-width: 365px; margin-bottom: 31px; color: var(--muted); font-size: 14px; line-height: 1.85; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 27px; }
.hero-actions .text-link { gap: 12px; font-size: 12px; }
.hero-footnote { display: flex; align-items: center; gap: 10px; margin-top: 50px; font-size: 9px; color: var(--muted); }
.location-mark { font-size: 20px; color: var(--accent); }
.hero-footnote-line { width: 29px; height: 1px; margin-inline: 6px; background: var(--line); }
.hero-visual { position: relative; min-height: 570px; margin: 0; overflow: hidden; background: #e5e5e5; }
.hero-visual > img { position: absolute; width: 100%; height: 100%; object-fit: cover; object-position: 58% center; filter: saturate(0.72); }
.hero-visual::after { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 48%, rgb(43 42 41 / 62%)); content: ""; pointer-events: none; }
.hero-image-label { position: absolute; z-index: 1; bottom: 91px; left: 35px; color: #fff; font-family: var(--display); font-size: clamp(1.5rem, 2.4vw, 2.2rem); font-weight: 750; line-height: 1.15; letter-spacing: -0.035em; }
.hero-visual figcaption { position: absolute; bottom: 27px; z-index: 1; display: flex; justify-content: space-between; align-items: center; gap: 20px; width: calc(100% - 70px); margin-inline: 35px; padding-top: 16px; border-top: 1px solid rgb(255 255 255 / 42%); color: #fff; font-size: 9px; }
.hero-visual figcaption > span:first-child { font-size: 8px; letter-spacing: 0.12em; }
.hero-visual figcaption > span:last-child > span { margin-left: 15px; }
.portfolio-intro { background: var(--sand); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.portfolio-intro-inner { display: flex; gap: 60px; align-items: center; min-height: 125px; }
.portfolio-intro-inner > p { flex-shrink: 0; min-width: 205px; margin: 0; padding-right: 42px; border-right: 1px solid #ddd; color: var(--muted); font-size: 11px; line-height: 1.8; }
.portfolio-intro-inner > p strong { color: var(--ink); font-weight: 500; }
.portfolio-wordmarks { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: center; gap: 20px; width: 100%; }
.portfolio-wordmark { display: flex; align-items: center; justify-content: center; padding-block: 10px; text-decoration: none; }
.company-logo { display: block; width: 200px; max-width: 100%; aspect-ratio: 40 / 19; background-image: url("../images/company-logos.png"); background-size: 100% 2000%; background-repeat: no-repeat; }
.company-logo-grekodom { background-position: center 10.5263157895%; }
.company-logo-kriaritsi { background-position: center 15.7894736842%; }
.company-logo-mbg { background-position: center 21.0526315789%; }
.company-logo-solun { background-position: center 73.6842105263%; }
.portfolio-wordmark .company-logo { width: 100%; max-width: 200px; }
.company-profile-heading .company-logo { width: 320px; }
.section-heading { display: flex; justify-content: space-between; gap: 50px; align-items: flex-end; margin-bottom: 45px; }
.section-heading h2 { margin-bottom: 0; }
.section-heading-aside { max-width: 280px; padding-bottom: 4px; }
.section-heading-aside p { margin-bottom: 19px; color: var(--muted); font-size: 13px; }
.status-label { display: inline-flex; align-items: center; gap: 8px; color: var(--ink); font-size: 10px; letter-spacing: 0.02em; }
.status-dot { width: 5px; height: 5px; border-radius: 50%; background: var(--accent); }
.company-card { display: flex; flex-direction: column; height: 100%; }
.company-image-link { position: relative; display: block; flex-shrink: 0; overflow: hidden; aspect-ratio: 1.18; background: var(--sand); }
.company-image { width: 100%; height: 100%; object-fit: cover; filter: saturate(0.65); transition: transform 350ms ease, filter 350ms ease; }
.company-card:hover .company-image { transform: scale(1.035); filter: saturate(0.85); }
.company-image-grekodom { object-position: 43% center; }
.company-image-kriaritsi { object-position: center 62%; }
.company-image-mbg { object-position: 56% center; }
.company-image-solun { object-position: 40% center; }
.image-corner-arrow { position: absolute; bottom: 0; right: 0; display: grid; place-items: center; width: 36px; height: 36px; color: var(--ink); background: var(--paper); }
.image-corner-arrow .arrow-icon { width: 19px; height: 19px; transform: rotate(-45deg); }
.company-card-body { display: flex; flex: 1; flex-direction: column; padding-top: 23px; }
.company-card .company-sector { margin-bottom: 12px; color: var(--accent); font-size: 8px; letter-spacing: 0.14em; }
.company-card h3 { margin-bottom: 17px; }
.company-card h3 a { text-decoration: none; }
.company-card h3 .company-logo { margin: 0; }
.company-summary { min-height: 80px; margin-bottom: 22px; color: var(--muted); font-size: 12px; line-height: 1.85; }
.company-link { gap: 15px; margin-top: auto; padding-top: 16px; border-top: 1px solid var(--line); font-size: 11px; }
.company-link .arrow-icon { width: 19px; height: 19px; margin-left: auto; }
.group-story { padding: 76px 0; background: var(--sand); }
.story-visual { position: relative; min-height: 470px; }
.story-visual img { width: 100%; height: 100%; min-height: 470px; object-fit: cover; object-position: 37% center; filter: saturate(0.57); }
.image-caption { position: absolute; bottom: 22px; left: 24px; font-size: 10px; color: white; text-shadow: 0 1px 4px #222; }
.story-copy { align-self: center; padding: 35px 0 35px 90px; }
.story-copy h2 { margin-bottom: 28px; }
.story-copy > p:not(.eyebrow) { max-width: 465px; color: var(--muted); font-size: 13px; line-height: 1.9; }
.story-copy .text-link { margin-top: 10px; }
.group-facts { display: grid; grid-template-columns: 1fr 1.3fr 1fr; gap: 18px; max-width: 465px; margin: 30px 0 20px; padding-top: 22px; border-top: 1px solid var(--line); }
.group-facts > div { min-width: 0; }
.group-facts dt { margin-bottom: 9px; color: var(--muted); font-size: 9px; font-weight: 500; line-height: 1.5; }
.group-facts dd { margin: 0; color: var(--ink); font-size: 17px; font-weight: 600; letter-spacing: -0.04em; overflow-wrap: anywhere; }
.group-timeline { margin-top: 38px; border-top: 1px solid #d6d6d6; border-bottom: 1px solid #d6d6d6; }
.group-timeline > summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-block: 22px; font-size: 12px; font-weight: 600; cursor: pointer; list-style: none; }
.group-timeline > summary::-webkit-details-marker { display: none; }
.group-timeline > summary > span { color: var(--brand-red); font-size: 24px; font-weight: 400; }
.group-timeline[open] > summary > span { transform: rotate(45deg); }
.group-timeline-content { padding: 12px 0 30px; }
.group-timeline-content > h3 { margin-bottom: 30px; font-size: 22px; }
.timeline-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px 40px; padding: 0; margin: 0 0 30px; list-style: none; }
.timeline-grid > li { padding-left: 20px; border-left: 2px solid var(--brand-red); }
.timeline-year { display: block; margin-bottom: 10px; color: var(--brand-red); font-size: 23px; font-weight: 500; letter-spacing: -0.04em; }
.timeline-grid h4 { margin-bottom: 10px; font-size: 13px; font-weight: 600; line-height: 1.5; }
.timeline-grid p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.8; }
.group-timeline-content > .text-link { font-size: 11px; }
.heritage-preview { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; padding-top: 85px; padding-bottom: 85px; }
.heritage-preview h2 { font-size: 36px; }
.heritage-preview > div:last-child { align-self: center; max-width: 450px; }
.heritage-preview p:not(.eyebrow) { color: var(--muted); font-size: 13px; }

/* Interior pages */
.page-intro { padding-top: 77px; padding-bottom: 66px; }
.page-intro .eyebrow { color: var(--accent); margin-bottom: 27px; }
.page-intro-row { display: grid; grid-template-columns: 1.5fr 1fr; gap: 75px; align-items: end; }
.page-intro h1 { margin-bottom: 0; }
.lead-copy { max-width: 460px; margin-bottom: 0; color: var(--muted); font-size: 16px; line-height: 1.85; }
.page-intro-row > div .lead-copy { margin-bottom: 20px; }
.directory-section { padding-bottom: 85px; }
.directory-grid .company-image-link { aspect-ratio: 1.8; }
.directory-grid .company-card h3 { font-size: 38px; }
.directory-grid .company-card h3 span { font-size: 12px; }
.directory-grid .company-summary { max-width: 430px; min-height: 0; font-size: 14px; }
.directory-grid .company-link { font-size: 12px; }
.directory-note { margin-top: 50px; margin-bottom: 0; padding-top: 26px; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; }
.wide-landscape { margin-bottom: 0; }
.wide-landscape img { width: 100%; height: 390px; object-fit: cover; object-position: center 55%; filter: saturate(0.68); }
.wide-landscape figcaption { margin-top: 14px; color: var(--muted); font-size: 10px; }
.prose { font-size: 15px; color: var(--muted); line-height: 1.95; }
.prose .large-prose { font-size: 22px; line-height: 1.6; color: var(--ink); }
.prose .text-link { color: var(--ink); }
.group-principles { padding-block: 80px; background: var(--sand); }
.group-principles h2 { margin-bottom: 58px; }
.principle-number { display: block; margin-bottom: 22px; padding-bottom: 14px; border-bottom: 1px solid #d8d8d8; color: var(--accent); font-family: var(--display); font-size: 25px; }
.principle h3 { font-family: var(--display); font-size: 24px; font-weight: 700; letter-spacing: -0.035em; }
.principle p { max-width: 330px; margin-bottom: 0; color: var(--muted); font-size: 13px; }
.group-company-list { border-top: 1px solid var(--line); }
.group-company-list > a { display: grid; grid-template-columns: 1fr 1fr 30px; gap: 25px; align-items: center; padding-block: 25px; border-bottom: 1px solid var(--line); text-decoration: none; }
.group-company-list > a > span:first-child { font-family: var(--display); font-size: 34px; }
.group-company-list > a > span:nth-child(2) { color: var(--muted); font-size: 12px; }
.company-detail-hero { padding-bottom: 75px; }
.breadcrumb-trail { display: flex; align-items: center; gap: 17px; padding-top: 34px; margin-bottom: 48px; color: var(--muted); font-size: 11px; }
.breadcrumb-trail a { text-decoration: none; }
.detail-hero-copy { padding-right: 50px; }
.detail-hero-copy > .eyebrow { color: var(--accent); }
.detail-hero-copy h1 { font-size: clamp(4rem, 6vw, 5.5rem); }
.detail-descriptor { display: block; margin-top: 16px; color: var(--muted); font-family: var(--sans); font-size: 14px; letter-spacing: 0.01em; }
.detail-headline { margin-top: 44px; margin-bottom: 17px; font-family: var(--display); font-size: 31px; letter-spacing: -0.025em; line-height: 1.25; }
.detail-hero-copy .hero-actions { margin-top: 30px; }
.detail-hero-image { width: 100%; height: 540px; object-fit: cover; filter: saturate(0.7); }
.detail-overview { background: var(--sand); }
.company-facts { font-size: 13px; }
.company-facts dt { margin-bottom: 4px; font-size: 10px; color: var(--muted); font-weight: 400; }
.company-facts dd { margin-bottom: 24px; }
.company-facts a { text-decoration: none; }
.overview-prose h2 { margin-bottom: 25px; font-size: 36px; }
.overview-prose p { font-size: 14px; line-height: 1.9; color: var(--muted); }
.overview-prose .text-link { margin-top: 10px; }
.service-list { padding-left: 45px; }
.service-list h2 { margin-bottom: 28px; font-size: 26px; }
.service-list ul { padding: 0; list-style: none; }
.service-list li { display: flex; gap: 16px; padding-block: 14px; border-bottom: 1px solid #d8d8d8; font-size: 12px; }
.service-list li > span { color: var(--accent); }
.company-detail-bottom { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding-block: 45px; }
.company-detail-bottom p { margin: 0; color: var(--muted); font-size: 11px; }

/* Heritage and contact */
.heritage-content { padding-top: 10px; padding-bottom: 30px; }
.status-notice { display: flex; gap: 24px; padding: 30px 35px; margin-bottom: 65px; background: var(--sand); border-left: 2px solid var(--accent); }
.notice-icon { display: grid; place-items: center; width: 22px; height: 22px; flex-shrink: 0; margin-top: 3px; border: 1px solid var(--accent); border-radius: 50%; color: var(--accent); font-family: var(--display); font-size: 13px; }
.status-notice h2 { margin-bottom: 12px; font-family: var(--sans); font-size: 15px; font-weight: 600; letter-spacing: 0; }
.status-notice p { max-width: 830px; margin-bottom: 16px; color: var(--muted); font-size: 13px; }
.status-notice .text-link { font-size: 12px; }
.heritage-list-heading { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.heritage-list-heading h2 { margin: 0; font-size: 32px; }
.heritage-list-heading > span { color: var(--muted); font-size: 10px; }
.heritage-row { display: flex; justify-content: space-between; align-items: center; gap: 15px; min-height: 99px; padding-block: 20px; border-bottom: 1px solid var(--line); }
.heritage-row h3 { margin-bottom: 4px; font-size: 16px; font-weight: 500; }
.heritage-row p { margin: 0; color: var(--muted); font-size: 11px; }
.closed-label { padding: 3px 9px; border: 1px solid #ddd; color: #646464; font-size: 9px; }
.heritage-next { padding-top: 70px; padding-bottom: 90px; text-align: center; }
.heritage-next h2 { margin-bottom: 30px; }
.contact-router { padding-block: 66px; background: var(--sand); }
.contact-router-description { margin-top: 25px; color: var(--muted); font-size: 13px; }
.company-selector { margin-top: 28px; max-width: 480px; }
.company-selector label { display: block; margin-bottom: 8px; font-size: 11px; }
.company-selector-controls { display: flex; gap: 10px; }
.company-selector .form-select { min-width: 0; padding: 14px 34px 14px 14px; border-color: #ccc; border-radius: 0; background-color: var(--paper); color: var(--ink); font-size: 12px; box-shadow: none; }
.company-selector .btn { gap: 12px; flex-shrink: 0; padding-inline: 17px; }
.contact-selection { display: flex; flex-direction: column; justify-content: center; border-left: 1px solid #ddd; padding-left: 70px; }
.contact-selection-intro h3 { margin-bottom: 20px; font-family: var(--display); font-size: 32px; font-weight: 750; line-height: 1.15; letter-spacing: -0.04em; }
.contact-selection-intro p { max-width: 300px; font-size: 13px; color: var(--muted); }
.contact-symbol { display: block; margin-bottom: 23px; color: var(--accent); font-size: 52px; line-height: 1; }
.selected-company > .status-label { margin-bottom: 30px; }
.selected-company .eyebrow { margin-bottom: 10px; color: var(--accent); }
.selected-company h3 { font-family: var(--display); font-size: 48px; letter-spacing: -0.04em; }
.selected-company h3 .company-logo { width: 260px; margin-bottom: 20px; }
.selected-company > p:not(.eyebrow) { max-width: 350px; font-size: 13px; color: var(--muted); }
.selected-company > .text-link { display: flex; width: fit-content; margin-top: 25px; }
.contact-company { padding: 32px; border: 1px solid var(--line); }
.contact-company .eyebrow { margin-bottom: 16px; color: var(--accent); font-size: 8px; }
.contact-company h3 { margin-bottom: 20px; font-family: var(--display); font-size: 30px; }
.contact-company h3 .company-logo { margin: 0; }
.contact-company p:not(.eyebrow) { margin-bottom: 16px; color: var(--muted); font-size: 12px; }
.legal-content { max-width: 820px; margin-left: max(56px, calc((100% - 1320px) / 2)); padding-bottom: 85px; }
.legal-content section { margin-bottom: 35px; }
.legal-content h2 { font-family: var(--sans); font-size: 20px; font-weight: 500; letter-spacing: 0; }
.error-page { min-height: 65vh; padding-block: 100px; }
.error-page h1 { margin-bottom: 28px; }
.error-page .hero-actions { margin-top: 35px; }
.request-reference { margin-top: 38px; color: var(--muted); font-size: 10px; overflow-wrap: anywhere; }

/* Contact banner and footer */
.contact-banner { padding-block: 64px; background: var(--ink); color: var(--paper); }
.contact-banner-inner { display: flex; align-items: center; justify-content: space-between; gap: 50px; }
.contact-banner .eyebrow { color: #ffacb8; font-size: 9px; }
.contact-banner h2 { margin: 0; font-size: 39px; }
.contact-banner-action p { margin-bottom: 21px; color: #e4e4e4; font-size: 12px; }
.contact-banner-action .btn { min-width: 180px; justify-content: space-between; }
.site-footer { padding-top: 67px; }
.footer-main { padding-bottom: 55px; }
.footer-brand .brand-logo { width: 310px; }
.footer-statement { margin-top: 30px; margin-bottom: 20px; font-family: var(--display); font-size: 22px; font-weight: 700; line-height: 1.4; letter-spacing: -0.025em; }
.footer-location { margin-bottom: 0; color: var(--muted); font-size: 10px; }
.footer-heading { margin-top: 10px; margin-bottom: 24px; font-family: var(--sans); font-size: 10px; font-weight: 650; letter-spacing: 0.03em; }
.footer-links { display: flex; flex-direction: column; gap: 10px; margin-bottom: 0; padding: 0; list-style: none; font-size: 12px; color: var(--muted); }
.footer-links a { text-decoration: none; }
.footer-bottom { display: flex; justify-content: space-between; gap: 30px; padding-block: 23px; border-top: 1px solid var(--line); color: var(--muted); font-size: 9px; }
.footer-bottom p { margin: 0; }
.footer-bottom > div { display: flex; gap: 35px; }
.footer-bottom a { text-decoration: none; }
.back-to-top > span { margin-left: 10px; font-size: 14px; }

/* One landing page per language, with all company information kept in-page. */
html { scroll-padding-top: 125px; }
.site-header { position: sticky; top: 0; z-index: 1030; background: var(--paper); }
.navbar-brand { order: 1; }
.navbar-toggler { order: 2; }
.navbar-collapse { order: 2; }
.language-switcher { order: 3; display: flex; align-items: center; gap: 7px; margin-left: 23px; padding-left: 17px; border-left: 1px solid var(--line); }
.language-switcher a { padding: 6px 4px; border-bottom: 2px solid transparent; color: var(--muted); font-size: 11px; font-weight: 650; text-decoration: none; }
.language-switcher a:hover, .language-switcher a[aria-current="page"] { color: var(--accent); border-bottom-color: var(--accent); }
.landing-section, #privacy { scroll-margin-top: 20px; }
.lang-el .hero h1 { font-size: clamp(2.4rem, 4.5vw, 4.1rem); }
.company-image-button { width: 100%; padding: 0; border: 0; text-align: left; }
.company-image-button:focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }
.company-card .company-summary { display: -webkit-box; min-height: 9em; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 5; }
.company-card-actions { display: flex; flex-direction: column; gap: 18px; margin-top: auto; padding-top: 18px; border-top: 1px solid var(--line); }
.company-card-actions button.text-link { justify-content: space-between; width: 100%; padding: 0; border: 0; color: var(--ink); background: none; text-align: left; }
.company-website-link { width: fit-content; color: var(--accent); font-size: 10px; font-weight: 600; text-decoration: none; }
.company-website-link > span[aria-hidden] { margin-left: 7px; }
.modal-content { border: 0; border-radius: 0; }
.company-modal .modal-header { align-items: flex-start; padding: 25px 30px; }
.company-modal .modal-header .eyebrow { margin-bottom: 8px; color: var(--accent); }
.company-modal .modal-title { font-size: 28px; }
.company-modal .btn-close { margin-top: 0; }
.company-modal .modal-body { padding: 0 30px 15px; }
.modal-company-image { width: 100%; height: 240px; object-fit: cover; margin-bottom: 22px; }
.company-modal-sector { color: var(--accent); font-size: 12px; font-weight: 600; }
.imported-company-description { font-size: 14px; line-height: 1.9; color: var(--muted); }
.company-modal .modal-footer { justify-content: space-between; gap: 18px; padding: 20px 30px; }
.company-modal .modal-footer button.text-link { padding: 8px 0; border: 0; color: var(--ink); background: transparent; }
.landing-heritage { padding-bottom: 65px; }
.landing-heritage .heritage-preview { margin: 0; padding-block: 65px 26px; }
.heritage-fold { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.heritage-fold > summary { padding: 22px 0; font-size: 13px; font-weight: 600; cursor: pointer; }
.heritage-fold > summary > span { margin-left: 12px; color: var(--muted); font-size: 11px; }
.heritage-fold-content { padding: 12px 0 25px; }
.heritage-row h4 { margin: 0 0 5px; font-size: 15px; font-weight: 600; }
.closed-label { flex-shrink: 0; }
.landing-contact { padding-block: 65px; color: #fff; background: var(--ink); }
.landing-contact .eyebrow { color: #ffacb8; }
.landing-contact h2 { color: #fff; }
.contact-intro { max-width: 360px; margin-bottom: 0; color: #e4e4e4; font-size: 13px; }
.landing-company-contact { display: flex; flex-direction: column; gap: 11px; height: 100%; padding: 22px 20px; border: 1px solid #636262; text-decoration: none; }
.landing-company-contact:hover { color: #fff; border-color: #fff; }
.contact-company-name { display: flex; justify-content: space-between; gap: 18px; color: #fff; font-size: 18px; font-weight: 650; }
.landing-company-contact > span:not(.contact-company-name) { color: #ddd; font-size: 10px; }
.landing-company-contact .contact-domain { margin-top: auto; padding-top: 10px; }
.contact-note { margin: 23px 0 0; color: #ddd; font-size: 10px; }
.privacy-details { border-top: 1px solid var(--line); }
.privacy-details > summary { width: fit-content; padding-block: 18px; font-size: 11px; cursor: pointer; }
.privacy-copy { max-width: 820px; padding: 12px 0 25px; color: var(--muted); font-size: 12px; line-height: 1.9; }
.privacy-copy h2 { font-size: 20px; }
.privacy-copy p:last-child { margin-bottom: 0; }

@media (min-width: 992px) {
  .navbar-expand-lg .navbar-toggler { display: none; }
}

@media (min-width: 1600px) {
  .hero { padding-top: 70px; padding-bottom: 75px; }
  .hero-visual { min-height: 630px; }
}

@media (max-width: 1199.98px) {
  .lang-el .hero h1 { font-size: clamp(2rem, 4.4vw, 3.4rem); }
  .site-header .brand-logo { width: 250px; }
  .navbar-brand { margin-right: 22px; }
  .navbar-nav { gap: 18px; }
  .language-switcher { gap: 4px; margin-left: 16px; padding-left: 12px; }
  .site-container { width: calc(100% - 80px); }
  .hero { gap: 35px; }
  .hero h1 { font-size: clamp(2.15rem, 4.9vw, 3.75rem); }
  .hero-actions { gap: 20px; }
  .hero .hero-actions .btn { padding-inline: 17px; gap: 12px; }
  .hero-footnote { font-size: 8px; gap: 8px; }
  .hero-footnote-line { width: 14px; margin-inline: 1px; }
  .portfolio-intro-inner { gap: 35px; }
  .portfolio-intro-inner > p { min-width: 175px; padding-right: 25px; }
  .portfolio-wordmarks { gap: 12px; }
  .story-copy { padding-left: 60px; }
  .company-grid { row-gap: 45px !important; }
  .company-summary { min-height: 48px; }
  .page-intro-row { gap: 40px; }
  .contact-selection { padding-left: 45px; }
  .legal-content { margin-left: 40px; }
}

@media (max-width: 991.98px) {
  html { scroll-padding-top: 155px; }
  .landing-section, #privacy { scroll-margin-top: 20px; }
  .lang-el .hero h1 { font-size: clamp(1.6rem, 4vw, 2.5rem); }
  .navbar-collapse { order: 4; }
  .language-switcher { flex-basis: 100%; justify-content: flex-end; gap: 13px; margin: 12px 0 0; padding: 8px 0 0; border-left: 0; border-top: 1px solid var(--line); }
  .site-container { width: calc(100% - 64px); }
  .site-header .navbar { min-height: 86px; padding-block: 20px; }
  .navbar-collapse { padding-top: 25px; padding-bottom: 12px; }
  .navbar-brand { margin-right: 0; }
  .brand-logo { width: 250px; }
  .navbar-nav { gap: 5px; margin-bottom: 14px; }
  .navbar .nav-link { font-size: 14px; padding-block: 10px !important; }
  .nav-contact { padding-block: 10px; }
  .hero { gap: 28px; padding-top: 34px; padding-bottom: 40px; }
  .hero-copy { padding-top: 18px; }
  .hero h1 { font-size: clamp(1.75rem, 4.3vw, 2.7rem); }
  .hero .eyebrow { gap: 8px; font-size: 7px; letter-spacing: 0.12em; }
  .hero-description { font-size: 12px; }
  .hero-actions { gap: 19px; }
  .hero-footnote { flex-wrap: wrap; margin-top: 30px; }
  .hero-footnote-line, .hero-footnote-line + span { display: none; }
  .hero-visual { min-height: 530px; }
  .hero-image-label { bottom: 85px; left: 24px; font-size: 28px; }
  .hero-visual figcaption { margin-inline: 24px; width: calc(100% - 48px); flex-wrap: wrap; gap: 6px; font-size: 8px; }
  .portfolio-intro-inner { flex-direction: column; gap: 25px; padding-block: 28px; }
  .portfolio-intro-inner > p { border-right: none; padding: 0; text-align: center; }
  .portfolio-intro-inner > p > br { display: none; }
  .portfolio-intro-inner > p > strong { margin-left: 5px; }
  .portfolio-wordmarks { justify-content: space-around; }
  .section-padding { padding-block: 72px; }
  .section-heading { gap: 30px; }
  .section-heading-aside { max-width: 245px; }
  .story-visual { min-height: 360px; }
  .story-visual img { height: 360px; min-height: 0; }
  .story-copy { padding: 45px 0 0; }
  .story-copy > p:not(.eyebrow) { max-width: 600px; }
  .group-facts { max-width: 600px; }
  .heritage-preview { gap: 40px; padding-block: 65px; }
  .heritage-preview h2 { font-size: 32px; }
  .page-intro { padding-block: 55px; }
  .page-intro-row { grid-template-columns: 1fr; gap: 27px; }
  .lead-copy { font-size: 15px; }
  .page-intro-row .lead-copy { max-width: 600px; }
  .wide-landscape img { height: 320px; }
  .detail-hero-copy { padding-right: 24px; }
  .detail-hero-image { height: 430px; }
  .company-detail-hero { padding-bottom: 55px; }
  .breadcrumb-trail { margin-bottom: 35px; }
  .company-facts { display: grid; grid-template-columns: 120px 1fr; gap: 8px; }
  .company-facts dd { margin-bottom: 8px; }
  .service-list { padding-left: 24px; }
  .contact-selection { margin-top: 45px; padding-top: 35px; padding-left: 24px; border-left: none; border-top: 1px solid #ddd; }
  .contact-selection-intro p { max-width: 100%; }
  .contact-symbol { font-size: 37px; }
  .contact-banner h2 { font-size: 39px; }
  .contact-banner-action { max-width: 245px; }
  .legal-content { margin-left: 32px; }
}

@media (max-width: 767.98px) {
  .site-header .brand-logo { width: 215px; }
  .lang-el .hero h1 { font-size: clamp(1.65rem, 8.5vw, 3.3rem); }
  .company-card .company-summary { min-height: 0; }
  .company-card-actions { gap: 15px; }
  .landing-heritage { padding-bottom: 45px; }
  .landing-heritage .heritage-preview { padding-block: 48px 20px; }
  .heritage-fold-content .row { --bs-gutter-x: 24px; }
  .heritage-row h4 { font-size: 13px; }
  .heritage-row .closed-label { max-width: 100px; text-align: center; font-size: 8px; }
  .landing-contact { padding-block: 48px; }
  .contact-intro { margin-top: 24px; }
  .company-modal .modal-header { padding: 20px; }
  .company-modal .modal-body { padding-inline: 20px; }
  .company-modal .modal-footer { padding: 18px 20px; }
  .company-modal .modal-footer .btn { max-width: 100%; font-size: 10px; gap: 15px; }
  .modal-company-image { height: 190px; }
  .site-container { width: calc(100% - 40px); }
  .site-container > .row { --bs-gutter-x: 32px; }
  .hero { grid-template-columns: minmax(0, 1fr); gap: 34px; padding-top: 30px; padding-bottom: 30px; }
  .hero-copy { padding-top: 8px; padding-bottom: 0; }
  .hero .eyebrow { font-size: 8px; gap: 12px; }
  .hero h1 { font-size: clamp(1.85rem, 9.4vw, 3.8rem); margin-top: 25px; margin-bottom: 25px; }
  .hero-description { max-width: 350px; font-size: 13px; }
  .hero-actions { gap: 20px; }
  .hero-footnote { margin-top: 28px; font-size: 9px; }
  .hero-footnote-line { display: inline-block; width: 20px; margin-inline: 4px; }
  .hero-visual { min-height: 430px; }
  .hero-visual > img { object-position: 55% center; }
  .hero-image-label { font-size: 30px; bottom: 81px; }
  .hero-visual figcaption { flex-wrap: nowrap; font-size: 9px; }
  .portfolio-wordmarks { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 20px; }
  .brand-logo { width: 215px; }
  .portfolio-intro-inner { padding-block: 30px 36px; }
  .section-padding { padding-block: 60px; }
  .section-heading { display: block; margin-bottom: 32px; }
  .section-heading-aside { max-width: 360px; margin-top: 24px; }
  .section-heading > .text-link, .section-heading > .status-label { margin-top: 24px; }
  .section-heading-aside p { margin-bottom: 14px; }
  .company-image-link { aspect-ratio: 1.5; }
  .company-grid { row-gap: 38px !important; }
  .company-card-body { padding-top: 20px; }
  .company-card h3 { font-size: 34px; }
  .company-summary { min-height: 0; max-width: 450px; font-size: 13px; }
  .company-link { font-size: 12px; }
  .group-story { padding-block: 40px 50px; }
  .story-visual, .story-visual img { min-height: 0; height: 330px; }
  .story-copy { padding-top: 35px; }
  .group-facts { gap: 12px; }
  .group-facts dd { font-size: 15px; }
  .timeline-grid { grid-template-columns: 1fr; gap: 26px; }
  .heritage-preview { grid-template-columns: 1fr; gap: 16px; padding-block: 55px; }
  .heritage-preview h2 { margin-bottom: 10px; font-size: 34px; }
  .page-intro { padding-block: 43px; }
  .page-intro .eyebrow { margin-bottom: 22px; }
  .page-intro h1 { font-size: clamp(1.85rem, 7.4vw, 3.2rem); }
  .page-intro-row { gap: 24px; }
  .directory-grid .company-image-link { aspect-ratio: 1.5; }
  .directory-section { padding-bottom: 55px; }
  .directory-note { margin-top: 35px; line-height: 1.9; }
  .wide-landscape img { height: 290px; }
  .group-principles { padding-block: 55px; }
  .group-principles h2 { margin-bottom: 35px; }
  .principle p { max-width: 100%; }
  .group-company-list > a { grid-template-columns: 1fr 23px; gap: 4px 15px; padding-block: 18px; }
  .group-company-list > a > span:first-child { font-size: 29px; }
  .group-company-list > a > span:nth-child(2) { grid-row: 2; font-size: 11px; }
  .group-company-list > a > .arrow-icon { grid-column: 2; grid-row: 1 / 3; }
  .breadcrumb-trail { padding-top: 25px; margin-bottom: 35px; }
  .detail-hero-copy h1 { font-size: clamp(2.45rem, 10vw, 3.5rem); }
  .detail-headline { margin-top: 30px; font-size: 30px; }
  .detail-hero-image { height: 380px; }
  .company-detail-bottom { flex-direction: column; align-items: flex-start; padding-block: 30px; }
  .status-notice { gap: 15px; padding: 23px 20px; margin-bottom: 42px; }
  .status-notice h2 { line-height: 1.5; }
  .heritage-list-heading { display: block; }
  .heritage-list-heading h2 { margin-bottom: 10px; font-size: 29px; }
  .heritage-row { min-height: 90px; }
  .heritage-next { padding-block: 50px 65px; }
  .contact-router { padding-block: 45px; }
  .company-selector-controls { flex-direction: column; }
  .company-selector-controls .btn { width: fit-content; min-width: 150px; justify-content: space-between; }
  .contact-selection-intro h3 { font-size: 35px; }
  .contact-company { padding: 26px; }
  .contact-banner { padding-block: 46px; }
  .contact-banner-inner { flex-direction: column; align-items: flex-start; gap: 28px; }
  .contact-banner h2 { font-size: 30px; }
  .contact-banner-action { max-width: 100%; }
  .contact-banner-action p { margin-bottom: 16px; }
  .site-footer { padding-top: 45px; }
  .footer-main { padding-bottom: 40px; }
  .footer-bottom { flex-direction: column; gap: 16px; padding-block: 22px; font-size: 9px; }
  .footer-bottom > div { justify-content: space-between; }
  .legal-content { margin-left: 20px; padding-bottom: 45px; }
  .legal-content h2 { font-size: 19px; }
  .error-page { padding-block: 65px; }
}

@media (max-width: 359.98px) {
  .site-header .brand-logo { width: 180px; }
  .brand-logo { width: 180px; }
  .navbar-toggler { gap: 7px; padding: 9px 10px; }
  .hero-visual figcaption { flex-wrap: wrap; gap: 6px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}
