/* theme dvip - styles of the sample DVIP Bootstrap 4.6.2 (src/styles: foundation -> layout -> components -> pages) + Manrope font faces; image urls moved to ../image/ */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/manrope-0.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/manrope-1.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/manrope-2.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/manrope-3.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(../fonts/manrope-4.ttf) format('truetype');
}
/* ---- foundation.css ---- */
:root {
  --dvip-green:var(--dv-color-main, #12334f); --dvip-accent:var(--dv-color-accent, #076cad); --dvip-gold:var(--dv-color-gold, #ee8735);
  --dvip-gold-light:var(--dv-color-gold-light, #f6a45c); --dvip-orange:var(--dv-color-button, #e97d27); --dvip-orange-dark:var(--dv-color-button-hover, #b95010);
  --dvip-light:var(--dv-color-light, #f0f6fa); --dvip-warm:var(--dv-color-warm, #fff5eb); --dvip-muted:var(--dv-color-muted, #657a8d);
  --dvip-font:Manrope,Arial,sans-serif; --dvip-border:#12334f26;
  --dvip-space:1rem; --dvip-section:64px; --dvip-media-ratio:4/3;
}
html{scroll-behavior:smooth;scroll-padding-top:125px}
body{font-family:var(--dvip-font);font-size:17px;line-height:1.6;color:var(--dvip-green);background:#fff}
a{color:inherit;text-decoration:none}a:hover{color:var(--dvip-accent);text-decoration:none}
img{display:block;max-width:100%;height:auto}svg{max-width:100%}
h1,h2,h3,p{margin-top:0}h1,h2,h3{overflow-wrap:break-word}
button,input,select,textarea{font:inherit}
[hidden]{display:none!important}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--dvip-orange);outline-offset:3px}
.btn{border-radius:0;min-height:44px;line-height:1.5;box-shadow:none}
.btn-primary{background:var(--dvip-orange);border-color:var(--dvip-orange);color:white}
.btn-primary:hover,.btn-primary:focus{background:var(--dvip-orange-dark);border-color:var(--dvip-orange-dark);color:white}
.btn-secondary{background:white;border-color:white;color:var(--dvip-green)}
.btn-secondary:hover{background:var(--dvip-warm);border-color:var(--dvip-orange);color:var(--dvip-green)}
.btn-outline-primary{color:var(--dvip-accent);border-color:var(--dvip-accent);background:transparent}
.form-control{border-radius:0;color:var(--dvip-green);min-height:48px;font-size:16px}
.form-control:focus{border-color:var(--dvip-accent);box-shadow:0 0 0 .15rem #076cad18}
.form-group{margin-bottom:24px}label{font-size:14px;margin-bottom:8px}
.skip-link{position:fixed;top:-100px;left:20px;z-index:3000;background:var(--dvip-green);color:white;padding:12px 20px}.skip-link:focus{top:10px}
.section-title,.section-heading h2{font-size:34px;line-height:1.28;font-weight:500;letter-spacing:-.7px;margin:0}
.section-heading{margin-bottom:40px}.section-heading p{font-size:17px;line-height:28px;color:#12334fb3;margin:0}
.section-kicker{font-size:24px;line-height:32px;color:var(--dvip-orange-dark);font-weight:500;margin-bottom:5px}
.section-divider,.hero__divider{display:block;width:40px;height:2px;background:var(--dvip-gold);margin-bottom:26px}
.data-caption{font-size:12px;line-height:20px;color:#718497;margin:22px 0 0}
.action-button{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;min-height:50px;padding:14px 22px;font-size:14px;font-weight:600}
.action-button--light{border-bottom:3px solid var(--dvip-orange)}.action-button span{font-size:18px}
.inline-link,.line-button,.arrow-button{display:inline-flex;align-items:center;gap:24px;min-height:44px;color:var(--dvip-accent);background:transparent;border:0;border-bottom:1px solid #ee873570;font-size:14px;font-weight:600;padding:8px 0}
.line-button{border-bottom:0;border-top:1px solid #076cad77;margin-top:8px}.arrow-button span{padding:5px 16px;background:var(--dvip-orange);color:white;font-size:20px}
.inline-link:hover,.line-button:hover,.arrow-button:hover{color:var(--dvip-orange-dark)}
@media(min-width:1200px){.container{max-width:1246px}}
@media(max-width:991.98px){:root{--dvip-section:48px}.section-title,.section-heading h2{font-size:30px}.section-heading p{font-size:16px}.section-heading{margin-bottom:30px}}
@media(max-width:767.98px){:root{--dvip-section:40px}html{scroll-padding-top:95px}.section-title,.section-heading h2{font-size:28px}.section-heading{margin-bottom:26px}.section-kicker{font-size:20px}.data-caption{font-size:11px}.action-button{font-size:13px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero__image,.hero__clouds,[data-reveal]{animation:none;transition:none}}

/* ---- layout.css ---- */
.section-space{padding:var(--dvip-section) 0}
.layout-row--spaced> [class*="col-"]{margin-bottom:30px}
.infra-grid> [class*="col-"]{margin-bottom:36px}
.overview__stats> [class*="col-"]{margin-bottom:28px}
.benefits__grid> [class*="col-"]{margin-bottom:32px}
.news-list__grid> [class*="col-"]{margin-bottom:38px}
.site-header{position:fixed;top:20px;left:20px;right:20px;z-index:1030;background:#fffffff5;transition:top .25s}
.site-header--scrolled{top:0}.site-header__navbar{min-height:88px;padding:0;flex-wrap:nowrap}
.site-header__brand{padding:16px 24px;background:var(--dvip-light);display:flex;align-items:center;align-self:stretch;flex-shrink:0}
.site-header__brand img{width:110px;height:54px;object-fit:contain}.site-header__navigation{justify-content:center}
.site-header__tools{display:flex;align-items:stretch;align-self:stretch;flex-shrink:0}
.site-header__language{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:600;padding:0 10px}.site-header__language svg{width:19px;height:13px}
.site-header__tour{display:flex;align-items:center;gap:10px;background:var(--dvip-orange);color:white;padding:15px 20px;text-align:left;min-height:44px}
.site-header__tour:hover{background:var(--dvip-orange-dark);color:white}.site-header__tour small{display:block;font-size:11px;line-height:18px}.site-header__tour strong{display:block;font-size:16px;white-space:nowrap}
.site-header__toggle{border:0;width:50px;height:50px;padding:13px}.site-header__toggle span{display:block;width:24px;height:2px;margin:5px 0;background:var(--dvip-green)}
.site-header__menu{align-items:center;gap:8px}.site-header__menu>li{position:relative}
.site-navigation__item-row{display:flex;align-items:center;gap:0}
.site-header__menu .nav-link{color:var(--dvip-green);font-size:13px;font-weight:600;padding:30px 4px;white-space:nowrap;position:relative}
.site-header__menu .nav-link:after{content:'';position:absolute;left:4px;bottom:17px;width:0;height:2px;background:var(--dvip-orange)}
.site-header__menu .nav-link.active:after,.site-header__menu .nav-link:hover:after{width:20px}
.site-navigation__toggle{display:inline-flex;align-items:center;justify-content:center;padding:0;flex:0 0 44px;min-width:44px;min-height:44px;background:transparent;border:0;color:var(--dvip-green)}
.site-navigation__chevron{display:block;pointer-events:none;width:12px;height:12px}
.site-navigation__submenu{display:none;position:absolute;top:100%;left:0;min-width:245px;padding:8px 0;margin:0;list-style:none;background:white;color:var(--dvip-green);border-top:3px solid var(--dvip-orange);box-shadow:0 12px 32px #12334f24;z-index:1050}
.site-navigation__submenu>li{position:relative;list-style:none}.site-navigation__submenu .site-navigation__item-row{justify-content:space-between}
.site-navigation__submenu .site-navigation__toggle{min-width:44px}.site-navigation__submenu .site-navigation__chevron{transform:rotate(-90deg)}
.site-navigation__link{display:block;flex:1;padding:12px 18px;min-height:44px;font-size:14px;line-height:22px}
.site-navigation__link:hover,.site-navigation__link.active{background:var(--dvip-warm);color:var(--dvip-orange-dark)}
.site-navigation__submenu .site-navigation__submenu{top:-3px;left:100%;z-index:1060}
.site-navigation__item--branch.is-open>.site-navigation__submenu{display:block}
@media(min-width:1200px){.site-navigation__item--branch:hover>.site-navigation__submenu,.site-navigation__item--branch:focus-within>.site-navigation__submenu{display:block}}
.site-footer{background:var(--dv-footer-bg, #fff8f1);padding:72px 0 0}.site-footer__title{font-size:32px;font-weight:500;color:var(--dvip-accent);margin:0 0 35px}
.site-footer__main h3{font-size:16px;line-height:25px;font-weight:600;margin:0 0 22px}.site-footer__main ul{padding:0;list-style:none;margin:0}
.site-footer__main li,.site-footer__main p{font-size:15px;line-height:26px;color:#12334fa6}.site-footer__main li{margin-bottom:9px}.site-footer__main li a{display:inline-flex;align-items:center;min-height:34px}
.site-footer__actions{display:flex;gap:8px;flex-wrap:wrap}.site-footer__actions a{display:inline-flex;align-items:center;min-height:44px;background:var(--dvip-accent);color:white;font-size:12px;padding:10px 12px}
.site-footer__brand{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;margin-top:-20px;text-align:center;min-height:300px}
.site-footer__brand>img{width:130px;height:auto}.site-footer__brand>span{font-size:112px;font-weight:800;letter-spacing:5px;line-height:1;background:url('../image/footer-brand.png') center/cover;background-clip:text;-webkit-background-clip:text;color:transparent}
.site-footer__brand>small{font-size:12px;color:#67849c;letter-spacing:1px}.site-footer__bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid #d9874966;margin-top:50px;padding:28px 0;font-size:12px;color:#657a8d}
.site-footer__bottom a{display:inline-flex;align-items:center;min-height:44px}.footer-contact p{margin-bottom:16px}.footer-contact strong{font-size:12px;text-transform:uppercase;letter-spacing:.8px;color:var(--dvip-orange-dark)}
.back-to-top{display:flex;align-items:center;justify-content:center;position:fixed;right:20px;bottom:20px;width:44px;height:44px;z-index:1020;background:var(--dvip-green);color:white;opacity:0;pointer-events:none;transition:opacity .25s}.back-to-top.is-visible{opacity:1;pointer-events:auto}
@media(max-width:1199.98px){.site-header{left:12px;right:12px;top:12px}.site-header--scrolled{top:0}.site-header__navigation{position:absolute;top:100%;left:0;right:0;background:white;max-height:75vh;overflow:auto;border-top:1px solid var(--dvip-border)}.site-header__toggle{margin-left:auto;margin-right:10px;order:2}.site-header__tools{order:3}.site-header__menu{align-items:stretch;padding:12px 18px;gap:0}.site-header__menu .nav-link{flex:1;padding:12px 0;font-size:16px}.site-navigation__toggle{min-width:44px;flex-basis:44px}.site-header__menu .nav-link:after{bottom:5px}.site-navigation__submenu,.site-navigation__submenu .site-navigation__submenu{position:static;min-width:0;box-shadow:none;border-top:0;border-left:2px solid #e97d2740;margin-left:16px;background:#fff9f3}.site-navigation__submenu .site-navigation__submenu{background:white}.site-navigation__submenu .site-navigation__chevron{transform:none}}
@media(max-width:767.98px){.site-header{left:0;right:0;top:0}.site-header__navbar{min-height:72px}.site-header__brand{padding:12px}.site-header__brand img{width:77px;height:42px}.site-header__tour{padding:10px;gap:6px}.site-header__tour small{font-size:9px;line-height:15px}.site-header__tour strong{font-size:13px}.site-header__language{padding:0 7px}.site-header__tour .ui-icon{width:18px;height:18px}.site-header__toggle{margin:0 4px;width:44px;padding:9px}.site-footer{padding-top:45px}.site-footer__title{font-size:27px}.site-footer__main> [class*="col-"]{margin-bottom:26px}.site-footer__main p,.site-footer__main li{font-size:13px;line-height:24px}.site-footer__brand{min-height:220px;margin:0}.site-footer__brand>span{font-size:90px}.site-footer__brand>small{font-size:10px}.site-footer__bottom{flex-direction:column;align-items:flex-start;gap:4px;margin-top:20px;font-size:11px}}
@media(max-width:374.98px){.site-header__language{display:none}}

/* ---- components.css ---- */
.ui-icon{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.hero{height:794px;position:relative;isolation:isolate;overflow:hidden;background:#d7e9ed}.hero__carousel,.hero .carousel-inner,.hero .carousel-item{height:100%}
.hero__image{width:100%;height:100%;object-fit:cover;object-position:center}.hero__wash{position:absolute;inset:0;background:#ffffff22;pointer-events:none}.hero__wash--strong{background:#ffffff56}
.hero__content{position:absolute;top:226px;left:0;right:0;color:var(--dvip-accent)}.hero__kicker{font-size:24px;line-height:33px;font-weight:500;margin-bottom:6px;max-width:780px}.hero__title{font-size:64px;line-height:1.13;font-weight:700;letter-spacing:-2px;margin-bottom:24px;max-width:930px}.hero__description{font-size:18px;line-height:29px;max-width:680px;color:var(--dvip-green);margin-bottom:32px}
.hero__controls{position:absolute;right:4%;bottom:150px;display:flex;align-items:center;gap:10px;z-index:3;font-size:11px;color:var(--dvip-green)}.hero__controls .btn{padding:0;width:44px;height:44px;border:1px solid #12334f33;background:#ffffffc9;color:var(--dvip-green);border-radius:50%}
.hero__clouds{position:absolute;bottom:-10px;left:0;width:200%;height:145px;background:url('../image/clouds.png') repeat-x;background-size:50% 100%;pointer-events:none;z-index:2;animation:cloud-drift 55s linear infinite}
.hero .carousel-item.active .hero__image{animation:hero-pan 8.5s linear both}.hero .carousel-item.active .hero__content>*{animation:hero-layer .85s both}.carousel-fade .carousel-item{transition:opacity 1s}
.highlights{position:relative;margin-top:-110px;z-index:5}.highlight-card{display:flex;gap:24px;min-height:244px;height:100%;padding:35px 28px;background:var(--dvip-green);border-top:4px solid var(--dvip-orange);color:white}.highlight-card:hover{background:#174767;color:white}.highlight-card--accent{background:var(--dvip-orange)}.highlight-card--accent:hover{background:var(--dvip-orange-dark)}.highlight-card__icon{width:64px;flex:0 0 64px}.highlight-card__icon svg{width:64px;height:64px}.highlight-card h2{font-size:18px;line-height:27px;font-weight:600;margin:0 0 10px}.highlight-card p{font-size:15px;line-height:24px;color:#ffffffb0;margin-bottom:10px}.highlight-card__link{font-size:13px;color:var(--dvip-gold-light)}.highlight-card--accent p,.highlight-card--accent .highlight-card__link{color:white}.highlight-card--accent svg *{stroke:white}
.infra-card{display:block;width:100%;color:var(--dvip-green)}.infra-card__image,.news-card__image{overflow:hidden;background:#edf3f8;aspect-ratio:var(--dvip-media-ratio);margin-bottom:18px}.infra-card__image img,.news-card__image img{width:100%;height:100%;object-fit:cover;transition:transform .7s}.infra-card:hover img,.news-card:hover img{transform:scale(1.055)}.infra-card__title{font-size:22px;line-height:31px;font-weight:500;margin-bottom:5px}.infra-card__spec{font-size:15px;line-height:24px;color:var(--dvip-accent);margin-bottom:4px}.infra-card__description{font-size:15px;line-height:24px;color:var(--dvip-muted);margin:0}
.overview{padding:16px 0 32px}.overview__stats{margin-top:50px}.stat{text-align:center}.stat__value{display:flex;align-items:flex-start;justify-content:center;gap:5px;white-space:nowrap;line-height:1;margin-bottom:28px}.stat__value>span{font-size:64px;letter-spacing:-3px;font-weight:500}.stat__value small{font-size:22px;line-height:30px;color:var(--dvip-orange)}.stat p{font-size:14px;line-height:23px;color:var(--dvip-muted);margin:0}
.port-section{padding-top:70px;padding-bottom:110px}.port-collage{height:440px;position:relative}.port-collage__image{position:absolute;object-fit:cover;aspect-ratio:var(--dvip-media-ratio)}.port-collage__image--one{left:0;top:75px;width:47%;transform:rotate(-2deg);z-index:2}.port-collage__image--two{right:6%;top:0;width:31%;transform:rotate(2deg);z-index:3}.port-collage__image--three{right:0;bottom:0;width:47%;transform:rotate(1deg)}.display-title{font-size:52px;line-height:1.13;font-weight:600;letter-spacing:-1.5px;color:var(--dvip-accent);margin-bottom:26px}.port-section__copy>p:not(.section-kicker){font-size:16px;line-height:27px;color:#12334fb3;margin-bottom:17px}
.products{background:var(--dvip-warm)}.products__banner{position:relative;isolation:isolate;padding-top:140px;text-align:center;color:white;background:var(--dvip-green) var(--banner-image) center/cover fixed}.products__banner:before{content:'';position:absolute;inset:0;background:#092b48c2;z-index:-1}.products__banner h2{font-size:46px;line-height:1.2;letter-spacing:-1px;font-weight:600;max-width:950px;margin:0 auto 70px}.products__tabs{justify-content:center;gap:30px;border:0;margin:0}.products__tabs .nav-link{background:transparent;border:0;border-bottom:3px solid transparent;color:#ffffffb0;font-size:16px;min-height:54px;padding:0 0 24px;border-radius:0}.products__tabs .nav-link.active{background:transparent;color:var(--dvip-gold-light);border-bottom-color:var(--dvip-orange)}.products__content{padding-top:64px}.product-panel__copy{padding:20px 28px 35px 0}.product-panel__label{font-size:14px;color:var(--dvip-muted);margin-bottom:22px}.product-panel__copy h3{font-size:25px;line-height:35px;font-weight:500;margin-bottom:28px}.check-list{list-style:none;padding:0;margin-bottom:28px}.check-list li{position:relative;padding-left:40px;font-size:16px;line-height:27px;color:var(--dvip-muted);margin-bottom:18px}.check-list li:before{content:'✓';position:absolute;left:0;top:2px;width:23px;height:23px;border:1px solid var(--dvip-orange);border-radius:50%;text-align:center;font-size:15px;line-height:21px;color:var(--dvip-accent)}.product-panel__image{overflow:hidden;aspect-ratio:var(--dvip-media-ratio);align-self:center;background:#e7eff6}.product-panel__image img{width:100%;height:100%;object-fit:cover}
.benefits{padding-top:88px;padding-bottom:100px}.benefits__grid{margin-top:52px}.benefit{text-align:center;border-top:2px solid #e97d274d;padding-top:22px}.benefit__icon{height:90px;display:flex;justify-content:center;align-items:flex-start;margin-bottom:28px}.benefit__icon svg{width:64px;height:64px}.benefit h3{font-size:18px;line-height:27px;font-weight:500;margin-bottom:12px}.benefit p{font-size:15px;line-height:25px;color:var(--dvip-muted);margin:0}
.location{background:var(--dvip-green);color:white}.location__map-column{position:relative;min-height:700px;overflow:hidden;background:#e7eff5}.location__fallback{position:absolute;inset:0}.location__fallback .dvip-map-heading,.location__fallback .dvip-map-controls{display:none}.location__fallback svg,.location__fallback .dvip-map,.location__fallback .dvip-map-viewport{width:100%;height:100%}.location__fallback svg{object-fit:cover;transform-origin:center;transition:transform .2s}.location__fallback .map-point{cursor:pointer}.location__map-note{position:absolute;left:0;right:0;bottom:0;z-index:5;background:#ffffffde;color:#506d87;padding:7px 15px;font-size:10px;line-height:16px}.location__map-controls{position:absolute;top:15px;left:15px;display:flex;gap:3px;z-index:4}.location__map-controls .btn{width:44px;height:44px;padding:0;background:white;border:1px solid var(--dvip-border);color:var(--dvip-green)}
.location__copy{max-width:640px;padding:70px 48px 60px}.location__copy>.section-kicker{color:var(--dvip-gold);font-size:25px;line-height:34px;margin-bottom:24px}.location__copy h2{font-size:48px;line-height:1.1;letter-spacing:-1px;font-weight:600;margin-bottom:22px}.location__copy>p:not(.section-kicker){font-size:16px;line-height:27px;color:#ffffffb0;margin-bottom:23px}.location__routes{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.location__routes .btn{background:transparent;border:1px solid #ffffff40;color:#ffffffc0;font-size:13px;line-height:21px;padding:10px 12px}.location__routes .btn.active,.location__routes .btn:hover{background:var(--dvip-gold);color:var(--dvip-green);border-color:var(--dvip-gold)}.location__detail{border-top:1px solid #ffffff30;padding-top:18px;margin-bottom:25px;min-height:130px}.location__detail strong{display:block;font-size:18px;line-height:27px;font-weight:600;margin-bottom:8px}.location__detail p{font-size:14px;line-height:24px;color:#ffffffb0;margin-bottom:8px}.location__detail a{font-size:12px;color:var(--dvip-gold-light)}.location__actions{display:flex;flex-wrap:wrap;align-items:center;gap:24px}.location__link{font-size:13px;min-height:44px;display:inline-flex;align-items:center}
.news{padding:72px 0 32px}.news .section-heading{gap:20px;flex-wrap:wrap}.news-card{display:block}.news-card h3{font-size:22px;line-height:1.45;font-weight:500;margin:12px 0}.news-card p{font-size:15px;line-height:1.7;color:var(--dvip-muted);margin-bottom:20px}.news-list__grid .news-card p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.news-list__category{display:block;color:var(--dvip-orange-dark);font-size:12px;line-height:20px;margin:16px 0 8px}.news-list__read{display:inline-flex;gap:24px;align-items:center;min-height:44px;font-size:13px;color:var(--dvip-accent);border-bottom:1px solid #e97d2755;padding-bottom:8px;margin-top:12px}.news-list__read b{font-size:18px;font-weight:400}
.supplier-section--logos{padding:54px 0 46px;background:white;border-top:1px solid #edf1f4}.supplier-section--logos .section-title{margin-bottom:26px}.supplier-slider{display:flex;align-items:center;gap:16px}.supplier-slider__track{display:flex;flex:1;min-width:0;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.supplier-slider__track::-webkit-scrollbar{display:none}.supplier-slider__logo{flex:0 0 calc((100% - 80px)/5);height:98px;display:flex;align-items:center;justify-content:center;padding:16px;scroll-snap-align:start}.supplier-slider__logo img{width:auto;height:auto;max-width:100%;max-height:60px;object-fit:contain}.supplier-slider__arrow{flex:0 0 44px;width:44px;height:44px;padding:0;border:1px solid #dce5ec;background:white;color:var(--dvip-green);font-size:20px}.supplier-slider__arrow:hover{background:var(--dvip-warm);border-color:var(--dvip-orange)}
.offline-map{position:relative;background:#eaf2f3;overflow:hidden;border:1px solid var(--dvip-border)}.offline-map__svg{display:block;width:100%;height:auto;max-height:670px}.offline-map__note{font-size:11px;line-height:20px;margin:0;padding:12px 18px;background:#f1f6fa;color:#6b8193}.offline-map .map-point{pointer-events:none}.offline-banner{padding:18px;background:#edf4f9;border-left:3px solid var(--dvip-orange);font-size:13px;line-height:23px;color:#537088}
.media--portrait{aspect-ratio:3/4}.media--banner{aspect-ratio:16/7}
@keyframes hero-pan{from{transform:scale(1)}to{transform:scale(1.035)}}@keyframes hero-layer{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes cloud-drift{to{transform:translateX(-25%)}}
@media(max-width:1199.98px){.hero{height:720px}.hero__content{top:190px}.hero__title{font-size:54px}.infra-card__title{font-size:20px}.product-panel__copy h3{font-size:23px}.location__copy{padding:55px 32px}.location__copy h2{font-size:42px}.display-title{font-size:44px}}
@media(max-width:991.98px){.highlight-card{padding:30px 22px;gap:18px}.highlight-card__icon{flex-basis:42px;width:42px}.highlight-card__icon svg{width:42px;height:42px}.highlight-card h2{font-size:17px}.highlight-card p{font-size:14px}.stat__value>span{font-size:44px;letter-spacing:-2px}.stat__value small{font-size:15px}.stat p{font-size:13px}.port-collage{height:350px}.display-title{font-size:36px}.products__banner{padding-top:100px;background-attachment:scroll}.products__banner h2{font-size:34px;margin-bottom:50px}.products__content{padding-top:45px}.check-list li{font-size:14px;line-height:24px}.location__map-column{min-height:500px}.location__copy{max-width:none;padding:45px 30px}.benefits{padding:65px 0 40px}.benefit h3{font-size:17px}.benefit p{font-size:14px}.supplier-slider__logo{flex-basis:calc((100% - 40px)/3)}}
@media(max-width:767.98px){.hero{height:690px}.hero__content{top:145px}.hero__kicker{font-size:17px;line-height:26px}.hero__title{font-size:39px;letter-spacing:-1.4px}.hero__description{font-size:16px;line-height:26px}.hero__wash{background:#ffffff45}.hero__wash--strong{background:#ffffff70}.hero__controls{bottom:100px;gap:8px}.hero__clouds{height:90px}.highlights{margin-top:-65px}.highlight-card{min-height:0;padding:28px 24px}.highlight-card h2{font-size:18px}.highlight-card p{font-size:15px}.infra-card__title{font-size:18px;line-height:26px;min-height:52px}.infra-card__spec{font-size:12px;line-height:21px}.infra-card__description{font-size:13px;line-height:22px}.overview{padding:5px 0 15px}.overview__stats{margin-top:30px}.stat__value{margin-bottom:15px}.stat p{font-size:12px}.port-section{padding:40px 0 45px}.port-collage{height:300px;max-width:500px;margin:0 auto 35px}.port-collage__image--one{top:50px}.port-section__copy .display-title{font-size:38px}.products__banner{padding-top:65px}.products__banner h2{font-size:30px;margin-bottom:38px}.products__tabs{gap:20px}.products__tabs .nav-link{font-size:14px}.products__content{padding-top:30px}.product-panel__copy{padding:0 0 30px}.product-panel__copy h3{font-size:23px;line-height:33px}.check-list li{font-size:15px;line-height:26px}.benefits{padding:50px 0 24px}.benefits__grid{margin-top:35px}.benefit__icon{height:65px;margin-bottom:15px}.benefit__icon svg{width:54px;height:54px}.benefit h3{min-height:52px}.location__map-column{min-height:420px}.location__copy{padding:40px 24px 45px}.location__copy h2{font-size:36px}.location__copy>.section-kicker{font-size:21px;line-height:28px}.news{padding:40px 0 10px}.supplier-section--logos{padding:36px 0 30px}.supplier-slider{gap:6px}}
@media(max-width:575.98px){.stat__value>span{font-size:36px}.stat__value small{font-size:13px}.supplier-slider__logo{flex-basis:calc((100% - 20px)/2);height:86px;padding:10px}.supplier-slider__logo img{max-height:48px}.hero__title{font-size:37px}.products__tabs{gap:14px}.products__tabs .nav-link{font-size:13px}}

/* ---- pages.css ---- */
.page-hero{position:relative;isolation:isolate;padding:160px 0 44px;color:white;background:var(--dvip-green);overflow:hidden}.page-hero:after{content:'';position:absolute;inset:0;background:var(--page-image) center 45%/cover;z-index:-2}.page-hero:before{content:'';position:absolute;inset:0;background:#082844cf;z-index:-1}.page-hero h1{font-size:40px;line-height:1.25;font-weight:600;letter-spacing:-1px;max-width:1100px;margin:0}.page-hero__breadcrumb{display:flex;gap:10px;flex-wrap:wrap;font-size:12px;line-height:22px;margin-bottom:16px;color:#ffffffa0}.page-hero__breadcrumb a{color:white}
.page-section{padding:48px 0 80px}.article-intro{max-width:1000px;margin-bottom:40px}.article-intro h2,.article-copy>h2{font-size:30px;line-height:1.4;font-weight:500;letter-spacing:-.6px;margin:0 0 24px}.article-copy{font-size:17px;line-height:30px;color:#526d82}.article-copy>p{margin-bottom:24px}.article-copy>h2{font-size:28px;margin-top:38px;color:var(--dvip-green);scroll-margin-top:125px}.article-copy>h3{font-size:25px;line-height:35px;font-weight:500;color:var(--dvip-green);margin:34px 0 18px;scroll-margin-top:125px}.article-copy>h3:first-child{margin-top:0}.article-lead{font-size:20px;line-height:33px;color:#244d70;font-weight:500;margin-bottom:28px}.article-copy--wide{max-width:1000px;margin-top:40px}.article-copy>ul{padding-left:22px}.article-figure{margin:34px 0}.article-figure img{width:100%;aspect-ratio:var(--dvip-media-ratio);object-fit:cover}.article-figure figcaption{font-size:11px;line-height:20px;color:#8b9ca9;margin-top:10px}.article-intro+.row .article-figure{margin-top:0}
.article-sidebar{position:sticky;top:130px}.article-sidebar__nav{padding:28px;background:#f0f5f9;margin-bottom:25px}.article-sidebar__nav h2{font-size:20px;line-height:28px;font-weight:600;margin-bottom:20px}.article-sidebar__nav>a{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:44px;padding:14px 0;border-top:1px solid var(--dvip-border);font-size:15px;line-height:24px;color:#54748f}.article-sidebar__nav>a.active,.article-sidebar__nav>a:hover{color:var(--dvip-accent)}.article-sidebar__contact{padding:30px 28px;background:var(--dvip-green);color:white}.article-sidebar__contact>span{font-size:10px;letter-spacing:1.5px;color:var(--dvip-gold-light);display:block;margin-bottom:18px}.article-sidebar__contact h3{font-size:24px;line-height:33px;font-weight:500;margin-bottom:20px}.article-sidebar__contact p{font-size:14px;line-height:24px;color:#ffffffb0;margin-bottom:25px}.article-sidebar__contact .action-button{font-size:12px;gap:20px;padding:14px 18px}
.article-callout{background:var(--dvip-warm);border-left:3px solid var(--dvip-orange);padding:28px 30px;margin:35px 0}.article-callout h3{font-size:22px;line-height:32px;color:var(--dvip-green);font-weight:500;margin-bottom:12px}.article-callout p{font-size:16px;line-height:28px;margin:0;color:#57748a}.article-callout .action-button{margin-top:22px}.article-sources{border-top:1px solid var(--dvip-border);margin-top:38px;padding-top:25px}.article-sources h3{font-size:18px;font-weight:600;color:var(--dvip-green);margin-bottom:15px}.article-sources a{display:block;font-size:12px;line-height:22px;color:var(--dvip-accent);margin-bottom:8px;overflow-wrap:anywhere}.article-table{font-size:15px;line-height:25px;margin-bottom:20px}.article-table th{background:var(--dvip-green);color:white;font-weight:500}.article-table td,.article-table th{padding:15px 18px;border-bottom:1px solid var(--dvip-border);vertical-align:top}.article-table tbody tr:nth-child(even){background:#f1f6fa}.inner-page #quy-mo{padding:45px 0 35px;background:#f1f6fa}.inner-page #loi-the{padding:65px 0 45px}
.news-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:24px;padding:24px 0;border-top:1px solid var(--dvip-border);border-bottom:1px solid var(--dvip-border)}.news-toolbar__filters{display:flex;flex-wrap:wrap;gap:10px}.news-toolbar__filters .btn{border:1px solid var(--dvip-border);background:white;color:#55748c;padding:10px 15px;font-size:13px;line-height:22px}.news-toolbar__filters .btn.active,.news-toolbar__filters .btn:hover{background:var(--dvip-accent);border-color:var(--dvip-accent);color:white}.news-toolbar__search{position:relative;max-width:360px;flex:1 1 240px;margin:0}.news-toolbar__search .form-control{padding-right:36px;font-size:14px}.news-toolbar__search>span:last-child{position:absolute;right:13px;top:7px;font-size:23px;color:#51758e;pointer-events:none}.news-list__count{font-size:12px;line-height:20px;color:#8296a5;margin:18px 0 24px}.news-list__empty{text-align:center;background:#f2f6f9;padding:55px 25px}.news-list__empty h3{font-size:25px;line-height:35px;font-weight:500}.news-list__empty p{font-size:16px;color:#748b9c}
.article-meta{display:flex;align-items:center;gap:18px;flex-wrap:wrap;font-size:11px;line-height:20px;margin-bottom:26px;padding-bottom:20px;border-bottom:1px solid var(--dvip-border);color:#8ba0ae}.article-meta>a{color:var(--dvip-orange-dark)}.article-meta .btn{background:none;border:0;color:var(--dvip-accent);padding:0;margin-left:auto;font-size:11px}.article-meta #copyStatus{flex-basis:100%;font-size:11px;color:var(--dvip-accent)}.article-meta #copyStatus:empty{display:none}.article-back{display:inline-flex;align-items:center;min-height:44px;font-size:14px;color:var(--dvip-accent);font-weight:500;margin-top:10px}.related-news{background:#f1f6fa;padding:60px 0 32px}
.contact-page__info>h2,.contact-page__form>h2{font-size:28px;line-height:1.35;font-weight:500;margin-bottom:22px}.contact-page__info>p{font-size:16px;line-height:1.7;color:#647e92;margin-bottom:32px}.contact-info{border-top:1px solid var(--dvip-border);padding-top:24px;margin-top:24px}.contact-info>span{display:block;font-size:12px;letter-spacing:.5px;color:#60788b;margin-bottom:12px}.contact-info strong{display:block;font-size:18px;line-height:29px;font-weight:500;margin-bottom:13px}.contact-info>a:not(.contact-info__phone){display:inline-flex;align-items:center;min-height:44px;font-size:13px;color:var(--dvip-accent)}.contact-info__phone{display:block;font-size:29px;line-height:38px;font-weight:600;color:var(--dvip-accent)}.contact-info small{display:block;font-size:11px;color:#95a4b0;margin-top:7px}.contact-page__image .article-figure{margin:30px 0 0}.contact-page__form{padding:40px;background:#f0f5f9}.contact-form label>span{color:#d87930}.contact-form .form-control{background:transparent;border:0;border-bottom:1px solid #12334f30;padding-left:0;padding-right:0}.contact-form textarea.form-control{min-height:120px}.contact-form__status{font-size:11px;line-height:20px;color:#6a8193;margin:16px 0 0}.contact-page__map{margin-top:60px}.contact-page__map>h2{font-size:28px;line-height:37px;font-weight:500;margin-bottom:25px}.contact-form.was-validated .form-control:invalid{border-color:#c53737}.contact-form .invalid-feedback{display:block;visibility:hidden;font-size:12px;line-height:18px;min-height:18px}.contact-form.was-validated .form-control:invalid~.invalid-feedback{visibility:visible}
@media(max-width:991.98px){.article-sidebar{position:static}.article-copy{font-size:16px;line-height:29px}.article-lead{font-size:19px;line-height:32px}.contact-page__image{display:none}.contact-page__form{padding:35px}.contact-page__map{margin-top:45px}}
@media(max-width:767.98px){.page-hero{padding:125px 0 32px}.page-hero h1{font-size:30px;letter-spacing:-.7px}.page-section{padding:32px 0 48px}.article-intro{margin-bottom:28px}.article-intro h2,.article-copy>h2{font-size:26px;line-height:36px;margin-bottom:20px}.article-copy>h3{font-size:23px;line-height:33px;margin-top:28px}.article-lead{font-size:18px;line-height:30px}.article-copy{line-height:28px}.article-figure{margin:27px 0}.article-figure figcaption{font-size:10px;line-height:18px}.article-callout{padding:24px 22px;margin:28px 0}.article-callout h3{font-size:21px;line-height:30px}.article-table{font-size:13px;line-height:23px}.article-table td,.article-table th{padding:12px}.news-toolbar{padding:20px 0;gap:20px}.news-toolbar__filters{gap:8px}.news-toolbar__filters .btn{font-size:12px;padding:9px 11px}.news-toolbar__search{max-width:100%;flex-basis:100%}.article-meta{gap:10px 16px}.article-meta .btn{margin-left:0}.related-news{padding:40px 0 10px}.contact-page__info>h2,.contact-page__form>h2{font-size:24px}.contact-page__form{padding:28px 22px}.contact-page__map{margin-top:38px}}

/* theme dvip - platform additions, loaded after the sample rules above */
/* logo slot of header.tpl (h1 on home, div elsewhere) must not break the navbar flex row */
.site-header__logo-slot{display:contents;margin:0;font-size:inherit}
.site-header__brand .logo-text{font-size:28px;font-weight:800;letter-spacing:1px;color:var(--dvip-accent)}
/* search form around the toolbar label of the news list: label stays the flex item of .news-toolbar */
.news-toolbar__search-form{display:contents}
.news-toolbar__filters a.btn{display:inline-flex;align-items:center}
/* platform pagination (kit general/pagination.tpl) */
.dv-pagination{margin-top:32px}
.dv-pagination .pagination{flex-wrap:wrap;gap:6px}
.dv-pagination .page-link{border-radius:0;color:var(--dvip-green)}
.dv-pagination .active .page-link,.dv-pagination .page-item.active span{background:var(--dvip-orange);border-color:var(--dvip-orange);color:#fff}
/* language box of the platform inside the header tools */
.site-header__language .language-select .btn{min-height:32px;padding:2px 8px;border:0;background:transparent}
.site-header__language .language-select img{width:24px;height:auto}
/* desktop level 1 chevron sits next to its text: 44px button -> 14px, invisible ::before keeps a wider tap area; touch menu below 1200px keeps 44px */
@media(min-width:1200px){
.site-header__menu{gap:14px}
.site-header__menu>li>.site-navigation__item-row>.site-navigation__toggle{position:relative;flex:0 0 14px;min-width:14px}
.site-header__menu>li>.site-navigation__item-row>.site-navigation__toggle:before{content:'';position:absolute;top:0;bottom:0;left:-4px;right:-7px}
}
/* newsletter form status after ajax */
.contact-form .form-control.is-invalid~.invalid-feedback{display:block}
/* Activity slider: Bootstrap columns determine the responsive slide width. */
.activity-gallery{background:var(--dvip-light)}
.activity-gallery__heading{display:flex;align-items:center;justify-content:space-between;gap:20px}
.activity-gallery__controls{display:flex;gap:8px;flex-shrink:0}
.activity-gallery__arrow{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;background:white;color:var(--dvip-green);border:1px solid var(--dvip-border);font-size:22px}
.activity-gallery__arrow:hover{background:var(--dvip-orange);border-color:var(--dvip-orange);color:white}
.activity-gallery__track{margin:0;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.activity-gallery__track::-webkit-scrollbar{display:none}
.activity-gallery__column{scroll-snap-align:start;scroll-snap-stop:always;padding:0 15px}.activity-gallery__slide+.activity-gallery__slide{margin-top:30px}
.activity-gallery__track:focus-visible{outline:2px solid var(--dvip-orange);outline-offset:3px}
.activity-gallery__card{position:relative;display:block;width:100%;padding:0;border:0;overflow:hidden;background:var(--dvip-green);text-align:left;aspect-ratio:var(--dvip-media-ratio)}
.activity-gallery__image{width:100%;height:100%;object-fit:cover;transition:transform .45s,filter .45s}
.activity-gallery__overlay{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:26px;background:linear-gradient(180deg,#ffffff18 0%,transparent 35%,#082844dc 100%);color:white;opacity:0;transition:opacity .3s}
.activity-gallery__title{font-size:20px;font-weight:500;line-height:1.4;transform:translateY(8px);transition:transform .3s}
.activity-gallery__open{flex:0 0 44px;height:44px;display:flex;align-items:center;justify-content:center;border:1px solid #ffffff90;font-size:24px}
.activity-gallery__card:hover .activity-gallery__image,.activity-gallery__card:focus-visible .activity-gallery__image{transform:scale(1.045);filter:brightness(1.12)}
.activity-gallery__card:hover .activity-gallery__overlay,.activity-gallery__card:focus-visible .activity-gallery__overlay{opacity:1}
.activity-gallery__card:hover .activity-gallery__title,.activity-gallery__card:focus-visible .activity-gallery__title{transform:translateY(0)}
.activity-gallery__card:focus-visible{outline-offset:4px}
.activity-lightbox .modal-content{border:0;border-radius:0;background:white}
.activity-lightbox .modal-header{align-items:center;border:0;padding:14px 20px}
.activity-lightbox .modal-title{font-size:21px;line-height:1.4;font-weight:500;margin:0}
.activity-lightbox__close{font-size:30px;line-height:1;min-width:44px;min-height:44px;padding:0;color:var(--dvip-green)}
.activity-lightbox .modal-body{padding:0}
.activity-lightbox__stage{position:relative;background:#092438;display:flex;align-items:center;justify-content:center;min-height:200px}
.activity-lightbox__stage>img{max-height:72vh;width:100%;height:auto;object-fit:contain}
.activity-lightbox__previous,.activity-lightbox__next{position:absolute;top:50%;transform:translateY(-50%);min-width:44px;height:44px;padding:0;background:#ffffffeb;color:var(--dvip-green);font-size:22px}
.activity-lightbox__previous{left:12px}.activity-lightbox__next{right:12px}
.activity-lightbox__footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 20px;color:var(--dvip-muted);font-size:12px}
.activity-lightbox__footer p{margin:0}
@media(max-width:991.98px){.activity-gallery__title{font-size:18px}.activity-gallery__overlay{padding:20px}}
@media(hover:none),(max-width:767.98px){.activity-gallery__overlay{opacity:1;background:linear-gradient(180deg,transparent 45%,#082844c9 100%)}.activity-gallery__title{transform:none;font-size:17px}.activity-lightbox .modal-title{font-size:18px}}
@media(prefers-reduced-motion:reduce){.activity-gallery__image,.activity-gallery__overlay,.activity-gallery__title{transition:none}}
