:root {
    --color-bg: #1a3823;
    --color-text: #212020;
    --color-gold: #b58957;
    --color-green: #3e7f50;
    /* Figma uses a 1440-wide desktop; getScale() uses its existing base. */
    --layout-scale: 1.3215277778;
    --rem: calc(1rem * var(--layout-scale));
}

*, *::before, *::after { box-sizing: border-box; }
html { font-size: 100%; }
body {
    margin: 0;
    background: var(--color-bg);
    color: #fff;
    font-family: "Montserrat", sans-serif;
    font-size: var(--rem);
    line-height: 1.2;
}
.loader{
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-color: #ffffff;
    z-index: 1100;
    display: flex;
    align-items: center;
    justify-content: center;
}
a { color: inherit; text-decoration: none; transition: color .2s ease, border-color .2s ease, opacity .2s ease; }
button { font: inherit; cursor: pointer; }
button, a { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible { outline: 2px solid var(--color-gold); outline-offset: calc(.25 * var(--rem)); }
picture, img { display: block; }
img { max-width: 100%; height: auto; }
.container { width: calc(80 * var(--rem)); max-width: calc(100% - 10 * var(--rem)); margin-inline: auto; }
.brand { display: block; flex-shrink: 0; }
.brand img { width: 100%; }
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: calc(3.125 * var(--rem));
    padding: calc(1.125 * var(--rem)) calc(2.34375 * var(--rem));
    border: 0;
    border-radius: calc(6.25 * var(--rem));
    background: var(--color-gold);
    color: #fff;
    font-size: calc(.875 * var(--rem));
    font-weight: 600;
    line-height: 1;
    text-align: center;
    white-space: nowrap;
    transition: background-color .2s ease, color .2s ease, box-shadow .2s ease;
}
.btn--arrow { position: relative; width: 100%; padding: calc(.3125 * var(--rem)); gap: calc(.625 * var(--rem)); }
.btn--arrow > span:first-child { flex: 1; padding-left: calc(2.0625 * var(--rem)); }
.btn__icon { display: flex; align-items: center; justify-content: center; flex-shrink: 0; width: calc(2.5 * var(--rem)); height: calc(2.5 * var(--rem)); border-radius: 50%; background: #fff; transition: background-color .2s ease; }
.btn__icon img { width: calc(1 * var(--rem)); height: calc(1 * var(--rem)); filter: brightness(0); transition: filter .2s ease; }
.btn--light { background-color: #fff; color: #1e1e1e; }
.btn--light > span:first-child { padding-left: calc(3.125 * var(--rem)); }
.btn--light .btn__icon { background-color: var(--color-gold); }
.btn--light .btn__icon img { filter: none; }
.btn--underline { padding: 0; border-bottom: 3px solid var(--color-gold); border-radius: 0; background: transparent; }
.btn--outline { background: transparent; color: #fff; box-shadow: inset 0 0 0 1px var(--color-gold); }
.btn--outline > span:first-child { padding-left: calc(3.125 * var(--rem)); }
.btn--outline .btn__icon { background: var(--color-gold); }
.btn--outline .btn__icon img { filter: none; }
.section { margin-block: calc(5 * var(--rem)); scroll-margin-top: calc(7.5 * var(--rem)); }
.section-label { margin: 0; color: rgba(255, 255, 255, .5); font-size: calc(.875 * var(--rem)); line-height: 1; text-transform: uppercase; }
.section-title { margin: 0; font-size: calc(2.5 * var(--rem)); font-weight: 700; line-height: 1.1; text-transform: uppercase; }
.text-content { font-size: var(--rem); line-height: 1.1875; }
.text-content p { margin: 0; }
.text-content p + p { margin-top: calc(1.1875 * var(--rem)); }
.tag { display: inline-flex; align-items: center; width: fit-content; max-width: 100%; padding: calc(.625 * var(--rem)); border: calc(.03125 * var(--rem)) solid currentColor; border-radius: calc(6.25 * var(--rem)); background: rgba(255, 255, 255, .16); font-size: calc(.875 * var(--rem)); font-weight: 600; line-height: 1; }

/* Shared header */
.site-header { position: fixed; top: 0; left: 0; right: 0; z-index: 20; padding-block: calc(1.5625 * var(--rem)); }
.site-header__inner, .site-header__bar, .site-header__actions { display: flex; align-items: center; }
.site-header__inner { justify-content: space-between; gap: calc(1.25 * var(--rem)); position: relative; }
.site-header__bar {
    position: relative;
    width: calc(59.6875 * var(--rem));
    height: calc(3.75 * var(--rem));
    padding: calc(.59375 * var(--rem)) calc(2.46875 * var(--rem));
    gap: calc(1.875 * var(--rem));
    border: calc(.03125 * var(--rem)) solid rgba(255,255,255,.37);
    border-radius: calc(6.25 * var(--rem));
    background: linear-gradient(176.35deg, rgba(255,255,255,.15) 50%, rgba(255,255,255,0) 303.73%);
}
.site-header__bar::before { content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; backdrop-filter: blur(calc(.625 * var(--rem))); }
.site-header__brand { width: calc(6.125 * var(--rem)); }
.site-header__address { display: flex; align-items: center; gap: calc(.625 * var(--rem)); color: #fff; }
.site-header__address img { width: var(--rem); height: var(--rem); flex-shrink: 0; }
.site-header__address span { width: calc(6.6875 * var(--rem)); font-size: calc(.625 * var(--rem)); line-height: 1.1; letter-spacing: calc(-.006875 * var(--rem)); }
.site-nav { display: flex; align-items: center; gap: calc(2.5 * var(--rem)); }
.site-nav a { font-size: calc(.875 * var(--rem)); line-height: 1; color: #fff; text-transform: uppercase; white-space: nowrap; }
.site-nav__main { display: flex; align-items: center; gap: calc(2.5 * var(--rem)); }
.nav-toggle { display: flex; align-items: center; justify-content: space-between; gap: calc(.5 * var(--rem)); padding: 0; border: 0; background: transparent; color: #fff; font-size: calc(.875 * var(--rem)); font-weight: 400; line-height: 1; text-align: left; text-transform: uppercase; }
.nav-toggle > img { width: var(--rem); height: var(--rem); object-fit: contain; flex-shrink: 0; }
.services-menu, .freight-menu { position: relative; }
.nav-panel {
    position: absolute;
    z-index: 3;
    display: flex;
    flex-direction: column;
    gap: calc(1.875 * var(--rem));
    width: calc(21.875 * var(--rem));
    padding: calc(1.5 * var(--rem)) calc(1.1875 * var(--rem));
    border: 1px solid #989898;
    border-radius: calc(1.875 * var(--rem));
    background: var(--color-bg);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(calc(-.5 * var(--rem)));
    transition: opacity .25s ease, transform .25s ease, visibility .25s;
}
.services-panel { top: calc(100% + 1.25 * var(--rem)); left: calc(-1.25 * var(--rem)); }
.services-panel::before { content: ""; position: absolute; bottom: 100%; left: 0; width: 100%; height: calc(1.25 * var(--rem)); }
.freight-panel { top: calc(-1.5 * var(--rem)); left: calc(100% + 1.25 * var(--rem)); }
.freight-panel::before { content: ""; position: absolute; right: 100%; top: 0; width: calc(1.25 * var(--rem)); height: 100%; }
.site-nav.is-services-open .services-panel, .site-nav.is-freight-open .freight-panel { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); }
.nav-panel a, .nav-panel .nav-toggle { width: 100%; white-space: normal; line-height: 1; }
.freight-toggle > img { transform: rotate(-90deg); }
.services-toggle, .freight-toggle, .nav-panel a { transition: color .2s ease; }
.site-nav.is-services-open .services-toggle, .site-nav.is-freight-open .freight-toggle { color: var(--color-gold); }
.nav-back, .site-nav__extras { display: none; }
.site-header__actions { gap: calc(1.25 * var(--rem)); }
.language { display: flex; align-items: center; justify-content: center; width: calc(3.75 * var(--rem)); height: calc(3.75 * var(--rem)); flex-shrink: 0; border: 1px solid #989898; border-radius: 50%; background: #1e1e1e; color: #fff; font-size: calc(.875 * var(--rem)); font-weight: 600; line-height: 1; }
.site-header__request { width: calc(12.3125 * var(--rem)); min-height: calc(3.75 * var(--rem)); }
.menu-toggle { display: none; }

/* Language dropdown: reuses .language on desktop and mobile. */
.language-picker { position: relative; flex-shrink: 0; }
.language-picker__toggle { padding: 0; }
.language-picker__options {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: calc(.625 * var(--rem));
    padding-top: calc(.625 * var(--rem));
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(calc(-.5 * var(--rem)));
    transition: opacity .25s ease, transform .25s ease, visibility .25s;
}
.language-picker.is-open .language-picker__options {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}
.language-picker .language { transition: background-color .2s ease, border-color .2s ease; }

/* Homepage hero; the shared header stays above its image. */
.hero {
    position: relative;
    isolation: isolate;
    min-height: 100vh;
    margin-top: 0;
    /*padding-block: calc(26.8125 * var(--rem)) calc(4.625 * var(--rem));*/
    padding-block: calc(100vh - 20rem) 4rem;
    color: #fff;
}
.hero__image::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(181deg, rgba(0, 0, 0, 0.00) 28.98%, #1A3823 99.46%);
}
.hero__image { position: absolute; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; }
.hero__image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero__content { display: grid; grid-template-columns: minmax(0, 847fr) minmax(0, 414fr); gap: calc(1.1875 * var(--rem)); }
.hero__copy { display: flex; flex-direction: column; gap: calc(1.25 * var(--rem)); }
.hero__title { width: calc(45.6875 * var(--rem)); max-width: 100%; margin: 0; font-size: calc(2.5 * var(--rem)); font-weight: 700; line-height: 1.1; text-transform: uppercase; }
.hero__subtitle { margin: 0; font-size: calc(1.25 * var(--rem)); font-weight: 500; line-height: 1.1; text-transform: uppercase; }
.hero__details { display: flex; flex-direction: column; justify-content: space-between; gap: calc(1.875 * var(--rem)); }
.hero__description { margin: 0; font-size: var(--rem); font-weight: 400; line-height: 1.2; }
.hero__description strong { font-weight: 700; }
.hero__actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(1.25 * var(--rem)); }
.hero__break-mobile { display: none; }

/* Homepage company overview */
.about { margin-top: calc(3.75 * var(--rem)); }
.about__inner { display: flex; flex-direction: column; gap: calc(2.5 * var(--rem)); }
.about__intro { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: calc(1.25 * var(--rem)); row-gap: calc(2.5 * var(--rem)); }
.about__heading { display: flex; flex-direction: column; gap: calc(1.25 * var(--rem)); }
.about__copy { grid-column: 2; grid-row: 1 / 3; align-self: end; }
.about__closing { display: block; }
.about__link { width: calc(12.3125 * var(--rem)); justify-self: start; }
.company-highlights { display: grid; grid-template-columns: minmax(0, 413fr) minmax(0, 414fr) minmax(0, 413fr); gap: calc(1.25 * var(--rem)); }
.about-card { position: relative; isolation: isolate; display: flex; flex-direction: column; justify-content: space-between; min-height: calc(22.5625 * var(--rem)); padding: calc(1.5 * var(--rem)); border-radius: calc(1.25 * var(--rem)); }
.about-card--gold { padding-bottom: calc(1.625 * var(--rem)); background: linear-gradient(180.127deg, rgba(181,137,87,.5) 48.204%, rgba(246,188,79,.5) 83.727%, rgba(255,255,255,.5) 99.873%), linear-gradient(179.974deg, #b58957 38.51%, #f6bc4f 120.32%); }
.about-card__caption { margin: 0; font-size: calc(1.25 * var(--rem)); font-weight: 500; line-height: 1.1; }
.about-card__summary, .about-card__benefits-copy { display: flex; flex-direction: column; align-items: flex-start; gap: calc(1.25 * var(--rem)); }
.about-card__value { margin: 0; font-size: calc(2.5 * var(--rem)); font-weight: 700; line-height: 1.1; text-transform: uppercase; }
.about-card__motto { margin: 0; font-size: var(--rem); font-weight: 700; line-height: 1.1875; }
.about-card--photo { justify-content: flex-end; }
.about-card__image { position: absolute; inset: 0; z-index: -1; overflow: hidden; border-radius: inherit; }
.about-card__image img { width: 100%; height: 100%; object-fit: cover; }
.about-card__image::after { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.4); }
.about-card__description { margin: 0; font-size: var(--rem); line-height: 1.1875; }
.about-card--benefits { background: #fff; color: #1e1e1e; }
.about-card--benefits .about-card__caption { font-weight: 700; }
.about-card--benefits .about-card__description { opacity: .5; }
.about-card__tags { display: flex; flex-direction: column; align-items: flex-start; gap: calc(.625 * var(--rem)); margin: 0; padding: 0; list-style: none; }
.company-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: calc(1.25 * var(--rem)); margin: 0; }
.company-stats__item { display: flex; flex-direction: column; gap: calc(1.25 * var(--rem)); min-height: calc(7.25 * var(--rem)); padding-bottom: calc(1.09375 * var(--rem)); border-bottom: calc(.03125 * var(--rem)) solid rgba(181,137,87,.4); }
.company-stats__label { min-height: calc(2.375 * var(--rem)); font-size: var(--rem); line-height: 1.1875; opacity: .5; }
.company-stats__item:first-child .company-stats__label { max-width: calc(14.9375 * var(--rem)); }
.company-stats__value { margin: 0; font-size: calc(2.25 * var(--rem)); font-weight: 700; line-height: 1.1111111111; text-transform: uppercase; }

/* Inner-page breadcrumbs and company hero */
.breadcrumbs { margin-bottom: calc(2.5 * var(--rem)); font-size: calc(.875 * var(--rem)); line-height: 1.2; text-transform: uppercase; }
.breadcrumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: calc(.625 * var(--rem)); margin: 0; padding: 0; list-style: none; }
.breadcrumbs li + li::before { content: ">"; margin-right: calc(.625 * var(--rem)); color: #f6bc4f; }
.about-page, .services-page { padding-top: calc(9.0625 * var(--rem)); }
.about-page__intro { display: flex; flex-direction: column; gap: calc(1.875 * var(--rem)); }
.about-hero { position: relative; isolation: isolate; min-height: calc(27.875 * var(--rem)); padding: calc(1.25 * var(--rem)); border-radius: calc(1.25 * var(--rem)); }
.about-hero__image { position: absolute; inset: 0; z-index: -1; overflow: hidden; border-radius: inherit; }
.about-hero__image img { width: 100%; height: 100%; object-fit: cover; }
.about-hero__card { display: flex; flex-direction: column; gap: calc(1.875 * var(--rem)); width: calc(31.375 * var(--rem)); max-width: 100%; padding: calc(1.5 * var(--rem)) calc(1.5 * var(--rem)) calc(1.875 * var(--rem)); border-radius: var(--rem); background: #fff; color: #1e1e1e; }
.about-hero__card .section-title { color: var(--color-bg); }

/* Services page introduction */
.services-intro { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; gap: calc(1.25 * var(--rem)); margin-bottom: calc(2.5 * var(--rem)); }
.services-intro__heading { display: flex; flex-direction: column; align-items: flex-start; gap: calc(2.5 * var(--rem)); min-width: 0; }
.services-intro__request { width: calc(12.3125 * var(--rem)); max-width: 100%; }
.services-intro__description { min-width: 0; line-height: 1.2; }
.services-intro__description p + p { margin-top: calc(1.2 * var(--rem)); }
.services-intro__mobile-break { display: none; }

/* Wide service item */
.long-service-item { position: relative; display: grid; grid-template-columns: minmax(0, 521fr) minmax(0, 738fr); align-items: center; gap: calc(1.3125 * var(--rem)); margin-bottom: calc(5 * var(--rem)); padding-block: calc(2.5 * var(--rem)); border-bottom: calc(.03125 * var(--rem)) solid rgba(255,255,255,.15); }
.long-service-item__image { height: calc(20.5 * var(--rem)); overflow: hidden; border-radius: calc(1.25 * var(--rem)); }
.long-service-item__image img { width: 100%; height: 100%; object-fit: cover; }
.long-service-item__body, .long-service-item__copy { display: flex; flex-direction: column; align-items: flex-start; gap: calc(2.5 * var(--rem)); min-width: 0; }
.long-service-item__copy { width: 100%; }
.long-service-item__description { width: calc(33.8125 * var(--rem)); max-width: 100%; line-height: 1.2; }
.long-service-item__description p + p { margin-top: calc(1.2 * var(--rem)); }
.long-service-item__button { width: calc(19 * var(--rem)); max-width: 100%; }

/* Liquid cargo service hero */
.service-type-hero { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; gap: calc(1.25 * var(--rem)); }
.service-type-hero__copy { display: flex; flex-direction: column; align-items: flex-start; gap: calc(1.875 * var(--rem)); min-width: 0; }
.service-type-hero__description { width: 100%; line-height: 1.2; }
.service-type-hero__request { width: calc(12.3125 * var(--rem)); max-width: 100%; }
.service-type-hero__image { height: calc(21.875 * var(--rem)); overflow: hidden; border-radius: calc(1.25 * var(--rem)); }
.service-type-hero__image img { width: 100%; height: 100%; object-fit: cover; }

/* Individual service hero */
.service-detail-hero { align-items: start; margin-bottom: calc(3.75 * var(--rem)); }
.service-detail-hero .service-type-hero__copy { gap: calc(2.5 * var(--rem)); }
.service-detail-hero__intro { display: flex; flex-direction: column; gap: calc(1.25 * var(--rem)); width: 100%; min-width: 0; }
.service-detail-hero .text-content p + p { margin-top: calc(1.25 * var(--rem)); }
.service-detail-hero .service-type-hero__request { width: calc(19.0625 * var(--rem)); }
.service-detail-hero .service-type-hero__image { height: calc(25.0625 * var(--rem)); }

/* Service client benefits and capabilities */
.service-benefits { display: grid; grid-template-columns: minmax(0, 413fr) minmax(0, 847fr); align-items: center; gap: calc(1.25 * var(--rem)); margin-bottom: calc(5 * var(--rem)); }
.service-benefits__image { width: calc(30.8125 * var(--rem)); max-width: none; margin-left: calc(-5 * var(--rem)); }
.service-benefits__image img { width: 100%; height: auto; }
.service-benefits__body, .service-benefits__group, .service-benefit { display: flex; flex-direction: column; min-width: 0; }
.service-benefits__body { gap: calc(2.5 * var(--rem)); }
.service-benefits__group { gap: calc(1.25 * var(--rem)); }
.service-benefits__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(1.25 * var(--rem)); }
.service-benefit { gap: calc(.625 * var(--rem)); }
.service-benefits__text { line-height: 1.2; }
.service-benefit__description { opacity: .7; }

/* Included service stages */
.service-includes { position: relative; isolation: isolate; display: flex; flex-direction: column; gap: calc(1.875 * var(--rem)); overflow: hidden; padding: calc(1.875 * var(--rem)); border-radius: calc(1.25 * var(--rem)); }
.service-includes__image { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.service-includes__image img { width: 100%; height: 100%; object-fit: cover; }
.service-includes__image::after { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.5); }
.service-includes__list { display: flex; flex-direction: column; gap: calc(1.25 * var(--rem)); margin: 0; padding: 0; list-style: none; }
.service-includes__item { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: calc(1.25 * var(--rem)); min-height: calc(7.125 * var(--rem)); padding: calc(1.25 * var(--rem)); border: 1px solid rgba(255,255,255,.5); border-radius: var(--rem); background: linear-gradient(174.577deg, rgba(255,255,255,.3) 50%, rgba(255,255,255,0) 303.73%); backdrop-filter: blur(calc(.625 * var(--rem))); }
.service-includes__number { font-size: calc(2.5 * var(--rem)); font-weight: 700; line-height: 1.1; }
.service-includes__copy { display: flex; flex-direction: column; gap: calc(.625 * var(--rem)); min-width: 0; }
.service-includes__text { line-height: 1.2; }

/* Service rolling stock models */
.model-list { display: flex; flex-direction: column; gap: 4rem; }
.model-card { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(1.375 * var(--rem)); }
.model-card__image { aspect-ratio: 629 / 447; overflow: hidden; border-radius: calc(1.25 * var(--rem)); background: #fff; }
.model-card__image img { width: 100%; height: 100%; object-fit: contain; }
.model-card__body { display: flex; flex-direction: column; justify-content: space-between; gap: calc(1.875 * var(--rem)); min-width: 0; }
.model-card__heading, .model-card__details, .model-card__specs { display: flex; flex-direction: column; gap: calc(1.25 * var(--rem)); }
.model-card__subtitle { margin: 0; font-size: calc(1.25 * var(--rem)); font-weight: 500; line-height: 1.1; opacity: .7; }
.model-card__specs { margin: 0; }
.model-card__spec { display: flex; align-items: center; justify-content: space-between; gap: var(--rem); }
.model-card__spec dt { font-size: var(--rem); font-weight: 700; line-height: 1.2; }
.model-card__spec dd { min-width: 0; margin: 0; font-size: calc(1.5 * var(--rem)); line-height: 1.1; text-align: right; }
.model-card__note { padding: calc(1.25 * var(--rem)); border-radius: var(--rem); background: linear-gradient(180.018deg, rgba(181,137,87,.5) 48.204%, rgba(246,188,79,.5) 83.727%, rgba(255,255,255,.5) 99.873%), var(--color-gold); line-height: 1.2; }

/* Partnership introduction */
.partnership-intro { display: flex; flex-direction: column; gap: calc(1.25 * var(--rem)); margin-bottom: calc(5 * var(--rem)); }
.partnership-hero { min-height: calc(26.875 * var(--rem)); }
.partnership-hero__card { gap: calc(1.25 * var(--rem)); min-height: calc(24.375 * var(--rem)); padding: calc(1.5 * var(--rem)); }
.partnership-hero__description { line-height: 1.2; opacity: .5; }
.partnership-hero__request { width: calc(19.0625 * var(--rem)); max-width: 100%; }
.partnership-audience { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: calc(1.25 * var(--rem)); }
.partnership-audience-card { display: flex; flex-direction: column; gap: calc(.625 * var(--rem)); min-width: 0; min-height: calc(15.5625 * var(--rem)); padding: calc(1.5625 * var(--rem)); border: 1px solid #989898; border-radius: calc(1.25 * var(--rem)); background: #1e1e1e; }
.partnership-audience-card:nth-child(odd) { background: linear-gradient(180.119deg, rgba(181,137,87,.5) 48.204%, rgba(246,188,79,.5) 83.727%, rgba(255,255,255,.5) 99.873%), linear-gradient(180.119deg, #b58957 48.204%, #dda952 99.873%); }
.partnership-audience-card__text { line-height: 1.2; }

/* Partnership transport directions */
.partnership-directions { display: grid; grid-template-columns: minmax(0, 632fr) minmax(0, 630fr); gap: calc(1.25 * var(--rem)); }
.partnership-directions__image { min-height: calc(37.3125 * var(--rem)); overflow: hidden; border-radius: calc(1.25 * var(--rem)); }
.partnership-directions__image img { width: 100%; height: 100%; object-fit: cover; }
.partnership-directions__body, .partnership-directions__list, .partnership-directions__item { display: flex; flex-direction: column; min-width: 0; }
.partnership-directions__body { gap: calc(2.5 * var(--rem)); }
.partnership-directions__list { gap: calc(1.25 * var(--rem)); }
.partnership-directions__item { gap: calc(.625 * var(--rem)); }
.partnership-directions__text { line-height: 1.2; }
.partnership-directions__mobile-break { display: none; }

/* Interactive partnership principles */
.partnership-principles { display: flex; flex-direction: column; gap: calc(2.5 * var(--rem)); }
.partnership-principles__body { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(1.25 * var(--rem)); }
.partnership-principles__choices { display: flex; flex-direction: column; gap: calc(1.25 * var(--rem)); min-width: 0; }
.partnership-principles__choice { display: flex; align-items: center; gap: calc(1.875 * var(--rem)); width: 100%; min-height: calc(5.5 * var(--rem)); padding: calc(1.25 * var(--rem)) calc(1.875 * var(--rem)); border: 0; border-radius: var(--rem); background: linear-gradient(180.02deg, rgba(181,137,87,.5) 48.204%, rgba(246,188,79,.5) 99.873%), var(--color-gold); color: #fff; font-size: calc(1.5 * var(--rem)); font-weight: 600; line-height: 1.1; text-align: left; transition: background-color .3s ease, color .3s ease, box-shadow .3s ease; }
.partnership-principles__choice img { flex-shrink: 0; width: calc(3 * var(--rem)); height: calc(3 * var(--rem)); object-fit: contain; filter: brightness(0) invert(1); transition: filter .3s ease; }
.partnership-principles__choice.active { background: #fff; color: #1e1e1e; box-shadow: calc(.25 * var(--rem)) calc(.25 * var(--rem)) calc(1.5625 * var(--rem)) #4c4c4e; }
.partnership-principles__choice.active img { filter: none; }
.partnership-principles__slider { min-width: 0; }
.partnership-principles__slider:not(.slick-initialized) .principle-card:not(:first-child) { display: none; }
.principle-card { position: relative; isolation: isolate; display: flex !important; align-items: flex-end; min-width: 0; height: calc(32.5 * var(--rem)); padding: calc(1.25 * var(--rem)); border-radius: calc(1.25 * var(--rem)); }
.principle-card__image { position: absolute; inset: 0; z-index: -1; overflow: hidden; border-radius: inherit; }
.principle-card__image img { width: 100%; height: 100%; object-fit: cover; }
.principle-card__image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 51.538%, rgba(0,0,0,.5) 90.096%); }
.principle-card__copy { display: flex; flex-direction: column; gap: calc(.625 * var(--rem)); width: 100%; min-width: 0; padding: calc(1.25 * var(--rem)); border: calc(.03125 * var(--rem)) solid rgba(255,255,255,.5); border-radius: calc(1.25 * var(--rem)); background: linear-gradient(rgba(0,0,0,.1), rgba(0,0,0,.1)), linear-gradient(161.793deg, rgba(255,255,255,.3) 50%, rgba(255,255,255,0) 303.73%); backdrop-filter: blur(calc(.625 * var(--rem))); }
.principle-card__text { line-height: 1.2; }

/* Partnership application form */
.partnership-form { position: relative; isolation: isolate; margin-bottom: 0; padding-block: calc(3.75 * var(--rem)) calc(6.25 * var(--rem)); border-radius: calc(1.875 * var(--rem)) calc(1.875 * var(--rem)) 0 0; }
.partnership-form__image { position: absolute; inset: 0; z-index: -1; overflow: hidden; border-radius: inherit; pointer-events: none; }
.partnership-form__image img { width: 100%; height: 100%; object-fit: cover; }
.partnership-form__image::after { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.4); }
.partnership-form__inner { display: flex; flex-direction: column; gap: calc(2.5 * var(--rem)); }
.partnership-form__heading, .partnership-form__fields { display: flex; flex-direction: column; gap: calc(1.25 * var(--rem)); }
.partnership-form__subtitle { margin: 0; font-size: calc(1.5 * var(--rem)); line-height: 1.1; text-transform: uppercase; }
.partnership-form__form { gap: calc(1.25 * var(--rem)); width: calc(39.375 * var(--rem)); max-width: 100%; }
.partnership-form .form-consent a { text-decoration: underline; text-underline-offset: calc(.125 * var(--rem)); }
.partnership-form__submit { align-self: flex-start; width: calc(19.0625 * var(--rem)); max-width: 100%; }

/* Railway operator services */
.operator-services { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; gap: calc(1.25 * var(--rem)); }
.operator-services__copy { display: flex; flex-direction: column; align-items: flex-start; gap: calc(2.5 * var(--rem)); min-width: 0; padding-right: calc(3.75 * var(--rem)); }
.operator-services__description { width: calc(32.625 * var(--rem)); max-width: 100%; line-height: 1.2; }
.operator-services__request { width: calc(19.0625 * var(--rem)); max-width: 100%; }
.operator-services__gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(0, 1fr)); gap: calc(1.25 * var(--rem)); min-width: 0; height: calc(26.8125 * var(--rem)); }
.operator-services__image { grid-column: 1; min-width: 0; min-height: 0; overflow: hidden; border-radius: calc(1.25 * var(--rem)); }
.operator-services__image--tall { grid-column: 2; grid-row: 1 / 3; }
.operator-services__image img { width: 100%; height: 100%; object-fit: cover; }

/* Company rolling stock specialization */
.specialization, .specialization__heading { display: flex; flex-direction: column; }
.specialization { gap: calc(1.875 * var(--rem)); }
.specialization__heading { gap: calc(1.25 * var(--rem)); }
.specialization__cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: calc(1.25 * var(--rem)); }
.specialization-card { display: flex; flex-direction: column; gap: calc(1.25 * var(--rem)); min-width: 0; margin: 0; }
.specialization-card__image { height: calc(18.6875 * var(--rem)); overflow: hidden; border-radius: calc(1.25 * var(--rem)); background: #fff; }
.specialization-card__image img { width: 100%; height: 100%; object-fit: contain; }
.specialization-card figcaption { font-size: calc(1.25 * var(--rem)); font-weight: 500; line-height: 1.1; }
.specialization-card__desktop-break { display: block; }

/* Transported cargo types */
.cargo-types, .cargo-types__heading { display: flex; flex-direction: column; }
.cargo-types { gap: calc(2.5 * var(--rem)); }
.cargo-types__heading { gap: calc(1.25 * var(--rem)); }
.cargo-types__cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(1.25 * var(--rem)); }
.cargo-card { display: flex; align-items: center; gap: calc(1.25 * var(--rem)); min-width: 0; min-height: calc(7.9375 * var(--rem)); padding: calc(1.5 * var(--rem)) calc(1.875 * var(--rem)); border-radius: calc(1.25 * var(--rem)); background: linear-gradient(180.029deg, rgba(181,137,87,.5) 48.204%, rgba(246,188,79,.5) 83.727%, rgba(255,255,255,.5) 99.873%), linear-gradient(179.994deg, #b58957 38.51%, #f6bc4f 120.32%); }
.cargo-card__icon { flex-shrink: 0; width: calc(3 * var(--rem)); height: calc(3 * var(--rem)); object-fit: contain; }
.cargo-card__copy { display: flex; flex-direction: column; gap: calc(.625 * var(--rem)); min-width: 0; }
.cargo-card__title { margin: 0; font-size: calc(1.5 * var(--rem)); font-weight: 600; line-height: 1.1; }
.cargo-card__text { margin: 0; font-size: var(--rem); line-height: 1.2; }
.cargo-types__mobile-break { display: none; }

/* Homepage services */
.services__inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: calc(2.5 * var(--rem)); }
.services__heading { display: flex; flex-direction: column; gap: calc(1.25 * var(--rem)); max-width: calc(46.125 * var(--rem)); }
.services__link { grid-column: 2; grid-row: 1; align-self: end; width: calc(12.3125 * var(--rem)); }
.service-cards { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: calc(1.25 * var(--rem)); }
.service-card { position: relative; isolation: isolate; display: flex; flex-direction: column; gap: calc(1.25 * var(--rem)); min-width: 0; border-bottom: calc(.03125 * var(--rem)) solid rgba(255,255,255,.15); scroll-margin-top: calc(7.5 * var(--rem)); }
.service-card__link::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: calc(1.25 * var(--rem)); }
.service-card__link:focus-visible { outline: none; }
.service-card__link:focus-visible::after { outline: 2px solid var(--color-gold); outline-offset: calc(.25 * var(--rem)); }
.service-card__request { position: relative; z-index: 2; }
.service-card__image { height: calc(19.3125 * var(--rem)); overflow: hidden; border-radius: calc(1.25 * var(--rem)); }
.service-card__image img { width: 100%; height: 100%; object-fit: cover; }
.service-card__body { display: flex; flex-direction: column; gap: calc(2.5 * var(--rem)); }
.service-card__title { margin: 0; font-size: calc(1.5 * var(--rem)); font-weight: 600; line-height: 1.1; }
.service-card__description { min-height: calc(6 * var(--rem)); margin: 0; font-size: var(--rem); line-height: 1.2; }
.service-card__actions { display: flex; flex-direction: column; gap: calc(.625 * var(--rem)); }

/* Homepage advantages accordion */
.advantages__inner { position: relative; isolation: isolate; min-height: calc(33.4375 * var(--rem)); border-radius: calc(1.25 * var(--rem)); }
.advantages__image { position: absolute; inset: 0; z-index: -1; overflow: hidden; border-radius: inherit; }
.advantages__image img { width: 100%; height: 100%; object-fit: cover; object-position: bottom; }
.advantages__image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180.061deg, rgba(181,137,87,.6) 48.204%, rgba(246,188,79,.6) 83.727%, rgba(255,255,255,.6) 99.873%); }
.advantages__heading { position: absolute; top: calc(12.125 * var(--rem)); left: calc(20.3125 * var(--rem)); display: flex; flex-direction: column; gap: calc(1.25 * var(--rem)); width: calc(39.375 * var(--rem)); text-align: center; }
.advantages__break { display: none; }
.advantage { position: absolute; padding-left: calc(3.125 * var(--rem)); isolation: isolate; border-radius: calc(6.25 * var(--rem)); transition: border-radius .25s ease, transform .25s ease; }
.advantage::before { content: ""; position: absolute; inset: 0 0 0 calc(3.125 * var(--rem)); z-index: -1; border-radius: inherit; background: rgba(255,255,255,.1); box-shadow: inset 0 0 0 calc(.03125 * var(--rem)) rgba(255,255,255,.5); backdrop-filter: blur(calc(.3125 * var(--rem))); transition: border-radius .25s ease; }
.advantage.is-active { border-radius: calc(1.25 * var(--rem)); }
.advantage--fleet { top: calc(5.8125 * var(--rem)); left: calc(6.75 * var(--rem)); width: calc(27.125 * var(--rem)); }
.advantage--fleet.is-active { transform: translateY(calc(-3.3125 * var(--rem))); }
.advantage--solutions { top: calc(2.5 * var(--rem)); left: calc(39.375 * var(--rem)); width: calc(28.3125 * var(--rem)); }
.advantage--partnership { top: calc(16.5625 * var(--rem)); left: calc(55.125 * var(--rem)); width: calc(22.6875 * var(--rem)); }
.advantage--geography { top: calc(24 * var(--rem)); left: calc(32.625 * var(--rem)); width: calc(22.3125 * var(--rem)); }
.advantage--geography.is-active { transform: translateY(calc(-2.5 * var(--rem))); }
.advantage--support { top: calc(18.8125 * var(--rem)); left: calc(2.4375 * var(--rem)); width: calc(24.125 * var(--rem)); }
.advantage__title { margin: 0; font-size: var(--rem); font-weight: 600; line-height: 1; }
.advantage__toggle { display: block; width: 100%; min-height: calc(3.25 * var(--rem)); padding: calc(1.125 * var(--rem)) calc(1.25 * var(--rem)); border: 0; border-radius: inherit; background: transparent; color: inherit; font: inherit; letter-spacing: calc(-.011 * var(--rem)); text-align: center; }
.advantage__label { display: block; }
.advantage__icon { position: absolute; top: 0; left: 0; display: flex; align-items: center; justify-content: center; width: calc(3.125 * var(--rem)); height: calc(3.125 * var(--rem)); border: 1px solid #989898; border-radius: 50%; background: #1e1e1e; }
.advantage__icon img { width: calc(1.5 * var(--rem)); height: calc(1.5 * var(--rem)); object-fit: contain; transition: transform .25s ease; }
.advantage.is-active .advantage__icon img { transform: rotate(45deg); }
.advantage__panel { display: none; padding-inline: calc(1.25 * var(--rem)); font-size: calc(.875 * var(--rem)); line-height: 1; letter-spacing: calc(-.009625 * var(--rem)); text-align: center; }
.advantage.is-active .advantage__panel { display: block; }
.advantage__panel p { margin: 0; padding-top: calc(.125 * var(--rem)); padding-bottom: calc(1.125 * var(--rem)); opacity: .8; }

/* Homepage transportation geography */
.routes__inner { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; gap: calc(1.25 * var(--rem)); }
.routes__image { height: calc(28.0625 * var(--rem)); overflow: hidden; border-radius: calc(1.25 * var(--rem)); }
.routes__image img { width: 100%; height: 100%; object-fit: cover; }
.routes__content { display: flex; flex-direction: column; gap: calc(2.5 * var(--rem)); min-width: 0; padding-right: calc(3.75 * var(--rem)); }
.routes__list { display: flex; flex-direction: column; gap: calc(2.5 * var(--rem)); }
.routes__item { display: flex; flex-direction: column; gap: calc(.625 * var(--rem)); }
.routes__title { margin: 0; font-size: calc(1.5 * var(--rem)); font-weight: 600; line-height: 1.1; }
.routes__break-mobile { display: none; }

/* Shared slider controls and transportation steps */
.slider-controls { display: flex; justify-content: center; gap: calc(1.25 * var(--rem)); }
.slider-controls .slick-arrow { position: static; display: flex; align-items: center; justify-content: center; flex-shrink: 0; width: calc(3.125 * var(--rem)); height: calc(3.125 * var(--rem)); padding: 0; border: 0; border-radius: 50%; background: #fff; transform: none; transition: opacity .2s ease, background-color .2s ease; }
.slider-controls .slick-arrow img { width: calc(1.5 * var(--rem)); height: calc(1.5 * var(--rem)); object-fit: contain; }
.slider-controls .slick-arrow.slick-disabled { opacity: .5; cursor: default; }
.steps { overflow: hidden; }
.steps__inner { display: flex; flex-direction: column; gap: calc(1.75 * var(--rem)); }
.steps__header { display: flex; flex-direction: column; align-items: center; gap: calc(1.875 * var(--rem)); }
.steps__heading { display: flex; flex-direction: column; gap: calc(1.25 * var(--rem)); width: calc(39.375 * var(--rem)); max-width: 100%; text-align: center; }
.steps__heading .section-label { font-weight: 500; line-height: 1.1; }
.steps__heading .section-title { font-size: calc(2.25 * var(--rem)); }
.steps__slider .slick-list { overflow: visible; }
.steps__slider .slick-track { display: flex; }
.steps__slider:not(.slick-initialized) { display: flex; }
.step-card { display: flex !important; flex-direction: column; justify-content: space-between; flex-shrink: 0; width: calc(25.8125 * var(--rem)); min-height: calc(16.875 * var(--rem)); height: auto; margin-right: calc(1.25 * var(--rem)); padding: calc(1.25 * var(--rem)) calc(1.25 * var(--rem)) calc(1.875 * var(--rem)); border-radius: calc(1.25 * var(--rem)); background: #fff; color: #1e1e1e; transition: background-color .3s ease, color .3s ease, box-shadow .3s ease; }
.step-card.slick-current { background: #1e1e1e; color: #fff; box-shadow: inset 0 0 0 1px #989898; }
.step-card__number { display: inline-flex; align-items: center; justify-content: center; align-self: flex-start; min-width: calc(6.4375 * var(--rem)); min-height: calc(2.5 * var(--rem)); padding: calc(.625 * var(--rem)) calc(1.875 * var(--rem)); border-radius: calc(6.25 * var(--rem)); background: var(--color-gold); color: #fff; font-size: calc(.875 * var(--rem)); font-weight: 600; line-height: 1; }
.step-card__copy { display: flex; flex-direction: column; gap: calc(.625 * var(--rem)); margin-top: calc(1.25 * var(--rem)); }
.step-card__title { margin: 0; font-size: calc(1.5 * var(--rem)); font-weight: 600; line-height: 1.1; }
.step-card__text { margin: 0; font-size: var(--rem); line-height: 1.2; }

/* Shared project selection and cards */
.cases { overflow: hidden; }
.cases__inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: calc(2.5 * var(--rem)); }
.cases__heading { display: flex; flex-direction: column; gap: calc(1.25 * var(--rem)); }
.cases__heading .section-label { font-weight: 500; line-height: 1.1; }
.cases__heading .section-title { font-size: calc(2.25 * var(--rem)); }
.cases__all { grid-column: 2; grid-row: 1; align-self: end; width: calc(12.3125 * var(--rem)); }
.cases__content { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(1.25 * var(--rem)); }
.cases__choices { display: flex; flex-direction: column; gap: calc(1.25 * var(--rem)); }
.cases__choice { display: flex; align-items: stretch; gap: calc(1.25 * var(--rem)); width: 100%; padding: 0; border: 0; border-radius: var(--rem); background: transparent; color: #fff; text-align: left; transition: filter .25s ease; }
.cases__thumbnail { flex-shrink: 0; width: calc(5.5 * var(--rem)); height: calc(5.5 * var(--rem)); overflow: hidden; border-radius: calc(.8125 * var(--rem)); }
.cases__thumbnail img { width: 100%; height: 100%; object-fit: cover; }
.cases__choice-label { display: flex; align-items: center; flex: 1; min-width: 0; padding: calc(1.25 * var(--rem)) calc(1.875 * var(--rem)); border-radius: var(--rem); background: linear-gradient(180.025deg, rgba(181,137,87,.5) 48.204%, rgba(246,188,79,.5) 99.873%), var(--color-gold); font-size: calc(1.5 * var(--rem)); font-weight: 600; line-height: 1.1; transition: color .25s ease, background-color .25s ease; }
.cases__choice.is-active { filter: drop-shadow(calc(.25 * var(--rem)) calc(.25 * var(--rem)) calc(1.5625 * var(--rem)) #4c4c4e); }
.cases__choice.is-active .cases__choice-label { background: #fff; color: #000; }
.cases__slider { min-width: 0; }
.cases__slider .slick-list { border-radius: calc(1.25 * var(--rem)); }
.cases__slider:not(.slick-initialized) .case-card:not(:first-child) { display: none; }
.case-card { position: relative; isolation: isolate; display: flex !important; align-items: flex-end; height: calc(32.5 * var(--rem)); padding: calc(1.25 * var(--rem)); border-radius: calc(1.25 * var(--rem)); }
.case-card__image { position: absolute; inset: 0; z-index: -1; overflow: hidden; border-radius: inherit; }
.case-card__image img { width: 100%; height: 100%; object-fit: cover; }
.case-card__link { position: absolute; top: calc(1.25 * var(--rem)); right: calc(1.25 * var(--rem)); width: calc(3.125 * var(--rem)); height: calc(3.125 * var(--rem)); background: var(--color-gold); transition: background-color .2s ease; }
.case-card__link img { width: calc(1.25 * var(--rem)); height: calc(1.25 * var(--rem)); filter: none; }
.case-card__copy { display: flex; flex-direction: column; gap: calc(.625 * var(--rem)); width: calc(24.5625 * var(--rem)); max-width: 100%; min-height: calc(10.875 * var(--rem)); padding: calc(1.25 * var(--rem)); border: calc(.03125 * var(--rem)) solid rgba(255,255,255,.5); border-radius: calc(1.25 * var(--rem)); background: linear-gradient(rgba(0,0,0,.05), rgba(0,0,0,.05)), linear-gradient(155.78deg, rgba(255,255,255,.3) 50%, rgba(255,255,255,0) 303.73%); backdrop-filter: blur(calc(.625 * var(--rem))); }
.case-card__title { margin: 0; font-size: calc(1.5 * var(--rem)); font-weight: 600; line-height: 1.1; }
.case-card__text { margin: 0; font-size: var(--rem); line-height: 1.2; }

/* Company photo gallery */
.slider-controls--gold .slick-arrow { width: calc(5.5 * var(--rem)); border-radius: calc(6.25 * var(--rem)); background: var(--color-gold); }
.gallery, .gallery__heading { display: flex; flex-direction: column; }
.gallery { gap: calc(1.875 * var(--rem)); }
.gallery__heading { gap: calc(1.25 * var(--rem)); max-width: calc(59.6875 * var(--rem)); }
.gallery__body { position: relative; min-width: 0; }
.gallery__viewport { margin-inline: calc(6.75 * var(--rem)); overflow: hidden; }
.gallery__slider .slick-list { overflow: visible; }
.gallery__slider:not(.slick-initialized) { display: flex; }
.gallery-slide { display: flex !important; align-items: center; justify-content: center; width: calc(23.71875 * var(--rem)); height: calc(33.125 * var(--rem)); }
.gallery-slide__image { flex-shrink: 0; width: calc(19.0625 * var(--rem)); height: calc(25.125 * var(--rem)); overflow: hidden; border-radius: calc(1.25 * var(--rem)); transition: width .4s ease, height .4s ease; }
.gallery-slide__image img { width: 100%; height: 100%; object-fit: cover; }
.gallery-slide.slick-center .gallery-slide__image { width: calc(25.875 * var(--rem)); height: calc(33.125 * var(--rem)); }
.gallery__controls { position: absolute; top: 50%; left: 0; right: 0; justify-content: space-between; transform: translateY(-50%); pointer-events: none; }
.gallery__controls .slick-arrow { pointer-events: auto; }

/* Company approach */
.approach, .approach__heading, .approach__column { display: flex; flex-direction: column; }
.approach { gap: calc(2.5 * var(--rem)); }
.approach__heading, .approach__column { gap: calc(1.25 * var(--rem)); }
.approach__grid { display: grid; grid-template-columns: minmax(0, 413fr) minmax(0, 847fr); gap: calc(1.25 * var(--rem)); }
.approach__column { min-width: 0; }
.approach__row { display: grid; grid-template-columns: minmax(0, 305fr) minmax(0, 522fr); gap: calc(1.25 * var(--rem)); }
.approach-card { display: flex; flex-direction: column; justify-content: space-between; gap: calc(1.25 * var(--rem)); min-width: 0; padding: calc(1.5625 * var(--rem)); border: 1px solid #989898; border-radius: calc(1.25 * var(--rem)); background: #1e1e1e; }
.approach-card--stability { min-height: calc(15.125 * var(--rem)); }
.approach-card--control { min-height: calc(14.0625 * var(--rem)); }
.approach-card--responsibility { min-height: calc(12.875 * var(--rem)); }
.approach-card__icon { flex-shrink: 0; width: calc(3 * var(--rem)); height: calc(3 * var(--rem)); object-fit: contain; }
.approach-card__copy { display: flex; flex-direction: column; gap: calc(.625 * var(--rem)); }
.approach-card__title { margin: 0; font-size: calc(1.5 * var(--rem)); font-weight: 600; line-height: 1.1; }
.approach-card__text { margin: 0; font-size: var(--rem); line-height: 1.2; }
.approach__image { height: calc(16.3125 * var(--rem)); overflow: hidden; border-radius: calc(1.25 * var(--rem)); }
.approach__image img { width: 100%; height: 100%; object-fit: cover; }
.approach-card--development { justify-content: flex-end; min-height: calc(16.3125 * var(--rem)); border: 0; background: linear-gradient(180.073deg, rgba(181,137,87,.5) 48.204%, rgba(246,188,79,.5) 83.727%, rgba(255,255,255,.5) 99.873%), linear-gradient(179.985deg, #b58957 38.51%, #f6bc4f 120.32%); }
.approach__mobile-break { display: none; }

/* Project detail */
.case-detail, .case-detail__body, .case-detail__group, .case-detail__facts, .case-detail__fact, .case-detail__stages { display: flex; flex-direction: column; min-width: 0; }
.case-detail, .case-detail__body { gap: calc(2.5 * var(--rem)); }
.case-detail__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(1.25 * var(--rem)); }
.case-detail__group, .case-detail__facts, .case-detail__stages { gap: calc(1.25 * var(--rem)); }
.case-detail__fact { gap: calc(.625 * var(--rem)); }
.case-detail__facts, .case-detail__stages { margin: 0; padding: 0; list-style: none; }
.case-detail__fact dd { margin: 0; font-size: var(--rem); line-height: 1.2; }
.case-detail__text { line-height: 1.2; }
.case-detail__image { position: relative; min-width: 0; min-height: calc(32.6875 * var(--rem)); overflow: hidden; border-radius: calc(1.25 * var(--rem)); }
.case-detail__image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.case-detail__image--route { min-height: calc(32.5625 * var(--rem)); }

/* Projects catalogue */
.projects-page .breadcrumbs { margin-bottom: calc(3.75 * var(--rem)); }
.projects-intro { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: calc(1.25 * var(--rem)); margin-bottom: calc(2.5 * var(--rem)); }
.projects-intro .section-title { font-size: calc(2.25 * var(--rem)); }
.projects-intro__description { line-height: 1.2; }
.projects-catalog { display: flex; flex-direction: column; gap: calc(2.5 * var(--rem)); margin-bottom: calc(5 * var(--rem)); }
.projects-filters { display: flex; align-items: center; gap: calc(1.25 * var(--rem)); min-width: 0; overflow-x: auto; scrollbar-width: none; }
.projects-filters::-webkit-scrollbar { display: none; }
.projects-filters__button { flex-shrink: 0; background: transparent; color: rgba(255,255,255,.8); }
.projects-filters__button.active { background: var(--color-gold); color: #fff; }
.projects-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: calc(1.25 * var(--rem)); }
.project-card { min-width: 0; }
.project-card .case-card__copy { justify-content: space-between; width: 100%; min-height: calc(12.8125 * var(--rem)); }
.project-card[hidden] { display: none !important; }

/* Shared partners slider */
.partners { overflow: hidden; }
.partners__inner { display: flex; flex-direction: column; align-items: center; gap: calc(1.875 * var(--rem)); }
.partners__slider { width: 100%; }
.partners__slider:not(.slick-initialized) { display: flex; gap: calc(1.25 * var(--rem)); }
.partners__slider .slick-list { overflow: visible; }
.partners__slider .slick-track { display: flex; align-items: center; }
.partners__slide { flex-shrink: 0; width: calc(15 * var(--rem)); margin-inline: calc(.625 * var(--rem)); }
.partners__logo { display: flex; align-items: center; justify-content: center; height: calc(6.875 * var(--rem)); padding: calc(1.25 * var(--rem)); border-radius: var(--rem); background: #fff; }
.partners__logo img { width: 100%; height: 100%; object-fit: contain; }
.partners__request { width: calc(19 * var(--rem)); max-width: 100%; }

/* Shared request form and custom select */
.request__inner { display: grid; grid-template-columns: minmax(0, 847fr) minmax(0, 413fr); gap: calc(1.4375 * var(--rem)); }
.request__main, .request-form { display: flex; flex-direction: column; gap: calc(2.5 * var(--rem)); min-width: 0; }
.request__main > .section-title { font-size: calc(2.25 * var(--rem)); }
.request-form__fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(1.25 * var(--rem)); }
.form-field { display: flex; flex-direction: column; gap: calc(.625 * var(--rem)); min-width: 0; margin: 0; padding: 0; border: 0; }
.form-field__label { display: block; padding: 0; font-size: var(--rem); font-weight: 600; line-height: 1; letter-spacing: calc(-.011 * var(--rem)); }
.form-field__required { color: #cb3d3d; }
.form-control { display: block; width: 100%; min-width: 0; height: calc(3.75 * var(--rem)); padding: calc(1.25 * var(--rem)); border: 0; border-radius: calc(6.25 * var(--rem)); background: #fff; color: #1e1e1e; font: inherit; font-size: var(--rem); font-weight: 600; line-height: 1.2; letter-spacing: calc(-.011 * var(--rem)); transition: box-shadow .2s ease; }
.form-control::placeholder { color: rgba(0,0,0,.4); opacity: 1; }
.form-control:focus-visible { outline: 2px solid var(--color-gold); outline-offset: calc(.1875 * var(--rem)); }
.form-control[aria-invalid="true"] { box-shadow: inset 0 0 0 2px #cb3d3d; }
textarea.form-control { min-height: calc(3.75 * var(--rem)); resize: vertical; }
.form-field--direction > legend { float: left; width: 100%; margin-bottom: 0; }
.request-form__direction { display: flex; align-items: center; gap: calc(.625 * var(--rem)); width: 100%; }
.request-form__direction .form-control { flex: 1; }
.request-form__direction > img { flex-shrink: 0; width: calc(1.5 * var(--rem)); height: calc(1.5 * var(--rem)); object-fit: contain; }
.request-form__comment { grid-column: 1 / -1; }
.custom-select { position: relative; }
.custom-select.is-open { z-index: 5; }
.custom-select__toggle { display: flex; align-items: center; justify-content: space-between; gap: calc(.625 * var(--rem)); text-align: left; }
.custom-select__value { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: rgba(0,0,0,.4); }
.custom-select.has-value .custom-select__value { color: #1e1e1e; }
.custom-select__toggle > img { flex-shrink: 0; width: calc(1.25 * var(--rem)); height: calc(1.25 * var(--rem)); object-fit: contain; transition: transform .2s ease; }
.custom-select.is-open .custom-select__toggle > img { transform: rotate(180deg); }
.custom-select__menu { position: absolute; top: calc(100% + .5 * var(--rem)); left: 0; right: 0; z-index: 1; max-height: calc(15 * var(--rem)); overflow-y: auto; margin: 0; padding: calc(.5 * var(--rem)); border: 1px solid var(--color-gold); border-radius: calc(1.25 * var(--rem)); background: #fff; color: #1e1e1e; list-style: none; box-shadow: 0 calc(.5 * var(--rem)) calc(1.5 * var(--rem)) rgba(0,0,0,.15); opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(calc(-.25 * var(--rem))); transition: opacity .2s ease, transform .2s ease, visibility .2s ease; }
.custom-select.is-open .custom-select__menu { opacity: 1; visibility: visible; pointer-events: auto; transform: none; }
.custom-select__option { margin-bottom: 2px;padding: calc(.875 * var(--rem)) calc(.75 * var(--rem)); border-radius: calc(.75 * var(--rem)); font-size: var(--rem); line-height: 1.25; cursor: pointer; transition: background-color .2s ease, color .2s ease; }
.custom-select__option:hover, .custom-select__option.is-highlighted, .custom-select__option[aria-selected="true"] { background: var(--color-gold); color: #fff; }
.form-field__error { color: #ffaaaa; font-size: calc(.875 * var(--rem)); line-height: 1.2; }
.request-form__footer { display: grid; grid-template-columns: minmax(0, 522fr) minmax(0, 305fr); align-items: start; gap: calc(1.25 * var(--rem)); }
.form-consent { position: relative; display: flex; align-items: flex-start; gap: calc(.625 * var(--rem)); font-size: var(--rem); line-height: 1.2; cursor: pointer; }
.form-consent__input { position: absolute; top: 0; left: 0; width: calc(1.25 * var(--rem)); height: calc(1.25 * var(--rem)); margin: 0; opacity: 0; }
.form-consent__box { position: relative; flex-shrink: 0; width: calc(1.25 * var(--rem)); height: calc(1.25 * var(--rem)); border: 1px solid var(--color-gold); border-radius: calc(.3125 * var(--rem)); background: #fff; }
.form-consent__input:checked + .form-consent__box { background: var(--color-gold); }
.form-consent__input:checked + .form-consent__box::after { content: ""; position: absolute; top: 15%; left: 32%; width: 30%; height: 55%; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.form-consent__input:focus-visible + .form-consent__box { outline: 2px solid var(--color-gold); outline-offset: calc(.1875 * var(--rem)); }
.request__aside { display: flex; flex-direction: column; justify-content: space-between; gap: calc(1.25 * var(--rem)); }
.request__note { display: flex; align-items: flex-start; gap: calc(1.25 * var(--rem)); }
.request__note-icon { display: flex; align-items: center; justify-content: center; flex-shrink: 0; width: calc(3 * var(--rem)); height: calc(3 * var(--rem)); border-radius: calc(.625 * var(--rem)); background: var(--color-gold); }
.request__note-icon img { width: calc(1.5 * var(--rem)); height: calc(1.5 * var(--rem)); object-fit: contain; }
.request__note p { margin: 0; font-size: var(--rem); line-height: 1.2; }
.request__image { height: calc(17.1875 * var(--rem)); overflow: hidden; border-radius: calc(1.25 * var(--rem)); }
.request__image img { width: 100%; height: 100%; object-fit: cover; }

/* Shared contacts and office map */
.contacts__inner { display: flex; flex-direction: column; gap: calc(1.25 * var(--rem)); }
.contacts__cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: calc(1.25 * var(--rem)); }
.contact-card { position: relative; isolation: isolate; min-width: 0; min-height: calc(14.375 * var(--rem)); margin: 0; padding: calc(1.5 * var(--rem)); border: 1px solid var(--color-gold); border-radius: calc(1.25 * var(--rem)); color: #fff; font-size: calc(1.25 * var(--rem)); font-style: normal; font-weight: 700; line-height: 1.1; text-transform: uppercase; transition: opacity .2s ease; }
.contact-card--gold { background: linear-gradient(180.11deg, rgba(181,137,87,.5) 48.204%, rgba(246,188,79,.5) 83.727%, rgba(255,255,255,.5) 99.873%), linear-gradient(180.11deg, #b58957 48.204%, #dda952 99.873%); }
.contact-card--photo { border-color: #989898; }
.contact-card__links { display: flex; flex-direction: column; align-items: flex-start; }
.contact-card__image { position: absolute; inset: 0; z-index: -1; overflow: hidden; border-radius: inherit; }
.contact-card__image img { width: 100%; height: 100%; object-fit: cover; object-position: bottom; }
.contact-card__image::after { content: ""; position: absolute; inset: 0; background: rgba(33,32,32,.7); }
.contacts__map { height: calc(21.875 * var(--rem)); overflow: hidden; border-radius: calc(1.25 * var(--rem)); background: #e5e5e5; }
.contacts__map iframe { display: block; width: 100%; height: 100%; border: 0; filter: grayscale(1); }

/* Shared footer */
.site-footer { padding-block: calc(2.5 * var(--rem)) calc(3.3125 * var(--rem)); border-radius: calc(2.5 * var(--rem)) calc(2.5 * var(--rem)) 0 0; background: #fff; color: var(--color-text); }
.site-footer__inner { display: grid; grid-template-columns: minmax(0, 630fr) minmax(0, 305fr) minmax(0, 305fr); gap: calc(1.25 * var(--rem)); }
.site-footer__navigation, .site-footer__actions { display: flex; flex-direction: column; justify-content: space-between; }
.site-footer__title { margin: 0 0 calc(1.25 * var(--rem)); font-size: var(--rem); line-height: 1.1875; font-weight: 700; color: var(--color-green); text-transform: uppercase; }
.site-footer__contacts .site-footer__title { line-height: 1; }
.site-footer__links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(1.25 * var(--rem)); }
.site-footer__links > div, .site-footer__legal { display: flex; flex-direction: column; align-items: flex-start; gap: calc(1.25 * var(--rem)); }
.site-footer__links a, .site-footer__address, .site-footer__legal { font-size: var(--rem); font-weight: 600; letter-spacing: calc(-.011 * var(--rem)); line-height: 1.1875; text-transform: uppercase; }
.site-footer__brand { width: calc(12.3125 * var(--rem)); margin-top: calc(2.5 * var(--rem)); }
.site-footer__contacts { display: flex; flex-direction: column; gap: calc(5 * var(--rem)); }
.site-footer__address { display: flex; flex-direction: column; gap: calc(1.25 * var(--rem)); font-style: normal; }
.site-footer__address p { margin: 0; }
.site-footer__legal { color: var(--color-green); }
.site-footer__direct { display: flex; flex-direction: column; gap: calc(1.25 * var(--rem)); padding-top: calc(2.25 * var(--rem)); }
.site-footer__direct a { display: flex; align-items: center; height: calc(2.5 * var(--rem)); border-bottom: 3px solid var(--color-green); font-size: calc(1.25 * var(--rem)); font-weight: 600; letter-spacing: calc(-.01375 * var(--rem)); line-height: 1.2; text-transform: uppercase; }

.content p, .content ul, .content ol, .content table, .content img{
    margin-bottom: 1rem;
}
.content > :last-child{
    margin-bottom: 0;
}
.content > :first-child{
    padding-top: 0;
}
.content h1, .content h2{
    font-size: calc(2.5 * var(--rem));
    font-weight: 700;
    line-height: 1.1;
    text-transform: uppercase;
    margin-bottom: 1rem;
    padding-top: 1rem;
}
.content h3{
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.1;
    text-transform: uppercase;
    margin-bottom: 1rem;
    padding-top: 1rem;
}
.content h4{
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.1;
    text-transform: uppercase;
    margin-bottom: 1rem;
    padding-top: 1rem;
}
.content h5, .content h6{
    font-size: 1.1rem;
    font-weight: 700;
    line-height: 1.1;
    text-transform: uppercase;
    margin-bottom: 1rem;
    padding-top: 1rem;
}

/* Desktop hover: button variants follow the Figma UI kit. */
@media (width > 992px) and (hover: hover) and (pointer: fine) {
    a[href]:hover, .nav-toggle:hover {
        color: var(--color-gold);
    }

    .brand:hover {
        opacity: .8;
    }

    a.btn:hover, button.btn:hover {
        background-color: #916e46;
        color: #fff;
    }

    a.btn--arrow:hover, button.btn--arrow:hover {
        background-color: transparent;
        color: #1e1e1e;
        box-shadow: inset 0 0 0 1px var(--color-gold);
    }

    .btn--arrow:hover .btn__icon {
        background-color: var(--color-gold);
    }

    .btn--arrow:hover .btn__icon img {
        filter: brightness(0) invert(1);
    }

    a.btn--light:hover, button.btn--light:hover {
        background-color: var(--color-gold);
        color: #fff;
        box-shadow: none;
    }

    .service-card__link:hover { color: inherit; }
    a.project-card[href]:hover { color: #fff; }

    a.btn--outline:hover, button.btn--outline:hover,
    .service-card:has(.service-card__link:hover) .btn--outline,
    .service-card:has(.service-card__link:focus-visible) .btn--outline,
    .long-service-item:has(.service-card__link:hover) .btn--outline,
    .long-service-item:has(.service-card__link:focus-visible) .btn--outline {
        background-color: var(--color-gold);
        color: #fff;
    }

    a.btn--underline:hover, button.btn--underline:hover {
        background-color: transparent;
        color: var(--color-gold);
    }

    .site-footer__direct a:hover {
        border-color: var(--color-gold);
    }

    .contact-card a:hover { color: #fff; opacity: .85; }

    .language-picker .language:hover {
        background-color: var(--color-gold);
        border-color: var(--color-gold);
        color: #fff;
    }
}
