.office { position: relative; width: 100%; /* height: 100vh; */ aspect-ratio: 1920/989; font-size: 18px; line-height: 1.5; color: #121212; overflow:hidden; } @media (max-width: 639.98px) { .office { /* height: 80vh; */ min-height: 400px; aspect-ratio: unset; } } .office-background { position: absolute; top: 0; width: 100%; height: 100%; background: #f0f4fc url('/uploads/images/office-map-bg.jpg') right center / 100% 100% no-repeat; } @media (max-width: 639.98px) { .office-background { background-image: url('/uploads/images/office-map-bg-mobile.jpg'); background-position: 75% 50%; background-size: cover; } } .office-container { display: flex; flex-direction: column; justify-content: space-between; height: 100%; overflow: hidden; padding-top: 0.96rem; padding-bottom: 0.5rem; } @media (max-width: 639.98px) { .office-container { padding-left: 20px; padding-right: 20px; } } .office-container .title .primary { font-size: .6rem; } .office-container .title .secondary { opacity: 0.6; font-size: .18rem; text-transform: uppercase; color: #a5a5a5; } @media (max-width: 639.98px) { .office-container .title .primary { font-size: .6rem; } .office-container .title .secondary { font-size:12px; } } .office-container .slogon { font-size: 0.3rem; font-weight: 500; color: #333; } @media (max-width: 639.98px) { .office-container .slogon { margin-top: 40px; font-size: 20px; } } .office-container .office-cards { display: flex; flex-direction: column; width: 100%; max-width: 420px; min-height: 300px; aspect-ratio: 21/16; margin: .8rem 0; box-shadow: 0 0 40px rgb(59 115 182 / 0.25); border-radius: 2px; background-color: rgb(255 255 255 / 0.5); } @media (max-width: 639.98px) { .office-container .office-cards { margin-bottom: 0; aspect-ratio: 1/1; background-color: rgb(255 255 255 / 0.8); } .office-container .office-cards .swiper-wrapper { /* margin-bottom: 24px; */ } } .office-container .office-cards .info { display: flex; flex-direction: column; row-gap: 12px; height: 45%; padding: 20px 40px; justify-content: center; } .office-container .office-cards .info .name { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1; font-weight: 500; font-size: 0.3rem; } .office-container .office-cards .info .address { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; font-size: 18px; color: #666; } .office-container .office-cards .image { height: 55%; background-color: rgb(27 100 200 / 0.5); } .office-container .office-cards .image img { display: block; width: 100%; height: 100%; object-fit: cover; } @media (max-width: 1536px) { .office-container .office-cards .info .address { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; font-size: 16px; color: #666; } } @media (max-width: 1399.98px) { .office-container .office-cards .info { row-gap: 8px; height: 40%; padding: 20px; } .office-container .office-cards .info .name { font-size: 20px; } .office-container .office-cards .info .address { font-size: 16px; } .office-container .office-cards .image { height: 60%; background-color: rgb(27 100 200 / 0.8); } } .location-container { --right: 400px; --width: 400px; position: absolute; right: var(--right); top: 0; width: var(--width); height: 100%; } .location-container .dot-container { --dot-count: 4; --dot-size-init: 16px; --dot-size-max: calc(var(--dot-size-init) * var(--dot-count)); --dot-scale-hover: 1.5; --ring-count: 4; --ring-scale-factor: 0.25; --ring-scale-step: 2; --transition-duration: 0.5s; --animation-duration: 2s; z-index: 1; position: absolute; width: var(--dot-size-max); height: var(--dot-size-max); transition: transform cubic-bezier(0.22, 0.61, 0.36, 1) var(--animation-duration); cursor: pointer; } .location-container .dot-container.current { z-index: 0; } .location-container .dot-container[data-city='Chongqing'] { left: 31.5%; top: 50.5%; } .location-container .dot-container[data-city='Chengdu'] { left: 14.4%; top: 49.2%; } .location-container .dot-container[data-city='Wuhan'] { left: 48.5%; top: 48.1%; } .location-container .dot-container[data-city='Huanggang'] { left: 57.6%; top: 48.9%; } .location-container .dot-container[data-city='Beijing'] { left: 66.5%; top: 32.6%; } .location-container .dot-container[data-city='Shanghai'] { left: 80.9%; top: 48.1%; } .location-container .dot-container[data-city='Hefei'] { left: 69.4%; top: 48.6%; } .location-container .dot-container[data-city='Shenzhen'] { left: 53.3%; top: 60.3%; } .location-container .dot-container[data-city='Singapore'] { left: 14.5%; top: 93.6%; } .location-container .dot-container[data-city='重庆'] { left: 31.5%; top: 50.5%; } .location-container .dot-container[data-city='成都'] { left: 14.4%; top: 49.2%; } .location-container .dot-container[data-city='武汉'] { left: 48.5%; top: 48.1%; } .location-container .dot-container[data-city='黄冈'] { left: 57.6%; top: 48.9%; } .location-container .dot-container[data-city='北京'] { left: 66.5%; top: 32.6%; } .location-container .dot-container[data-city='上海'] { left: 80.9%; top: 48.1%; } .location-container .dot-container[data-city='合肥'] { left: 69.4%; top: 48.6%; } .location-container .dot-container[data-city='深圳'] { left: 53.3%; top: 60.3%; } .location-container .dot-container[data-city='新加坡'] { left: 14.5%; top: 93.6%; } .location-container .dot-container .dot-name { z-index: 1; position: absolute; left: 50%; bottom: calc(var(--dot-size-init) * 1.25); width: max-content; font-weight: 600; text-align: center; color: #416bb3; opacity: 0; transform: translateX(-50%); transition: all var(--transition-duration); -webkit-user-select: none; user-select: none; } .location-container .dot-container:is(:hover, .current) .dot-name { opacity: 1; } /* .location-container .dot-container:hover { font-size:16px; } */ .location-container .dot-container:not(.current):hover .dot-name { bottom: calc(var(--dot-size-max) * 0.9); } .location-container .dot-container.current .dot-name { color: rgb(230 0 18); /* color: rgb(0 102 255); */ } .location-container .dot-container .dot-group { width: 100%; height: 100%; transition: transform var(--transition-duration); } .location-container .dot-container:is(:hover, .current) .dot-group { transform: scale(var(--dot-scale-hover)); } .location-container .dot-container .dot-group .dot { position: absolute; top: calc((var(--dot-size-max) - var(--dot-size-init)) / 2); left: calc((var(--dot-size-max) - var(--dot-size-init)) / 2); width: var(--dot-size-init); height: var(--dot-size-init); border: 4px solid rgb(0 102 255 / 0.5); border-radius: 50%; background-color: rgb(0 102 255 / 0.4); transition: all var(--transition-duration); -webkit-user-select: none; user-select: none; } .location-container .dot-container .dot-group .dot:not(:first-child) { animation: var(--animation-duration) linear calc(var(--animation-duration) * var(--dot-index) / (var(--dot-count) - 1)) infinite band-wave; } .location-container .dot-container .dot-group .dot:nth-child(2) { --dot-index: 1; } .location-container .dot-container .dot-group .dot:nth-child(3) { --dot-index: 2; } .location-container .dot-container .dot-group .dot:nth-child(4) { --dot-index: 3; } .location-container .dot-container.current .dot-group .dot { border-color: rgb(255 255 255 / 0.4); background-color: rgb(255 255 255 / 0.3); } @keyframes band-wave { from { transform: scale(1); opacity: 0.95; } to { transform: scale(4); opacity: 0.05; } } .location-container .dot-container .ring-group { opacity: 0; transition: opacity var(--transition-duration); } .location-container .dot-container.current .ring-group { opacity: 1; } .location-container .dot-container .ring-group .ring { position: absolute; top: 50%; left: 50%; width: var(--dot-size-max); height: var(--dot-size-max); box-shadow: 0 0 10px 10px rgb(55 107 224 / 0.05) inset; border: 2px solid rgb(255 255 255 / 0.9); border-radius: 9999px; transform: translate(-50%, -50%); transition: all var(--animation-duration); } .location-container .dot-container.current .ring-group .ring { animation: var(--animation-duration) linear calc( var(--animation-duration) * var(--ring-index) / (var(--ring-count) - 1) ) infinite ring-wave; opacity: calc(1 - 0.15 * var(--ring-index)); } .location-container .dot-container.current .ring-group .ring:nth-child(1) { --ring-index: 0; } .location-container .dot-container.current .ring-group .ring:nth-child(2) { --ring-index: 1; } .location-container .dot-container.current .ring-group .ring:nth-child(3) { --ring-index: 2; } .location-container .dot-container.current .ring-group .ring:nth-child(4) { --ring-index: 3; } @keyframes ring-wave { from { width: calc( var(--dot-size-max) * var(--ring-index) * var(--ring-scale-step) * calc(var(--ring-scale-factor) * var(--ring-index) + 1) ); height: calc( var(--dot-size-max) * var(--ring-index) * var(--ring-scale-step) * calc(var(--ring-scale-factor) * var(--ring-index) + 1) ); opacity: 0.95; } to { width: calc( var(--dot-size-max) * calc(var(--ring-index) + 1) * var(--ring-scale-step) * calc(var(--ring-scale-factor) * var(--ring-index) + 1) ); height: calc( var(--dot-size-max) * calc(var(--ring-index) + 1) * var(--ring-scale-step) * calc(var(--ring-scale-factor) * var(--ring-index) + 1) ); opacity: 0.05; } } .dot-container:not(.current):hover .dot-name { font-size:15px; }