.route-page{--route-blue:#10447e;--route-navy:#102b4b;--route-muted:#738ca5;--route-pale:#eff4f9;--route-red:#ef2737;color:var(--route-navy)}
.route-page .vg-container{width:min(85%,1640px)}
.route-page h1,.route-page h2,.route-page h3,.route-page p{margin-top:0}
.route-page p{line-height:1.55}
.route-page h2{font-size:clamp(32px,2.35vw,44px);line-height:1.14;letter-spacing:-.025em}
.route-page h3{font-size:clamp(19px,1.35vw,26px);line-height:1.25}
.route-hero{min-height:800px;color:#fff;background-position:center;background-size:cover;position:relative;display:flex;align-items:center}
.route-hero--china{background-image:linear-gradient(90deg,rgba(0,23,49,.88) 0%,rgba(0,29,61,.58) 48%,rgba(0,33,70,.12) 100%),url('../images/shipping-from-china-banner-v1.png')}
.route-hero--asia{background-image:linear-gradient(90deg,rgba(0,23,49,.88) 0%,rgba(0,29,61,.58) 48%,rgba(0,33,70,.12) 100%),url('../images/southeast-asia-banner-v1.png')}
.route-hero--indonesia{background-image:linear-gradient(90deg,rgba(0,23,49,.88) 0%,rgba(0,29,61,.58) 48%,rgba(0,33,70,.12) 100%),url('../images/indonesia-country-route-banner-v1.png')}
.route-hero-inner{padding:90px 0 100px}
.route-hero-inner>p{font-size:18px;font-weight:700;letter-spacing:.07em;margin-bottom:35px}
.route-hero h1{font-size:clamp(48px,4.1vw,78px);line-height:1.08;letter-spacing:-.03em;max-width:1000px;margin:0 0 38px}
.route-hero-description{max-width:830px;font-size:17px;line-height:1.6;color:#e4edf7;margin-bottom:36px}
.route-button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;min-width:260px;min-height:58px;background:var(--route-red);border:0;border-radius:3px;color:#fff!important;padding:14px 25px;font-size:15px;font-weight:700;line-height:1.3;transition:background .2s,transform .2s}
.route-button:hover{background:#c91d2c;transform:translateY(-2px)}
.route-link{display:inline-flex;align-items:center;gap:25px;color:var(--route-blue);font-weight:700;font-size:15px;line-height:1.3}
.route-link:hover{color:var(--route-red)}
.route-link span,.route-button span{font-size:21px;font-weight:400}
.route-breadcrumb{display:flex;align-items:center;gap:14px;min-height:83px;font-size:13px;color:#70879d}
.route-breadcrumb a:hover{color:var(--route-red)}
.route-section{padding:105px 0}
.route-section.route-tint,.route-section.route-resources-plain,.route-section.route-blogs,.route-section.route-transit,.route-section.route-mode-section,.route-section.route-cost-band{background:var(--route-pale)}
.route-heading{max-width:1070px;margin-bottom:52px}
.route-eyebrow{font-size:13px;color:var(--route-red);font-weight:700;letter-spacing:.055em;text-transform:uppercase;margin-bottom:21px}
.route-heading h2{margin-bottom:16px}
.route-heading>p:last-child:not(.route-eyebrow){max-width:900px;color:var(--route-muted);font-size:16px;line-height:1.55}
.route-intro-section{padding:28px 0 105px}
.route-intro-layout{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:7%}
.route-intro-layout .route-heading{margin:0}
.route-intro-layout .route-heading>p:last-child{max-width:690px;line-height:1.7}
.route-intro-layout .vg-image-zoom{aspect-ratio:1.78}
.route-page .vg-image-zoom img{width:100%;height:100%;object-fit:cover}
.route-card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.route-card{display:flex;flex-direction:column;min-width:0;border:1px solid #d8e3ed;background:#fff;padding:35px 30px;min-height:255px}
.route-card-number{font-size:13px;font-weight:700;color:#9bb0c4;letter-spacing:.06em;margin-bottom:25px}
.route-card h3{margin-bottom:18px}
.route-card p{font-size:15px;color:var(--route-muted);margin-bottom:26px}
.route-card .route-link{margin-top:auto}
.route-regions{display:grid;grid-template-columns:1fr 2fr;gap:20px}
.route-region-feature{min-height:700px;padding:48px;color:#fff;background:linear-gradient(0deg,rgba(0,25,60,.85),rgba(3,36,82,.2)),url('../images/destination-first-card-bg-v1.png') center/cover;display:flex;flex-direction:column;justify-content:flex-end}
.route-region-feature>p:first-child{font-size:13px;font-weight:700;letter-spacing:.07em}
.route-region-feature h3{font-size:36px}
.route-region-feature>p:not(:first-child){font-size:16px;max-width:340px}
.route-region-feature .route-button{margin-top:15px;width:max-content;min-width:220px}
.route-regions-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.route-regions-grid .route-card{min-height:220px;padding:24px 28px}
.route-regions-grid .route-card-number{margin-bottom:12px}
.route-regions-grid .route-card h3{font-size:20px;margin-bottom:10px}
.route-regions-grid .route-card p{font-size:14px;margin-bottom:10px}
.route-starter-grid .route-card{min-height:310px}
.route-table-scroll{overflow-x:auto}
.route-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:15px}
.route-table th{background:var(--route-blue);color:#fff;text-align:left;font-size:16px;padding:18px 26px}
.route-table th:not(:last-child),.route-table td:not(:last-child){border-right:2px solid #fff}
.route-table td{padding:23px 26px;vertical-align:top;color:#637c95;line-height:1.55}
.route-table tr:nth-child(odd) td{background:#e5f0f8}
.route-table tr:nth-child(even) td{background:#f2f7fb}
.route-table td:first-child{font-weight:700;color:var(--route-navy)}
.route-cost-head,.route-table-gap{margin-top:95px}
.route-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.route-photo-grid article{background:#eff4f9;min-width:0}
.route-photo-grid .vg-image-zoom{aspect-ratio:1.9}
.route-photo-grid article>div:last-child{padding:38px 38px 45px}
.route-photo-grid h3{margin-bottom:20px}
.route-photo-grid p{color:var(--route-muted);font-size:16px;margin-bottom:30px}
.route-three{grid-template-columns:repeat(3,minmax(0,1fr))}
.route-resources-plain .route-card{border-top:3px solid var(--route-red);min-height:340px}
.route-center{text-align:center;margin-top:50px}
.route-country-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.route-country-grid .route-card{min-height:300px}
/* An even number of route cards plus the feature tile leaves one card stranded
   in a two-column grid, so the tile stretches over two rows and the grid closes
   flush. The class is only added for an even card count. */
.route-country-grid--tall-feature .route-country-image{grid-row:span 2}
.route-country-image{position:relative;min-height:300px;overflow:hidden}
.route-country-image .vg-image-zoom{height:100%}
.route-country-image span{position:absolute;bottom:0;left:0;right:0;padding:18px 25px;color:#fff;background:linear-gradient(transparent,rgba(0,20,45,.8));font-size:13px;font-weight:700;letter-spacing:.05em}
.route-service-connect{background:#f1f5f9}
.route-service-connect .route-card{min-height:320px;border-top:3px solid var(--route-red)}
.route-fleet{background:var(--route-blue);color:#fff}
.route-fleet-layout{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:7%}
.route-fleet .route-eyebrow{color:#fff}
.route-fleet .route-heading{margin:0 0 25px}
.route-fleet .route-heading>p:last-child{color:#d2e3f2}
.route-fleet .route-button{background:#fff;color:var(--route-blue)!important}
.route-fleet .vg-image-zoom{aspect-ratio:1.85}
.route-resource-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:27px}
.route-resource-grid article{min-width:0}
.route-resource-grid .vg-image-zoom{aspect-ratio:1.7;margin-bottom:27px;border-radius:5px}
.route-resource-grid .route-eyebrow{margin-bottom:15px}
.route-resource-grid p:not(.route-eyebrow){font-size:15px;color:var(--route-muted);min-height:92px}
.route-resource-grid h3{margin-bottom:17px}
.route-blogs{padding-bottom:120px}
.route-blog-shell{position:relative}
.route-blog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}
.route-blog-card{display:block;background:#fff;min-width:0}
.route-blog-card .vg-image-zoom{aspect-ratio:1.8}
.route-blog-card>span{min-height:135px;padding:26px;display:flex;align-items:center;justify-content:space-between;gap:22px;font-size:19px;font-weight:700;line-height:1.25}
.route-blog-card b{font-size:23px;font-weight:400;color:var(--route-blue)}
.route-blog-arrow{position:absolute;top:50%;transform:translateY(-50%);border:1px solid #bfd3e5;background:#fff;color:var(--route-blue);width:38px;height:38px;border-radius:50%;font-size:19px}
.route-blog-arrow:first-child{left:-58px}
.route-blog-arrow:last-child{right:-58px}
.route-faq-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:8%}
.route-faq .route-heading{margin-bottom:40px}
.route-faq-list{border-top:1px solid #cfdae5}
.route-faq-list details{border-bottom:1px solid #cfdae5;padding:0 0 0 0}
.route-faq-list summary{display:flex;align-items:center;justify-content:space-between;gap:30px;list-style:none;cursor:pointer;padding:28px 0;font-size:20px;font-weight:700}
.route-faq-list summary::-webkit-details-marker{display:none}
.route-faq-list summary span::before{content:'+';color:var(--route-blue);font-size:28px;font-weight:400}
.route-faq-list details[open] summary span::before{content:'−'}
.route-faq-list details p{font-size:16px;color:var(--route-muted);padding-right:55px;margin:-5px 0 25px}
.route-inquiry{background:var(--route-blue);color:#fff}
.route-inquiry-grid{display:grid;grid-template-columns:.88fr 1.12fr;gap:10%}
.route-inquiry .route-eyebrow{color:#fff}
.route-inquiry h2{font-size:clamp(40px,3vw,58px);max-width:550px}
.route-inquiry-grid>div>p:not(.route-eyebrow){font-size:17px;color:#d6e4f3;max-width:560px}
.route-inquiry-hint{margin-top:55px}
.route-inquiry-form{display:grid;gap:17px}
.route-form-pair{display:grid;grid-template-columns:1fr 1fr;gap:17px}
.route-inquiry-form label{display:block;font-size:14px;font-weight:700;color:#e7eff7}
.route-inquiry-form input:not([type=checkbox]),.route-inquiry-form select,.route-inquiry-form textarea{width:100%;display:block;margin-top:8px;border:1px solid #d9e4ee;background:#fff;color:#102b4b;border-radius:2px;padding:13px 15px;font-size:14px}
.route-inquiry-form textarea{resize:vertical;min-height:115px}
.route-inquiry-form .route-consent{display:flex;align-items:center;gap:9px;font-weight:400}
.route-consent a{text-decoration:underline}
.route-inquiry-form button{width:max-content;margin-top:2px}
.route-form-note{margin:0;color:#c9dcee;font-size:13px}
.route-form-note[data-inquiry-state=ok]{color:#d8f0d9}
.route-form-note[data-inquiry-state=error]{color:#ffc9c9}
.route-cost-band .route-card{border-top:3px solid var(--route-red)}
.route-cost-cards .route-card .route-link{display:none}
.route-checklist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 45px}
.route-checklist article{display:flex;gap:24px;border-top:2px solid #cddfeb;padding-top:24px}
.route-checklist span,.route-workflow span{font-size:36px;font-weight:700;color:#a4bbcf;line-height:1}
.route-checklist h3{font-size:21px;margin-bottom:12px}
.route-checklist p,.route-workflow p{color:var(--route-muted);font-size:15px}
.route-workflow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:25px}
.route-workflow article{border-left:2px solid #b3c9db;padding:10px 12px 10px 25px;min-height:230px}
.route-workflow h3{margin:25px 0 15px}
/* Site-wide search results (search.php): one group per content type. */.vg-search-head{padding:60px 0 26px}.vg-search-page-form{display:flex;gap:12px;max-width:760px;margin:0 0 20px}.vg-search-page-form input{flex:1;min-width:0;border:1px solid #d8e3ed;background:#fff;padding:16px 18px;font:inherit;font-size:16px;color:var(--route-navy)}.vg-search-page-form input:focus{outline:2px solid var(--route-blue);outline-offset:1px}.vg-search-page-submit{display:inline-flex;align-items:center;gap:22px;flex:0 0 auto;min-height:56px;padding:14px 28px;border:0;border-radius:3px;background:var(--route-red);color:#fff!important;font-size:15px;font-weight:700;cursor:pointer;transition:background .2s,transform .2s}.vg-search-page-submit:hover{background:#d31e2d;transform:translateY(-1px)}.vg-search-summary{margin:0;font-size:15px;color:var(--route-muted)}.vg-search-summary .vg-search-pageinfo{margin-left:18px}.vg-search-group{padding:54px 0;border-top:1px solid #e3ebf3}.vg-search-group .route-heading{margin-bottom:30px}.vg-search-group .route-card h3 a{color:inherit}.vg-search-group .route-card h3 a:hover{color:var(--route-blue)}.vg-search-pager{padding:0 0 84px}.vg-search-pager .route-pagination{margin-top:0}.vg-search-flat-list{display:grid;gap:14px}.vg-search-flat-row{display:flex;flex-direction:column;gap:8px;position:relative;border:1px solid #d8e3ed;background:#fff;padding:24px 28px;transition:border-color .2s,box-shadow .2s}.vg-search-flat-row:hover{border-color:var(--route-blue);box-shadow:0 6px 18px rgba(3,25,46,.08)}.vg-search-flat-type{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--route-red)}.vg-search-flat-title{font-size:19px;font-weight:700;line-height:1.3;color:var(--route-navy)}.vg-search-flat-text{font-size:14px;color:var(--route-muted);max-width:70ch}.vg-search-flat-row b{position:absolute;right:24px;top:24px;color:var(--route-blue)}.vg-search-group--faq .route-faq-list{display:grid;gap:0}.vg-search-group--destination .route-card-thumb{display:block;aspect-ratio:16/9;overflow:hidden;margin:0 0 18px;background:#eef3f8}@media(max-width:1600px){.route-blog-shell{padding-bottom:58px}.route-blog-arrow{top:auto;bottom:0;transform:none}.route-blog-arrow:first-child{left:calc(50% - 48px)}.route-blog-arrow:last-child{right:calc(50% - 48px)}}
@media(max-width:1100px){.route-page .vg-container{width:min(calc(100% - 72px),1640px)}.route-hero{min-height:650px}.route-regions{grid-template-columns:1fr}.route-region-feature{min-height:380px}.route-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.route-three{grid-template-columns:repeat(3,minmax(0,1fr))}.route-resource-grid{gap:16px}.route-fleet-layout,.route-intro-layout{gap:4%}}
@media(max-width:760px){.route-page .vg-container{width:calc(100% - 36px)}.route-section{padding:66px 0}.route-hero{min-height:590px;background-position:60% center}.route-hero-inner{padding:65px 0}.route-hero-inner>p{font-size:14px;margin-bottom:22px}.route-hero h1{font-size:clamp(38px,8vw,57px);margin-bottom:26px}.route-hero-description{font-size:15px}.route-intro-layout,.route-fleet-layout,.route-faq-layout,.route-inquiry-grid,.route-photo-grid,.route-country-grid{grid-template-columns:1fr}.route-intro-layout .vg-image-zoom,.route-fleet .vg-image-zoom{margin-top:22px}.route-regions-grid,.route-card-grid,.route-three,.route-checklist,.route-workflow,.route-resource-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.route-table{min-width:650px}.route-resource-grid article:last-child{grid-column:span 2}.route-blog-grid{grid-template-columns:1fr 1fr}.route-blog-grid .route-blog-card:last-child{display:none}.route-inquiry-grid{gap:35px}.route-inquiry-hint{margin-top:25px}}
@media(max-width:520px){.route-hero{min-height:540px}.route-breadcrumb{flex-wrap:wrap;padding:15px 0;min-height:65px}.route-section{padding:55px 0}.route-page h2{font-size:30px}.route-regions-grid,.route-card-grid,.route-three,.route-checklist,.route-workflow,.route-resource-grid,.route-blog-grid,.route-form-pair{grid-template-columns:1fr}.route-resource-grid article:last-child{grid-column:auto}.route-blog-shell{padding-bottom:0}.route-blog-arrow{display:none}.route-blog-grid .route-blog-card:last-child{display:block}.route-region-feature{min-height:340px;padding:30px}.route-card{min-height:220px}.route-faq-list summary{font-size:17px}.route-inquiry-form button{width:100%}}
@media(prefers-reduced-motion:reduce){.route-button{transition:none}}

/* Extra route-hero variants. The design ships dedicated art for the three
   designed pages only (china / asia / indonesia); every other region hub and
   country route seeded by the theme reuses the family banner so the hero never
   renders without a background image. */
.route-hero--south-asia,.route-hero--middle-east,.route-hero--europe,.route-hero--africa,.route-hero--south-america,.route-hero--malaysia,.route-hero--the-philippines,.route-hero--the-uae,.route-hero--germany{background-image:linear-gradient(90deg,rgba(0,23,49,.88) 0%,rgba(0,29,61,.58) 48%,rgba(0,33,70,.12) 100%),url('../images/shipping-from-china-banner-v1.png')}

/* One column: the feature tile keeps its own row instead of stretching. */
@media(max-width:760px){.route-country-grid--tall-feature .route-country-image{grid-row:auto}}

/* All-destinations directory: server-rendered numbered pagination (?dpage=N)
   and its empty state. Radius/contrast match the solutions directory. */
.route-pagination{display:flex;justify-content:center;gap:8px;margin-top:64px}
.route-pagination a{display:inline-flex;align-items:center;justify-content:center;width:37px;height:37px;border:1px solid transparent;background:transparent;color:#8399ad;font-weight:700;text-decoration:none}
.route-pagination a:hover,.route-pagination a[aria-current=page]{border-radius:50%;background:var(--route-blue);color:#fff}
.route-empty{padding:32px;text-align:center;color:var(--route-muted)}
@media(max-width:640px){.vg-search-page-form{flex-direction:column}.vg-search-summary .vg-search-pageinfo{margin-left:0;display:block}}