:root {
    --color-primary: #346ef7;
    --color-text: #000;
    --color-white: #fff;
}
html { font-size: 16px; }
body { padding-top: 0; color: var(--color-text); }
.container { width: 80rem; max-width: calc(100% - 10rem); margin-inline: auto; padding: 0; }
.btn { transition: color .2s, background-color .2s, border-color .2s; display: inline-flex; align-items: center; justify-content: center; min-height: 3.125rem; padding: .625rem; background: var(--color-primary); color: var(--color-white); font: 700 .875rem/1.2 "Inter", sans-serif; letter-spacing: -.009625rem; }
.btn:hover { background: #2458d4; color: var(--color-white); }
.site-header { position: absolute; top: 1.25rem; z-index: 15; color: var(--color-white); }
.header-bar { position: relative; display: flex; align-items: center; justify-content: space-between; min-height: 5.556rem; padding: .9375rem 1.1875rem; border: .0625rem solid var(--color-white); border-radius: .625rem; background: rgb(255 255 255 / 10%); backdrop-filter: blur(.3125rem); }
.header-brand { display: flex; align-items: center; justify-content: space-between; flex-shrink: 0; width: 17.8125rem; }
.header-logo { display: block; flex-shrink: 0; width: 6.25rem; }
.header-logo img { display: block; width: 100%; height: 3.556rem; object-fit: contain; }
.header-address { display: flex; align-items: center; gap: .3125rem; color: inherit; font-style: normal; }
.header-address-icon { position: relative; display: block; flex: 0 0 1.5rem; height: 1.5rem; overflow: hidden; }
.header-address-icon img { position: absolute; left: 8.33%; top: 2.08%; width: 84.22%; height: 100%; }
.header-address-text { width: 6.75rem; font-size: .625rem; line-height: 1.1; letter-spacing: -.006875rem; }
.header-nav { display: flex; align-items: center; gap: 1.875rem; list-style: none; }
.header-nav a, .header-nav summary, .header-language summary { color: inherit; font: 400 .875rem/1.2 "Inter", sans-serif; letter-spacing: -.009625rem; }
.header-nav > li > a, .header-nav > li > details > summary { white-space: nowrap; }
.header-nav a:hover, .header-nav summary:hover { color: #8ebfff; }
.header-dropdown { position: relative; }
.header-dropdown summary { display: flex; align-items: center; gap: .5rem; list-style: none; cursor: pointer; }
.header-dropdown summary::-webkit-details-marker { display: none; }
.header-chevron { display: block; width: 1rem; height: 1rem; flex-shrink: 0; }
.header-dropdown[open] > summary > .header-chevron { transform: rotate(180deg); }
.header-submenu { position: absolute; top: calc(100% + 1.875rem); left: 0; width: 14.125rem; list-style: none; background: var(--color-white); color: var(--color-text); box-shadow: 0 .5rem 1.5rem rgb(5 24 68 / 12%); }
.header-submenu a, .header-submenu summary { display: flex; padding: 1.25rem; white-space: normal; }
.header-submenu a:hover, .header-submenu summary:hover { color: var(--color-primary); background: rgb(142 191 255 / 30%); }
.header-submenu .header-submenu { left: 100%; top: 0; }
.header-submenu summary { justify-content: space-between; }
.header-submenu-chevron { width: 1.5rem; height: 1.5rem; flex-shrink: 0; transform: rotate(-90deg); }
.header-actions { display: flex; align-items: center; gap: 1.25rem; }
.header-language summary { gap: .25rem; }
.header-language .header-chevron { width: 1.5rem; height: 1.5rem; }
.header-language .header-submenu { width: 5.5rem; left: auto; right: 0; top: calc(100% + 1rem); }
.header-language .header-submenu a { padding: .75rem 1rem; color: var(--color-text); }
.header-phone { width: 11.625rem; }
.header-toggle, .header-mobile-contact { display: none; }
.site-header a:focus-visible, .site-header summary:focus-visible, .header-toggle:focus-visible { outline: .125rem solid #8ebfff !important; outline-offset: .25rem; }

.header-nav .btn { justify-content: center; color: var(--color-white); font-weight: 700; }

.site-header a { transition: color .2s, background-color .2s; }

/* Shared typography and button variants. 16px = 1rem. */
.section-title { margin: 0; font-family: "Montserrat", sans-serif; font-size: 2.5rem; font-weight: 700; line-height: 1.1; text-transform: uppercase; }
.btn-dark { background: #041845; border: .0625rem solid #000; }
.btn-dark:hover { background: #0c2b68; }

.hero .page-hero-media:after, .hero .page-hero-media:before{
    display: none;
}
.hero { position: relative; isolation: isolate; overflow: hidden; min-height: 32.8125rem; padding-block: 11.4935rem 2.5rem; color: var(--color-white); background: #051844; }
.hero-media { position: absolute; z-index: -1; top: -1.3125rem; left: 0; width: 100%; height: 44.75rem; background-image: linear-gradient(-164.2611deg, rgb(5 24 68 / 7%) 52.729%, rgb(5 24 68 / 56%) 76.137%, rgb(5 24 68 / 70%) 95.39%), linear-gradient(-73.4843deg, rgb(5 24 68 / 7%) 56.919%, rgb(5 24 68 / 56%) 75.752%, rgb(5 24 68 / 70%) 96.12%); background-size: 100% 100%, 100% 100%, auto 100%; background-position: center, center, 57.6% top; background-repeat: no-repeat; }
.hero-content { display: flex; flex-direction: column; justify-content: space-between; min-height: 18.819rem; }
.hero-title { max-width: 38.75rem; text-shadow: 0 .25rem 1.25rem rgb(0 0 0 / 15%); }
.hero-actions { display: flex; gap: 1.25rem; }
.hero-actions .btn { width: 19.0625rem; }
.stats { padding-block: 1.25rem; background: rgb(225 231 247 / 70%); color: #041845; }
.stats-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; }
.stats-item { display: flex; flex-direction: column; gap: 1.3125rem; min-height: 7.6875rem; padding: 1.25rem; border-right: .03125rem solid rgb(52 110 247 / 38%); }
.stats-item:last-child { border: 0; }
.stats-value { margin: 0; color: var(--color-primary); font: 600 2.5rem/normal "Montserrat", sans-serif; text-box-trim: trim-both; text-box-edge: cap alphabetic; }
.stats-description { margin: 0; font-size: .875rem; line-height: 1.2; letter-spacing: -.009625rem; }
.stats-description span { display: block; }
/* Shared section and card styles. */
.section { padding-block: 5rem; }
.section-label { margin: 0; color: #919497; font-size: .875rem; line-height: 1.2; letter-spacing: -.009625rem; text-shadow: 0 .25rem 1.25rem rgb(0 0 0 / 15%); }
.section-text { margin: 0; font-size: 1rem; line-height: 1.2; }
.card-title { margin: 0; font: 700 1.5rem/1.1 "Montserrat", sans-serif; text-box-trim: trim-both; text-box-edge: cap alphabetic; }
.about { padding-bottom: 2.5rem; }
.about-intro { display: grid; grid-template-columns: minmax(0, 1fr) 59.6875rem; gap: 1.25rem; }
.about-content { display: flex; flex-direction: column; align-items: flex-end; gap: 2.5rem; }
.about .section-title { width: 100%; color: #041845; }
.about .section-title > span { display: block; }
.about-description-desktop { text-align: justify; }
.about-description-mobile { display: none; }
.about-link { width: 19.0625rem; }
.about-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; margin-top: 1.25rem; }
.about-card { position: relative; isolation: isolate; display: flex; flex-direction: column; justify-content: space-between; min-height: 12.5625rem; padding: 1.25rem; background: #041845; color: var(--color-white); }
.about-card .card-title { color: #f7f8fa; }
.about-card-number { display: block; font-size: 2.25rem; font-weight: 600; }
.about-card .section-text span, .about-card-image .card-title span { display: block; }
.about-card-blue { background: var(--color-primary); }
.about-card-photo { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: fill; object-position: bottom; }
.about-card-image::before { content: ""; position: absolute; z-index: -1; inset: 0; background: rgb(4 24 69 / 60%); }
.partners { padding-bottom: 5rem; }
.partners-slider { overflow: hidden; }
.partners-slider:not(.slick-initialized) { display: flex; }
.partner-logo { position: relative; flex-shrink: 0; overflow: hidden; width: 12.3125rem; height: 4.375rem; margin-right: 1.25rem; }
.partner-logo > img { display: block; width: 100%; height: 100%; object-fit: fill; object-position: bottom; pointer-events: none; }
.partner-logo-cover > img { object-fit: cover; }
.partner-logo-contain > img { object-fit: contain; }
.partner-logo-east > .partner-logo-east-name { position: absolute; left: 32.29%; top: 44.85%; width: 67.43%; height: 12.27%; }
.partner-logo-sugar > .partner-logo-sugar-symbol { position: absolute; left: .05%; top: 12.63%; width: 37.1%; height: 69.6%; }
.partner-logo-sugar > .partner-logo-sugar-name { position: absolute; left: 34.52%; top: 27.86%; width: 67.43%; height: 45.38%; }
/* Shared outline button and services layout. */
.btn-outline { background: transparent; border: .0625rem solid #041845; color: #041845; }
.btn-outline:hover { background: #041845; color: var(--color-white); }
.services { padding-top: 0; }
.services-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.25rem; margin-bottom: 2.5rem; }
.services-heading .section-title { max-width: 52.875rem; color: #041845; }
.services-heading .section-label { flex-shrink: 0; width: 12.3125rem; text-align: right; }
.service-list { display: grid; gap: 2.5rem; }
.service-item { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; min-height: 22.625rem; }
.service-media { display:block; position: relative; overflow: hidden; height: 22.625rem; grid-column: 2; grid-row: 1; }
.service-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.service-content { display: flex; flex-direction: column; align-items: flex-start; gap: 1.1rem; grid-column: 1; grid-row: 1; }
.service-item:nth-child(even) .service-media { grid-column: 1; }
.service-item:nth-child(even) .service-content { grid-column: 2; }
.service-info { display: flex; flex-direction: column; gap: 1.25rem; width: 100%; }
.service-info .card-title { color: #041845; }
.service-description { max-width: var(--service-description-width, 30.1875rem); }
.service-vegetable-oil { --service-description-width: 27.4375rem; }
.service-lpg { --service-description-width: 29.75rem; }
.service-covered-wagons { --service-description-width: 32.625rem; }
.service-covered-wagons .service-media img { position: absolute; top: .06%; left: -.04%; height: 116.02%; object-fit: fill; }
.service-specs-title { font-weight: 700; }
.service-specs { margin: 0; padding-left: 1.5rem; max-width: 33.875rem; font-size: 1rem; line-height: 1.2; list-style: disc; }
.service-link { width: 19.0625rem; }
.services-all { display: flex; width: 100%; margin-top: 2.5rem; }

/* Shared light outline variant. */
.btn-outline-light { border-color: var(--color-white); color: var(--color-white); }
.btn-outline-light:hover { background: var(--color-white); color: #041845; }
.partnership { position: relative; isolation: isolate; overflow: hidden; padding-block: 2.5rem; background: #041845; color: var(--color-white); }
.partnership-media { position: absolute; z-index: -1; inset: 0; overflow: hidden; }
.partnership-media img { width: 100%; height: 100%; object-fit: cover; display: block }
.partnership-media::after { content: ""; position: absolute; inset: 0; background: rgb(4 24 69 / 46%); }
.partnership-layout { position: relative; }
.partnership-content { display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start; min-height: 17.9375rem; max-width: 52.875rem; }
.partnership-intro { display: flex; flex-direction: column; gap: 1.25rem; }
.partnership-intro .section-text { max-width: 34.5rem; }
.partnership-link { width: 19.0625rem; }
.partnership-mark { position: absolute; right: 0; top: 0; display: block; width: 3.75rem; height: 6.3574375rem; }
.partnership-mark img { display: block; width: 100%; height: auto; }

.work-layout { display: grid; grid-template-columns: 32.625rem minmax(0, 1fr); gap: 1.25rem; align-items: start; }
.work-intro { display: flex; flex-direction: column; align-items: flex-start; gap: 2.5rem; }
.work-heading { display: flex; flex-direction: column; gap: 1.25rem; }
.work .section-title { color: #041845; }
.work-intro > .section-text { max-width: 30.375rem; }
.work-consultation { width: 19.0625rem; }
.work-list { margin: 0; padding: 0; list-style: none; }
.work-item { --work-gap: 1.9375rem; position: relative; margin-bottom: var(--work-gap); }
.work-item:nth-child(4) { --work-gap: 2.3125rem; }
.work-item:last-child { margin-bottom: 0; }
.work-step { position: relative; z-index: 1; display: flex; align-items: center; gap: 1.75rem; width: 100%; min-height: 6.5625rem; padding: 1.25rem; background: transparent; color: #041845; text-align: left; font-family: inherit; opacity: .5; transition: background-color .2s, opacity .2s; }
.work-step:focus-visible { outline: .125rem solid var(--color-primary) !important; outline-offset: -.125rem; }
.work-icon { display: flex; align-items: center; justify-content: center; flex-shrink: 0; width: 3.75rem; height: 3.75rem; background: #ebf3ff; }
.work-icon picture, .work-icon-active { align-items: center; justify-content: center; }
.work-icon-normal { display: flex; }
.work-icon-active { display: none; }
.work-icon img { display: block; width: var(--work-icon-width); height: auto; }
.work-step-copy { display: flex; flex-direction: column; gap: .625rem; flex: 1; min-width: 0; }
.work-step-title { display: block; }
.work-step-copy .section-text { display: block; color: #000; max-width: 22.9375rem; }
.work-item:nth-child(2) .section-text, .work-item:nth-child(4) .section-text, .work-item:nth-child(6) .section-text, .work-item:nth-child(7) .section-text { max-width: 28.375rem; }
.work-connector { position: absolute; left: 3.09375rem; top: 50%; width: .0625rem; height: calc(100% + var(--work-gap)); container-type: size; }
.work-connector img { position: absolute; left: 0; top: 0; display: block; width: 100cqh; height: .0625rem; transform: rotate(90deg); transform-origin: left center; }
.work-line-active { display: none; }
.work-item.is-reached .work-step { opacity: 1; }
.work-item.is-reached .work-icon { background: var(--color-primary); }
.work-item.is-reached .work-icon-normal { display: none; }
.work-item.is-reached .work-icon-active { display: flex; }
.work-item.is-current .work-step { background: rgb(142 191 255 / 18%); }
.work-item.is-complete .work-line-normal { display: none; }
.work-item.is-complete .work-line-active { display: block; }
.work-item:nth-child(1) { --work-icon-width: 1.5782625rem; }
.work-item:nth-child(2) { --work-icon-width: 1.5818125rem; }
.work-item:nth-child(3) { --work-icon-width: 1.5796875rem; }
.work-item:nth-child(4) { --work-icon-width: 1.58151875rem; }
.work-item:nth-child(5) { --work-icon-width: 1.57631875rem; }
.work-item:nth-child(6) { --work-icon-width: 1.58765rem; }
.work-item:nth-child(7) { --work-icon-width: 1.58765rem; }

.geography { padding-top: 0; }
.geography-layout { display: grid; grid-template-columns: 46.125rem minmax(0, 1fr); gap: 1.25rem; align-items: center; }
.geography-media { width: calc(100% + 5rem); margin-left: -5rem; }
.geography-media img { display: block; width: 100%; height: auto; }
.geography-content { display: flex; flex-direction: column; gap: 2.5rem; min-width: 0; }
.geography-heading { display: flex; flex-direction: column; gap: 1.25rem; }
.geography-heading .section-title { color: #041845; }
.geography-heading .section-title span { display: block; }
.geography-region { display: flex; flex-direction: column; gap: .625rem; }
.geography-region .card-title { color: var(--color-primary); }
.geography-region:nth-child(2) .section-text { max-width: 25.8125rem; }
.geography-region:nth-child(3) .section-text { max-width: 31.3125rem; }
.geography-region:nth-child(4) .section-text { max-width: 29rem; }

.consultation { position: relative; isolation: isolate; overflow: hidden; padding-block: 3.125rem; color: var(--color-white); background: #041845 url("../img/form.jpg") center / cover no-repeat; }
.consultation::before { content: ""; position: absolute; z-index: -1; inset: 0; background: rgb(4 24 69 / 30%); }
.consultation-layout { display: grid; grid-template-columns: 46.125rem minmax(0, 1fr); gap: 6.8125rem; align-items: start; }
.consultation .section-title { font-size: 2.25rem; }
.consultation-form { display: flex; flex-direction: column; align-items: flex-start; gap: 1.875rem; min-width: 0; padding-right: 6.6875rem; border-right: .03125rem solid rgb(255 255 255 / 50%); align-self: stretch; }
.form-fields { display: grid; gap: 1.25rem; width: 100%; }
.form-control { display: block; width: 100%; min-width: 0; height: 3.25rem; padding: .625rem; border: 0; border-bottom: .0625rem solid var(--color-white); border-radius: 0; background: transparent; color: var(--color-white); font: 400 1rem/1.2 "Inter", sans-serif; box-shadow: none; }
.form-control::placeholder { color: rgb(255 255 255 / 80%); opacity: 1; }
/*.form-control:focus-visible, .form-consent input:focus-visible, .consultation a:focus-visible, .consultation-submit:focus-visible { outline: .125rem solid #8ebfff !important; outline-offset: .25rem; }*/
.form-select { appearance: none; padding-right: 2.75rem; font-weight: 500; background: transparent url("../img/contact/select-arrow.svg") right .625rem center / 1.5rem 1.5rem no-repeat; cursor: pointer; }
.form-select option { background: #041845; color: var(--color-white); }
.form-route-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.form-route { display: grid; grid-template-columns: minmax(0, 1fr) 1.5rem minmax(0, 1fr); gap: .625rem; align-items: center; }
.form-route-arrow { display: block; width: 1.5rem; height: auto; }
.form-comment { min-height: 3.25rem; max-height: 12rem; resize: vertical; }
.form-consent { display: flex; align-items: flex-start; gap: .9375rem; opacity: .8; font-size: 1rem; font-weight: 500; line-height: 1.2; cursor: pointer; }
.form-consent > span { max-width: 30.75rem; }
.form-consent input { appearance: none; position: relative; flex-shrink: 0; width: 1rem; height: 1rem; margin: 0; border: .09375rem solid var(--color-white); border-radius: 0; background: transparent; cursor: pointer; }
.form-consent input:checked { background: var(--color-primary); }
.form-consent input:checked::after { content: "✓"; position: absolute; inset: 0; color: var(--color-white); font-size: .75rem; line-height: .8125rem; text-align: center; }
.form-consent a, .form-status a { color: inherit; }
.form-consent a:hover, .form-status a:hover { text-decoration: underline; }
.consultation-submit { width: 19.0625rem; }
.form-status { padding: .75rem; border: .0625rem solid rgb(255 255 255 / 60%); }
.consultation-details { display: flex; flex-direction: column; gap: 2.5rem; min-width: 0; }
.consultation-company, .consultation-contacts { display: flex; flex-direction: column; gap: 1.875rem; }
.consultation-company { min-height: 11.5rem; }
.consultation-company .section-text > span, .contact-item p > span { display: block; }
.contact-list { display: flex; flex-direction: column; gap: 1.875rem; font-style: normal; }
.contact-item { display: flex; align-items: center; gap: 1.875rem; color: inherit; }
.contact-item > img { display: block; flex-shrink: 0; width: 1.5rem; height: 1.5rem; object-fit: contain; }
.contact-item > span, .contact-item > p { min-width: 0; }
.contact-item:hover { color: inherit; }
a.contact-item:hover > span { text-decoration: underline; }
.contact-socials { display: flex; align-items: center; gap: 1.875rem; }
.contact-social { display: flex; align-items: center; justify-content: center; width: 1.5rem; height: 1.5rem; }
.contact-social img { display: block; width: 100%; height: auto; }
.contact-social-instagram img { width: 95%; }

.faq-layout { display: flex; flex-direction: column; gap: 2.5rem; }
.faq-heading { display: flex; flex-direction: column; gap: 1.25rem; }
.faq .section-title { color: #041845; }
.faq-list { display: flex; flex-direction: column; gap: 1.25rem; width: 100%; }
.faq-item { padding-bottom: 1.25rem; border-bottom: .0625rem solid var(--color-primary); }
.faq-item:last-child { border-bottom: 0; }
.faq-question { display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; min-height: 3rem; list-style: none; cursor: pointer; }
.faq-question::-webkit-details-marker { display: none; }
.faq-question .card-title { flex: 1; min-width: 0; }
.faq-question:focus-visible { outline: .125rem solid var(--color-primary) !important; outline-offset: .25rem; }
.faq-toggle { display: block; flex: 0 0 3rem; }
.faq-toggle img { display: block; width: 3rem; height: auto; }
.faq-toggle .faq-minus, .faq-item[open] .faq-plus { display: none; }
.faq-item[open] .faq-minus { display: block; }
.faq-answer { max-width: 39.375rem; margin-top: .625rem; text-box-trim: trim-both; text-box-edge: cap alphabetic; }

.site-footer { padding-bottom: 3.125rem; background: var(--color-white); }
.footer-layout { display: grid; grid-template-columns: 25.8125rem 19.0625rem minmax(0, 1fr); gap: 1.25rem; align-items: start; }
.footer-column { display: flex; flex-direction: column; justify-content: space-between; min-width: 0; min-height: 29.875rem; border-right: .03125rem solid rgb(52 110 247 / 40%); }
.footer-groups { display: flex; flex-direction: column; gap: 3.125rem; width: 100%; }
.footer-group { display: flex; flex-direction: column; gap: 1.25rem; width: 100%; }
.footer-navigation { display: grid; grid-template-columns: 12.3125rem minmax(0, 1fr); gap: 1.25rem; }
.footer-links { display: flex; flex-direction: column; align-items: flex-start; gap: 1.875rem; list-style: none; }
.site-footer a { color: inherit; }
.site-footer a:hover { color: var(--color-primary); }
.site-footer a:focus-visible { outline: .125rem solid var(--color-primary) !important; outline-offset: .25rem; }
.footer-logo { display: block; width: 12.3125rem; }
.footer-logo img { display: block; width: 100%; height: auto; }
.footer-address { font-style: normal; }
.footer-address span { display: block; }
.footer-credit { color: var(--color-primary) !important; font-weight: 700; }
.footer-map { min-width: 0; width: 100%; height: 29.875rem; overflow: hidden; }
.footer-map iframe { display: block; width: 100%; height: 100%; border: 0; }

.page-hero { position: relative; isolation: isolate; overflow: hidden; min-height: 18.625rem; padding-block: 8.75rem 3.75rem; background: #041845; color: var(--color-white); }
.page-hero-media { position: absolute; z-index: -1; inset: 0; display: block; }
.page-hero-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.page-hero-media::after { content: ""; position: absolute; inset: 0; background: rgb(4 24 69 / 50%); }
.page-hero-content { display: flex; flex-direction: column; gap: 2.1875rem; }
.page-hero-title { width: 100%; max-width: 52.875rem; margin-inline: auto; text-align: center; text-shadow: 0 .25rem 1.25rem rgb(0 0 0 / 15%); }
.breadcrumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: .3125rem; list-style: none; }
.breadcrumbs a { color: inherit; }
.breadcrumbs a:hover { text-decoration: underline; }
.breadcrumbs a:focus-visible { outline: .125rem solid #8ebfff !important; outline-offset: .25rem; }

.company-overview { padding-block: 2.5rem; }
.company-overview-intro { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; align-items: start; }
.company-overview-media img { display: block; width: 100%; height: auto; }
.company-overview-content, .company-overview-heading { display: flex; flex-direction: column; gap: 1.25rem; }
.company-overview .section-title { color: #041845; }
.company-overview-description p + p { margin-top: 1.2em; }
.company-overview .about-cards { margin-top: 2.5rem; }

.specialization { padding-bottom: 5rem; }
.specialization-panel { position: relative; isolation: isolate; overflow: hidden; padding: 2.5rem 2.625rem; color: var(--color-white); background: #041845; }
.specialization-background { position: absolute; z-index: -1; inset: 0; display: block; pointer-events: none; }
.specialization-background img { display: block; width: 100%; height: auto; min-height: 100%; object-fit: cover; }
.specialization .section-title, .specialization .section-label { color: inherit; }
.specialization-title-line { display: block; }
.specialization-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; }
.specialization-card { display: flex; flex-direction: column; gap: 1.25rem; min-width: 0; }
.specialization-media { background: var(--color-white); }
.specialization-media img { display: block; width: 100%; height: 10.9375rem; object-fit: contain; }
.specialization-caption { margin: 0; font: 400 1.25rem/1.2 "Montserrat", sans-serif; }
.specialization-caption strong { font-weight: 700; }

.approach { padding-bottom: 5rem; }
.approach-layout { display: grid; grid-template-columns: 32.6875rem minmax(0, 1fr); gap: 1.25rem; }
.approach-media { min-width: 0; }
.approach-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.approach-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.approach-card { display: flex; flex-direction: column; align-items: flex-start; gap: 1.25rem; min-width: 0; min-height: 14.5625rem; padding: 1.25rem; }
.approach-icon { display: block; width: 3rem; height: 3rem; object-fit: contain; }
.approach-copy { display: flex; flex-direction: column; gap: 1.25rem; }
.approach .card-title { display: flex; align-items: center; min-height: 1.8125rem; color: #041845; }

.certificate-layout { display: grid; grid-template-columns: 46.125rem minmax(0, 1fr); gap: 1.25rem; align-items: center; }
.certificate-content { display: flex; flex-direction: column; gap: 2.5rem; min-width: 0; }
.certificate .section-title { color: #041845; }
.certificate-statement { margin: 0; color: #041845; font: 700 1rem/1.2 "Montserrat", sans-serif; text-transform: uppercase; }
.certificate-statement span { color: var(--color-primary); }
.certificate-download { display: flex; flex-direction: column; align-items: flex-start; gap: .625rem; }
.certificate-download .btn { width: 19.0625rem; }
.certificate-preview { display: block; min-width: 0; }
.certificate-preview img { display: block; width: 100%; height: 26.4375rem; object-fit: contain; }
.certificate-preview:focus-visible { outline: .125rem solid var(--color-primary) !important; outline-offset: .25rem; }

.service-catalog-cargo { padding-top: 2.5rem; padding-bottom: 0; }
.service-catalog-heading { margin-bottom: 2.5rem; }
.service-catalog-heading .section-title { color: #041845; }
.service-catalog-heading > .section-text { max-width: 46.125rem; }
.service-catalog .service-item .service-media { grid-column: 1; }
.service-catalog .service-item .service-content { grid-column: 2; }
.service-catalog .service-description { max-width: 32.625rem; }
.service-catalog-open .service-description, .service-catalog-repair .service-description { max-width: 30.1875rem; }
.service-actions { display: flex; gap: 1.25rem; width: 100%; }
.service-actions .btn { flex: 1; min-width: 0; }
.service-cargo-label { display: flex; align-items: center; gap: 1.25rem; min-height: 2.75rem; color: var(--color-primary); font: 700 .875rem/1.5 "Inter", sans-serif; letter-spacing: -.009625rem; text-transform: uppercase; }
.service-cargo-label img { display: block; flex-shrink: 0; width: 1.437rem; height: auto; }
/*.service-catalog-liquid .service-description p + p { margin-top: 1.2em; }*/
.service-directions { position: relative; }
.service-directions summary { gap: 1.25rem; list-style: none; cursor: pointer; }
.service-directions summary::-webkit-details-marker { display: none; }
.service-directions summary img { width: 1.5rem; height: auto; }
.service-directions[open] summary img { transform: rotate(90deg); }
.service-directions-list { position: absolute; z-index: 3; top: 100%; left: 0; width: 100%; list-style: none; background: var(--color-white); box-shadow: 0 .5rem 1.5rem rgb(5 24 68 / 15%); }
.service-directions-list a { display: block; padding: .875rem 1rem; color: #041845; }
.service-directions-list a:hover { background: #ebf3ff; }
.service-catalog a:focus-visible, .service-directions summary:focus-visible { outline: .125rem solid var(--color-primary) !important; outline-offset: .25rem; }

.service-cargo-label { margin: 0; }
/*.service-catalog-liquid .service-description p { margin: 0; }*/
/*.service-catalog-liquid .service-description p + p { margin-top: 1.2em; }*/

.operator-services { position: relative; isolation: isolate; overflow: hidden; min-height: 23.375rem; margin-bottom: 5rem; padding-block: 3.75rem; background: #041845; color: var(--color-white); }
.operator-services-media { position: absolute; z-index: -2; inset: 0; display: block; }
.operator-services-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.operator-services::before { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(91.339deg, rgb(4 24 69 / 80%) 14.59%, rgb(10 59 171 / 0%) 70.284%); }
.operator-services-content { max-width: 39.375rem; }
.operator-services-content .section-title span { display: block; }
.operator-services-content .section-text { max-width: 31.5625rem; }

.page-hero-text-left{
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.page-hero-text-left .page-hero-title{
    width: 100%;
    max-width: unset;
    text-align: left;
}
.page-hero-text{
    width: 39rem;
}
.sub-services{
    padding-top: 2.5rem;
}
.service-card-hero{
    min-height: 13.688rem;
}

.service-detail { padding-block: 2.5rem 3.75rem; }
.service-detail-layout { align-items: center; }
.service-detail-media img { display: block; width: 100%; height: 25.0625rem; object-fit: cover; }
.service-detail-content { grid-column: auto; grid-row: auto; }
.service-detail .section-title { color: #041845; font-size: 2.25rem; }
.service-detail .section-title span { display: block; }

.service-inclusions { padding-top: 0; }
.service-inclusions-list { display: flex; flex-direction: column; gap: 1.875rem; margin: 0; padding: 0; list-style: none; }
.service-inclusions-item { display: flex; align-items: center; gap: 1.75rem; min-height: 3.75rem; }
.service-inclusions .work-icon { --work-icon-width: 1.5rem; background: var(--color-primary); }
.service-inclusions .card-title { display: flex; align-items: center; min-height: 1.8125rem; color: #041845; }
.service-inclusions .work-step-copy .section-text { max-width: none; }

.wagon-model { padding-top: 0; }
.wagon-model-content { display: flex; flex-direction: column; justify-content: space-between; gap: 2.5rem; min-width: 0; min-height: 25rem; }
.wagon-model .section-title, .wagon-model .card-title { color: #041845; }
.wagon-model-subtitle { color: var(--color-primary); font-size: 1.25rem; font-weight: 600; }
.wagon-model-specifications, .wagon-model-values { display: flex; flex-direction: column; gap: 1.25rem; }
.wagon-model-values { margin: 0; }
.wagon-model-row { display: flex; align-items: center; justify-content: space-between; gap: .625rem; min-height: 1.8125rem; }
.wagon-model-row dd { max-width: 76%; text-align: right; }
.wagon-model-feature { color: var(--color-primary); }
.wagon-model-media img { display: block; width: 100%; height: auto; }

.wagon-gallery { padding-top: 0; }
.wagon-gallery .services-heading { margin-bottom: 2.3125rem; }
.wagon-gallery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: repeat(2, 15.9375rem); gap: 1.25rem; }
.wagon-gallery-photo { display: block; min-width: 0; overflow: hidden; }
.wagon-gallery-photo:first-child { grid-column: 1; grid-row: 1 / 3; }
.wagon-gallery-photo:nth-child(2) { grid-column: 2; grid-row: 1; }
.wagon-gallery-photo:nth-child(3) { grid-column: 2; grid-row: 2; }
.wagon-gallery-photo:last-child { grid-column: 3; grid-row: 1 / 3; }
.wagon-gallery-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.wagon-gallery-photo:focus-visible { outline: .125rem solid var(--color-primary) !important; outline-offset: .25rem; }

.wagon-model-pair.container { grid-column: 1 / -1; width: 100%; max-width: none; margin: 2.5rem 0 0; }
.wagon-model-card { display: flex; flex-direction: column; gap: 1.25rem; min-width: 0; }
.wagon-model-card .wagon-model-content { min-height: 0; }

.partners-hero { padding-bottom: 2.1875rem; }
.partners-hero .page-hero-media::after { background: rgb(4 24 69 / 40%); }
.partners-hero-intro { align-items: center; text-align: center; }
.partners-hero .page-hero-title { max-width: 52.875rem; text-align: center; }
.partners-hero-intro > .section-text { max-width: 43.1875rem; }
.partners-hero-link { width: 25.875rem; }
.partner-audiences { padding-block: 2.5rem 2.125rem; background: #041845; color: var(--color-white); }
.partner-audiences-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; }
.partner-audience { display: flex; align-items: flex-start; gap: 1.25rem; min-width: 0; }
.partner-audience > div { flex: 1; min-width: 0; }
.partner-audience .card-title { font-size: 1.25rem; font-weight: 600; }
.partner-audience .section-text { font-size: .875rem; color: rgb(255 255 255 / 50%); letter-spacing: -.009625rem; }
.partner-audience-icon.work-icon { --work-icon-width: 2rem; border-radius: 50%; background: var(--color-primary); }
.partner-directions { padding-block: 3.75rem; }
.partner-directions .section-title, .partner-principles .section-title { color: #041845; }
.partner-directions .card-title { min-height: 1.8125rem; display: flex; align-items: center; color: var(--color-primary); }
.partner-directions .work-step-copy .section-text { max-width: none; }
.partner-directions-media { position: relative; min-width: 0; }
.partner-directions-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.partner-principles { padding-bottom: 5rem; }
.partner-principles-layout { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; align-items: stretch; }
.partner-principles-buttons { margin-left: -5rem; }
.partner-principle-button { display: flex; align-items: center; justify-content: space-between; gap: 2.125rem; width: 100%; min-height: 6.125rem; padding: 1.5rem 1.5rem 1.5rem 5rem; color: #041845; background: transparent; text-align: left; font: 700 1.5rem/1.1 "Montserrat", sans-serif; cursor: pointer; }
.partner-principle-button > span:first-child { flex: 1; min-width: 0; }
.partner-principle-button.is-active { background: var(--color-primary); color: var(--color-white); font-size: 1.75rem; }
.partner-principle-arrow { display: flex; align-items: center; justify-content: center; flex: 0 0 3.125rem; height: 3.125rem; border: .0625rem solid var(--color-primary); background: rgb(255 255 255 / 10%); }
.partner-principle-arrow img { display: block; width: 2rem; height: auto; }
.partner-principle-arrow .partner-arrow-white, .is-active .partner-arrow-dark { display: none; }
.is-active .partner-arrow-white { display: block; }
.is-active .partner-principle-arrow { border-color: var(--color-white); }
.partner-principle-button:focus-visible { outline: .125rem solid #8ebfff !important; outline-offset: -.125rem; }
.partner-principles-content { display: flex; flex-direction: column; gap: 1.25rem; min-width: 0; }
.partner-principle-panel { display: flex; flex: 1; flex-direction: column; min-height: 0; }
.partner-principle-panel > img { display: block; width: 100%; height: 15.4375rem; object-fit: cover; }
.partner-principle-panel > .section-text { flex: 1; padding: 1.25rem; color: var(--color-white); background: var(--color-primary); }
.partner-request { min-height: 50.375rem; margin-bottom: 5rem; background-image: none; }
.partner-request-media { position: absolute; z-index: -2; inset: 0; display: block; pointer-events: none; }
.partner-request-media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.partner-request::before { background: linear-gradient(174.519deg, #041845 25.142%, rgb(4 24 69 / 0%) 49.283%), rgb(4 24 69 / 40%); }
.partner-request .section-title { font-size: 2.5rem; }
.partner-request-heading { gap: 1.875rem; }
.partner-request-subtitle { font-size: 1.5rem; text-transform: uppercase; }
.consultation-details .contact-social img{
    filter: brightness(0) invert(1);
}

.form-route-arrow {
    width: 0.8rem;
    margin-left: 0.5rem;
}
.form-control{
    transition: all 0.35s;
}
.form-control:focus{
    border-color: var(--color-primary);
}
.form-control.error{
    border-color: red!important;
}
/* AJAX form feedback. */
.ajax_form .result:empty { display: none; }
.ajax_form .result { width: 100%; }
.ajax_form .result p { position: relative; margin: 1rem 0; padding: 1rem 1.125rem 1rem 3.25rem; border: 1px solid #f4b4ad; border-left: 4px solid #dc4c40; border-radius: .75rem; background: #fff1ef; color: #8f2921; font: 500 .9375rem/1.5 "Inter", sans-serif; text-align: left; overflow-wrap: anywhere; }
.ajax_form .result p::before { content: "!"; position: absolute; top: 1rem; left: 1rem; display: flex; align-items: center; justify-content: center; width: 1.375rem; height: 1.375rem; border-radius: 50%; background: #dc4c40; color: #fff; font-weight: 700; line-height: 1; }
.ajax_form .result p.result-success { border-color: #a8d9c4; border-left-color: #16805b; background: #edf9f3; color: #125c43; }
.ajax_form .result p.result-success::before { content: "✓"; background: #16805b; }
.ajax_form :submit:disabled { cursor: wait; opacity: .7; }

/* Service models: one full-width model, or two cards in each desktop row. */
.wagon-model-grid { display: grid; gap: 2.5rem 1.25rem; }
.wagon-model-grid--single { grid-template-columns: minmax(0, 1fr); }
.wagon-model-grid--multiple { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; }
.wagon-model-grid .wagon-model-card { min-width: 0; gap: 1.25rem; }
.wagon-model-grid--single .wagon-model-card { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; }
.wagon-model-grid .wagon-model-content { min-height: 0; gap: 2.5rem; }
.wagon-model-grid--single .wagon-model-content { min-height: 25rem; }
.wagon-model-grid--multiple .wagon-model-content { flex: 1; justify-content: flex-start; }
.wagon-model-grid .company-overview-heading { min-width: 0; }
.wagon-model-grid .section-title { overflow-wrap: anywhere; }
.wagon-model-grid .wagon-model-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 3fr); align-items: baseline; gap: .625rem; }
.wagon-model-grid .wagon-model-row dt, .wagon-model-grid .wagon-model-row dd { min-width: 0; overflow-wrap: anywhere; }
.wagon-model-grid .wagon-model-row dd { max-width: none; margin: 0; text-align: right; text-wrap: balance; }
.wagon-model-description { overflow-wrap: anywhere; }
.wagon-model-description p { margin: 0 0 .75rem; }
.wagon-model-description p:last-child { margin-bottom: 0; }
.wagon-model-description strong, .wagon-model-description b { color: var(--color-primary); }
.wagon-model-grid .wagon-model-media { min-width: 0; aspect-ratio: 630 / 400; }
.wagon-model-grid .wagon-model-media img { display: block; width: 100%; height: 100%; object-fit: contain; }
@media (max-width: 992px) {
    .wagon-model-grid--multiple { grid-template-columns: minmax(0, 1fr); }
    .wagon-model-grid--single .wagon-model-card { grid-template-columns: minmax(0, 1fr); }
    .wagon-model-grid .wagon-model-content { min-height: 0; gap: 1.875rem; }
    .wagon-model-grid .wagon-model-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Each gallery group lays out independently, including the final 1–3 photos. */
.wagon-gallery-groups { display: grid; gap: 1.25rem; }
.wagon-gallery-group { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: repeat(2, 15.9375rem); gap: 1.25rem; }
.wagon-gallery-group > .wagon-gallery-photo { grid-column: auto; grid-row: auto; height: 100%; min-width: 0; background: #f1f4f9; }
.wagon-gallery-group--4 > .wagon-gallery-photo:nth-child(1) { grid-column: 1; grid-row: 1 / 3; }
.wagon-gallery-group--4 > .wagon-gallery-photo:nth-child(2) { grid-column: 2; grid-row: 1; }
.wagon-gallery-group--4 > .wagon-gallery-photo:nth-child(3) { grid-column: 2; grid-row: 2; }
.wagon-gallery-group--4 > .wagon-gallery-photo:nth-child(4) { grid-column: 3; grid-row: 1 / 3; }
.wagon-gallery-group--1 { grid-template-columns: minmax(0, 1fr); grid-template-rows: 25rem; }
.wagon-gallery-group--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: 25rem; }
.wagon-gallery-group--3 { grid-template-rows: 20rem; }
.wagon-gallery-groups .wagon-gallery-photo img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
    .wagon-gallery-groups .wagon-gallery-photo:hover img { transform: scale(1.025); }
}
@media (max-width: 992px) {
    .wagon-gallery-groups { gap: 1.25rem; }
    .wagon-gallery-groups .wagon-gallery-group { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; grid-auto-rows: auto; }
    .wagon-gallery-groups .wagon-gallery-group > .wagon-gallery-photo { grid-column: auto; grid-row: auto; height: auto; aspect-ratio: 4 / 3; }
    .wagon-gallery-groups .wagon-gallery-group--4 > .wagon-gallery-photo:first-child,
    .wagon-gallery-groups .wagon-gallery-group--4 > .wagon-gallery-photo:last-child { aspect-ratio: 413 / 530; }
}

/* Partner principle selection effects. */
.partner-principle-button { transition: background-color .25s ease, color .25s ease, font-size .25s ease; }
.partner-principle-arrow { transition: transform .25s ease, border-color .25s ease, background-color .25s ease; }
.partner-principle-button:hover .partner-principle-arrow, .partner-principle-button.is-active .partner-principle-arrow { transform: translateX(.25rem); }
.partner-principle-panel { overflow: hidden; }
.partner-principle-panel > img { transform-origin: center; }
@media (prefers-reduced-motion: reduce) {
    .partner-principle-button, .partner-principle-arrow { transition: none; }
}

/* Animate the answer wrapper; keep text metrics stable during jQuery slides. */
.faq-answer-wrap { padding-top: .625rem; }
.faq-answer-wrap > .faq-answer { margin-top: 0; text-box-trim: none; text-box-edge: auto; }
@media (max-width: 992px) { .faq-answer-wrap { padding-top: 1.25rem; } }
.faq-item.is-closing .faq-plus { display: block; }
.faq-item.is-closing .faq-minus { display: none; }

/* Scroll-driven work stages. */
.work-item .work-step { cursor: default; transition: background-color .35s ease, opacity .35s ease; }
.work-item .work-icon { transition: background-color .35s ease; }
.work-item .work-line-normal, .work-item.is-complete .work-line-normal { display: block; transition: opacity .35s ease; }
.work-item .work-line-active, .work-item.is-complete .work-line-active { display: block; opacity: 0; transition: opacity .35s ease; }
.work-item.is-complete .work-line-normal { opacity: 0; }
.work-item.is-complete .work-line-active { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
    .work-item .work-step, .work-item .work-icon, .work-item .work-line-normal, .work-item .work-line-active { transition: none; }
}

@media (min-width: 993px) {
    .geography { position: relative; }
    .geography-layout { min-height: 36.207rem; }
    .geography-media { position: absolute; top: 0; left: 0; width: calc(50% + 6.125rem); margin: 0; }
    .geography-content { grid-column: 2; }
}
