Files
GNX-WEB/gnx-react/public/styles/_responsive.scss
Iliyan Angelov 5ad9cbe3a6 update
2025-10-13 01:49:06 +03:00

1623 lines
27 KiB
SCSS

/* ====
--------- (6.0) responsive styles start ---------
==== */
@use "./abstracts/mixins" as *;
@media only screen and (max-width: 1799.98px) {
.modern-banner,
.enterprise-banner,
.tp-banner,
.about-banner,
.service-banner,
.career-banner {
.social,
.scroll-to {
display: none;
}
}
.footer,
.about-banner,
.transform {
.anime {
span {
width: 6vw;
height: 6vw;
margin-left: -60px;
}
}
}
}
@media only screen and (max-width: 1199.98px) {
// typography
p,
th,
td,
li,
input,
textarea,
select,
label,
blockquote,
span {
font-size: 16px;
line-height: 26px;
}
.text-xl {
font-size: 20px;
line-height: 30px;
}
a,
button {
font-size: 16px;
line-height: 24px;
}
h1,
.text-xxl {
font-size: 57px;
line-height: 68px;
}
h2 {
font-size: 43px;
line-height: 54px;
}
h3 {
font-size: 32px;
line-height: 42px;
}
.pl-100 {
padding-left: 60px;
}
.offcanvas-nav .offcanvas-menu__list {
margin-right: 60px;
}
.offcanvas-nav {
.anime {
gap: 12px;
span {
width: 80px;
height: 80px;
margin-left: -40px;
}
}
}
.modern-banner {
.container {
padding: 60px 0;
}
.banner-content {
margin-bottom: 30px;
}
.content-center {
max-width: 550px;
.main-heading {
font-size: clamp(1.5rem, 3vw, 2.5rem);
line-height: 1.2;
}
.description {
font-size: 15px;
max-width: 400px;
line-height: 1.5;
}
.cta-section {
gap: 14px;
margin-bottom: 35px;
}
.trust-indicators {
gap: 25px;
}
}
// Hide complex background elements on tablets for better performance
.banner-background {
.enterprise-bg-elements {
opacity: 0.08;
.flying-code,
.request-response-data,
.space-data-generation,
.database-connections,
.real-time-metrics {
display: none;
}
.industrial-grid,
.security-elements,
.circuit-patterns,
.data-streams {
opacity: 0.1;
}
}
}
.scroll-indicator {
display: none;
}
}
.enterprise-banner {
.enterprise-banner__cta {
flex-direction: column;
align-items: flex-start;
.enterprise-btn {
width: 100%;
justify-content: center;
}
}
.enterprise-banner__stats {
margin-top: 40px;
flex-direction: row;
justify-content: space-around;
.stat-item {
.stat-number {
font-size: 2rem;
}
}
}
.enterprise-banner__features {
.feature-grid {
grid-template-columns: 1fr;
}
}
}
// Enterprise components responsive styles
.enterprise-capabilities {
.stat-item {
h3 {
font-size: 28px;
}
}
.capability-card {
padding: 20px 15px;
.capability-icon {
width: 45px;
height: 45px;
margin-bottom: 14px;
i {
font-size: 18px;
}
}
h4 {
font-size: 15px;
margin-bottom: 10px;
}
}
}
.enterprise-values {
.value-card {
padding: 20px 15px;
.value-icon {
width: 45px;
height: 45px;
margin-bottom: 14px;
i {
font-size: 18px;
}
}
h4 {
font-size: 15px;
margin-bottom: 10px;
}
}
.certifications-section {
padding: 25px 20px;
h3 {
font-size: 18px;
}
.certification-item {
padding: 10px 12px;
i {
font-size: 14px;
}
span {
font-size: 12px;
}
}
}
}
.tp-banner {
.tp-banner__content {
h1 {
img {
display: none;
}
}
}
}
.tp-study {
.counter__single {
border: 0px;
}
}
.footer,
.about-banner,
.transform {
.anime {
span {
width: 100px;
height: 100px;
margin-left: -60px;
&:nth-of-type(4),
&:nth-of-type(2),
&:nth-of-type(3) {
display: none;
}
}
}
}
}
@media only screen and (max-width: 991.98px) {
// typography
.primary-text {
font-size: 18px;
}
h1,
.text-xxl {
font-size: 40px;
line-height: 50px;
}
h2 {
font-size: 30px;
line-height: 40px;
}
h3 {
font-size: 24px;
line-height: 34px;
}
h4 {
font-size: 20px;
line-height: 30px;
}
h5 {
font-size: 18px;
line-height: 28px;
}
h6 {
font-size: 16px;
line-height: 26px;
}
.parallax-image-wrap {
width: 100%;
}
.pls-60 {
padding: 0px;
}
.pl-100 {
padding-left: 0px;
}
.op-text {
font-size: 60px;
}
.service-bg {
padding: 100px 24px;
}
// global styles
.unset {
max-width: 100%;
}
.dir-rtl {
direction: ltr;
}
.pt-120 {
padding-top: 100px;
}
.pb-120 {
padding-bottom: 100px;
}
.mt-60 {
margin-top: 40px;
}
.mt-80 {
margin-top: 60px;
}
.fix-top {
padding-top: 200px;
}
.progress-wrap {
bottom: 10px;
right: 15px;
width: 40px;
height: 40px;
span {
width: 30px;
height: 30px;
}
}
.modern-banner {
min-height: 100vh;
.container {
padding: 40px 0;
}
.banner-content {
margin-bottom: 25px;
}
.content-center {
max-width: 100%;
padding: 0 20px;
.badge-container {
margin-bottom: 12px;
.badge {
font-size: 11px;
padding: 6px 14px;
letter-spacing: 0.8px;
background: rgba(14, 165, 233, 0.15) !important;
border-color: rgba(14, 165, 233, 0.5) !important;
color: #0ea5e9 !important;
font-weight: 600;
i {
font-size: 12px;
}
}
}
.main-heading {
font-size: clamp(1.4rem, 4vw, 1.8rem);
margin-bottom: 14px;
line-height: 1.2;
word-break: break-word;
}
.description {
font-size: 14px;
margin-bottom: 20px;
max-width: 100%;
line-height: 1.5;
padding: 0 10px;
}
.carousel-indicators {
margin-bottom: 20px;
.indicator {
width: 6px;
height: 6px;
}
}
.cta-section {
flex-direction: column;
gap: 8px;
margin-bottom: 25px;
.cta-primary,
.cta-secondary {
width: 100%;
max-width: 280px;
justify-content: center;
padding: 12px 20px;
margin: 0 auto;
font-size: 13px;
border-radius: 6px;
}
}
.trust-indicators {
flex-direction: row;
gap: 20px;
justify-content: center;
flex-wrap: wrap;
.trust-item {
min-width: 80px;
.trust-number {
font-size: 1.2rem;
margin-bottom: 4px;
}
.trust-label {
font-size: 9px;
letter-spacing: 0.8px;
line-height: 1.2;
}
}
}
}
// Further reduce background complexity on mobile
.banner-background {
.gradient-orb {
&.orb-1 {
width: 200px;
height: 200px;
top: 5%;
left: 5%;
}
&.orb-2 {
width: 150px;
height: 150px;
top: 70%;
right: 10%;
}
&.orb-3 {
width: 120px;
height: 120px;
bottom: 15%;
left: 60%;
}
}
.enterprise-bg-elements {
opacity: 0.05;
.flying-code,
.request-response-data,
.space-data-generation,
.database-connections,
.real-time-metrics {
display: none;
}
.industrial-grid,
.security-elements,
.circuit-patterns,
.data-streams {
display: none;
}
}
}
.scroll-indicator {
display: none;
}
}
.enterprise-banner {
min-height: auto;
padding: 120px 0 80px;
.enterprise-banner__content {
h1 {
font-size: 2.5rem;
margin-bottom: 20px;
}
.enterprise-banner__description {
font-size: 16px;
margin-bottom: 24px;
}
}
.enterprise-banner__stats {
flex-direction: column;
gap: 16px;
padding: 24px;
margin-top: 32px;
.stat-item {
.stat-number {
font-size: 1.8rem;
}
}
}
.enterprise-banner__features {
margin-top: 40px;
h3 {
font-size: 1.25rem;
margin-bottom: 20px;
}
.feature-grid {
gap: 12px;
.feature-item {
padding: 12px;
i {
font-size: 16px;
}
span {
font-size: 13px;
}
}
}
}
}
// Enterprise components mobile styles
.enterprise-capabilities {
.stat-item {
padding: 12px;
h3 {
font-size: 24px;
}
p {
font-size: 13px;
}
}
.capability-card {
padding: 20px 15px;
margin-bottom: 25px;
.capability-icon {
width: 40px;
height: 40px;
margin-bottom: 12px;
i {
font-size: 16px;
}
}
h4 {
font-size: 14px;
margin-bottom: 8px;
}
p {
font-size: 13px;
}
}
}
.enterprise-values {
.value-card {
padding: 20px 15px;
margin-bottom: 25px;
.value-icon {
width: 40px;
height: 40px;
margin-bottom: 12px;
i {
font-size: 16px;
}
}
h4 {
font-size: 14px;
margin-bottom: 8px;
}
p {
font-size: 13px;
}
}
.certifications-section {
padding: 25px 15px;
h3 {
font-size: 16px;
margin-bottom: 10px;
}
p {
font-size: 13px;
margin-bottom: 20px;
}
.certification-item {
padding: 8px 12px;
margin-bottom: 10px;
i {
font-size: 12px;
}
span {
font-size: 11px;
}
}
}
}
.tp-banner {
.tp-banner__thumb {
.video-frame {
top: 50%;
right: unset;
left: 50%;
transform: translate(-50%, -50%);
}
}
}
.service-banner {
.thumb-one {
bottom: 0px;
}
}
.tp-story {
.tp-story__single {
padding: 40px 0px;
&:nth-of-type(1) {
padding-top: 80px;
}
}
}
.tp-gallery {
.parallax-image-wrap {
min-width: auto;
}
}
.c-study {
.c-study-btns {
gap: 24px;
button {
font-size: 20px;
}
}
}
.career-banner {
padding-bottom: 100px;
.cp-banner-thumb {
direction: rtl !important;
}
}
.op-position {
.op-position-single {
.text-xl {
font-size: 14px;
}
}
}
.mason {
img {
max-height: 270px;
min-height: 270px;
}
.botter {
min-height: 220px !important;
}
}
.thrive {
.thumb {
@include box(150px);
padding: 20px;
border-radius: 0px;
}
}
.footer {
.footer__thumb {
.parallax-image-wrap {
min-width: auto;
}
}
ul {
li {
margin-bottom: 20px;
}
}
.arrow {
top: 200px;
}
}
}
@media only screen and (max-width: 767.98px) {
.offcanvas-nav {
.offcanvas-menu {
.offcanvas-menu__wrapper {
padding: 0px 0px 20px;
gap: 30px;
}
.navbar__item {
a,
button {
font-size: 20px;
&::after {
font-size: 16px !important;
}
}
}
.navbar__sub-menu {
a,
button {
font-size: 14px;
}
}
.offcanvas-menu__list {
max-width: 320px;
}
}
}
.tp-latest-post {
.tp-lp-slider {
.swiper-slide {
max-width: 300px !important;
}
}
}
.tp-study {
.tp-study-slider-wrapper {
margin: 40px 0px 0px;
}
.tp-study-slider {
.swiper-slide {
max-width: 296px;
}
}
.tp-study-slider__single {
&:hover {
transform: scale(1);
}
}
.swiper-slide-active {
z-index: 2;
.tp-study-slider__single {
z-index: 2;
transform: scale(1);
&::before {
transform: scale(1);
}
.content {
transform: translateY(0px);
}
}
}
}
.tp-gallery {
.tp-gallery-slider {
.swiper-slide {
width: 100%;
max-width: 296px;
}
}
}
.mason {
.toper {
margin-top: 0px;
}
}
}
@media only screen and (max-width: 575.98px) {
// typography
.text-xl {
font-size: 18px;
line-height: 30px;
}
h1,
.text-xxl {
font-size: 30px;
line-height: 40px;
}
h2 {
font-size: 24px;
line-height: 34px;
}
h3 {
font-size: 20px;
line-height: 30px;
}
.fix-top {
padding-top: 190px;
}
.logo-img {
img {
max-width: 150px;
max-height: 30px;
}
}
.tp-header {
.primary-navbar {
padding: 30px 0px;
}
}
.offcanvas-nav {
.offcanvas-menu {
&::before {
content: none;
}
}
.social {
left: 20px;
}
.offcanvas-menu__list {
margin-right: 0px;
}
.anime {
bottom: 20px;
span {
width: 40px;
height: 40px;
margin-left: -20px;
&:nth-last-of-type(1),
&:nth-last-of-type(2),
&:nth-last-of-type(3) {
display: none;
}
}
}
}
.tp-overview {
.tp-overview-single {
flex-wrap: wrap;
}
}
.about-banner {
.foot-group {
.btn-anim {
margin-left: 0px;
margin-right: 0px;
}
}
}
.career-banner {
.text-xxl {
font-size: 24px;
line-height: 34px;
max-width: 380px;
}
.cp-banner-thumb {
margin-top: -140px;
img {
min-width: auto;
max-width: 50vw;
}
}
}
.job-single {
.j-d-sidebar {
padding: 40px 20px;
}
}
.footer {
.footer__inner-single {
gap: 20px;
}
}
// Extra small mobile styles for modern banner
.modern-banner {
.container {
padding: 30px 0;
}
.content-center {
padding: 0 15px;
.badge-container {
margin-bottom: 10px;
.badge {
font-size: 10px;
padding: 5px 12px;
letter-spacing: 0.6px;
i {
font-size: 11px;
}
}
}
.main-heading {
font-size: clamp(1.2rem, 5vw, 1.6rem);
margin-bottom: 12px;
line-height: 1.1;
}
.description {
font-size: 13px;
margin-bottom: 18px;
line-height: 1.4;
padding: 0 5px;
}
.carousel-indicators {
margin-bottom: 18px;
gap: 6px;
.indicator {
width: 5px;
height: 5px;
}
}
.cta-section {
gap: 6px;
margin-bottom: 20px;
.cta-primary,
.cta-secondary {
max-width: 260px;
padding: 10px 16px;
font-size: 12px;
}
}
.trust-indicators {
gap: 15px;
.trust-item {
min-width: 70px;
.trust-number {
font-size: 1.1rem;
margin-bottom: 3px;
}
.trust-label {
font-size: 8px;
letter-spacing: 0.6px;
}
}
}
}
.banner-background {
.gradient-orb {
&.orb-1 {
width: 150px;
height: 150px;
top: 3%;
left: 3%;
}
&.orb-2 {
width: 120px;
height: 120px;
top: 75%;
right: 8%;
}
&.orb-3 {
width: 100px;
height: 100px;
bottom: 10%;
left: 70%;
}
}
}
}
}
@media only screen and (max-width: 424.98px) {
.footer,
.about-banner {
.btn-anim {
margin-left: 0px;
}
.anime {
span {
display: none;
}
}
}
// Ultra small mobile styles for modern banner
.modern-banner {
.container {
padding: 25px 0;
}
.content-center {
padding: 0 10px;
.badge-container {
margin-bottom: 8px;
.badge {
font-size: 10px;
padding: 5px 12px;
letter-spacing: 0.4px;
background: rgba(14, 165, 233, 0.2) !important;
border-color: rgba(14, 165, 233, 0.6) !important;
color: #3dd5f3 !important;
font-weight: 700;
box-shadow: 0 0 10px rgba(14, 165, 233, 0.3);
i {
font-size: 11px;
}
}
}
.main-heading {
font-size: clamp(1.1rem, 6vw, 1.4rem);
margin-bottom: 10px;
line-height: 1.1;
}
.description {
font-size: 12px;
margin-bottom: 16px;
line-height: 1.3;
padding: 0;
}
.carousel-indicators {
margin-bottom: 16px;
gap: 4px;
.indicator {
width: 4px;
height: 4px;
}
}
.cta-section {
gap: 4px;
margin-bottom: 18px;
.cta-primary,
.cta-secondary {
max-width: 240px;
padding: 8px 14px;
font-size: 11px;
}
}
.trust-indicators {
gap: 12px;
flex-wrap: wrap;
.trust-item {
min-width: 60px;
.trust-number {
font-size: 1rem;
margin-bottom: 2px;
}
.trust-label {
font-size: 7px;
letter-spacing: 0.4px;
line-height: 1.1;
}
}
}
}
.banner-background {
.gradient-orb {
&.orb-1 {
width: 120px;
height: 120px;
}
&.orb-2 {
width: 100px;
height: 100px;
}
&.orb-3 {
width: 80px;
height: 80px;
}
}
}
}
}
// Extra extra small screens (< 375px)
@media only screen and (max-width: 374.98px) {
.modern-banner {
min-height: 100vh;
.container {
padding: 20px 0;
}
.content-center {
padding: 0 8px;
.badge-container {
margin-bottom: 6px;
.badge {
font-size: 9px;
padding: 4px 10px;
letter-spacing: 0.3px;
gap: 4px;
background: rgba(14, 165, 233, 0.25) !important;
border-color: rgba(14, 165, 233, 0.7) !important;
color: #5de4ff !important;
font-weight: 700;
box-shadow: 0 0 12px rgba(14, 165, 233, 0.4);
i {
font-size: 10px;
}
}
}
.main-heading {
font-size: clamp(1rem, 7vw, 1.3rem);
margin-bottom: 8px;
line-height: 1.1;
}
.description {
font-size: 11px;
margin-bottom: 14px;
line-height: 1.3;
}
.carousel-indicators {
margin-bottom: 14px;
gap: 3px;
.indicator {
width: 3px;
height: 3px;
}
}
.cta-section {
gap: 3px;
margin-bottom: 16px;
.cta-primary,
.cta-secondary {
max-width: 220px;
padding: 7px 12px;
font-size: 10px;
i {
font-size: 10px;
}
}
}
.trust-indicators {
gap: 10px;
.trust-item {
min-width: 55px;
.trust-number {
font-size: 0.9rem;
margin-bottom: 2px;
}
.trust-label {
font-size: 6.5px;
letter-spacing: 0.3px;
}
}
}
}
.banner-background {
.gradient-orb {
&.orb-1 {
width: 100px;
height: 100px;
}
&.orb-2 {
width: 80px;
height: 80px;
}
&.orb-3 {
width: 60px;
height: 60px;
}
}
}
}
}
// Landscape orientation for phones
@media only screen and (max-height: 500px) and (orientation: landscape) {
.modern-banner {
min-height: auto;
height: auto;
padding: 20px 0;
.container {
padding: 20px 0;
}
.banner-content {
margin-bottom: 10px;
}
.content-center {
max-width: 100%;
padding: 0 15px;
.badge-container {
margin-bottom: 8px;
.badge {
font-size: 10px;
padding: 5px 12px;
background: rgba(14, 165, 233, 0.18) !important;
border-color: rgba(14, 165, 233, 0.55) !important;
color: #3dd5f3 !important;
font-weight: 600;
box-shadow: 0 0 8px rgba(14, 165, 233, 0.25);
}
}
.main-heading {
font-size: clamp(1.2rem, 3vh, 1.6rem);
margin-bottom: 8px;
line-height: 1.1;
}
.description {
font-size: 12px;
margin-bottom: 12px;
line-height: 1.3;
max-width: 90%;
}
.carousel-indicators {
margin-bottom: 12px;
.indicator {
width: 5px;
height: 5px;
}
}
.cta-section {
flex-direction: row;
gap: 8px;
margin-bottom: 12px;
justify-content: center;
.cta-primary,
.cta-secondary {
width: auto;
max-width: 180px;
padding: 8px 16px;
font-size: 11px;
}
}
.trust-indicators {
gap: 15px;
margin-bottom: 10px;
.trust-item {
min-width: 65px;
.trust-number {
font-size: 1rem;
margin-bottom: 2px;
}
.trust-label {
font-size: 7px;
}
}
}
}
.banner-background {
.gradient-orb {
opacity: 0.2;
&.orb-1 {
width: 150px;
height: 150px;
}
&.orb-2 {
width: 100px;
height: 100px;
}
&.orb-3 {
display: none;
}
}
.enterprise-bg-elements {
display: none;
}
}
.scroll-indicator {
display: none;
}
}
}
// Tablet landscape (iPad, etc.)
@media only screen and (min-width: 768px) and (max-width: 1024px) and (orientation: landscape) {
.modern-banner {
min-height: 90vh;
.container {
padding: 40px 0;
}
.content-center {
max-width: 700px;
.main-heading {
font-size: clamp(2rem, 4vw, 3rem);
margin-bottom: 14px;
}
.description {
font-size: 15px;
margin-bottom: 20px;
max-width: 600px;
}
.cta-section {
gap: 10px;
margin-bottom: 25px;
}
.trust-indicators {
gap: 25px;
}
}
.banner-background {
.enterprise-bg-elements {
opacity: 0.1;
.flying-code,
.request-response-data,
.space-data-generation {
display: none;
}
}
}
}
}
// Large tablets and small laptops (portrait)
@media only screen and (min-width: 768px) and (max-width: 991.98px) and (orientation: portrait) {
.modern-banner {
min-height: 100vh;
.content-center {
max-width: 600px;
padding: 0 30px;
.main-heading {
font-size: clamp(1.8rem, 4vw, 2.5rem);
margin-bottom: 16px;
}
.description {
font-size: 15px;
margin-bottom: 24px;
}
.cta-section {
flex-direction: row;
gap: 12px;
margin-bottom: 30px;
.cta-primary,
.cta-secondary {
width: auto;
min-width: 180px;
}
}
}
}
}
// Touch device optimizations
@media (hover: none) and (pointer: coarse) {
.modern-banner {
.content-center {
.carousel-indicators {
.indicator {
width: 10px;
height: 10px;
margin: 0 2px;
&:not(.active) {
opacity: 0.5;
}
}
}
.cta-section {
.cta-primary,
.cta-secondary {
min-height: 44px; // Apple's minimum touch target size
display: flex;
align-items: center;
justify-content: center;
}
}
}
// Reduce animations for better performance on mobile devices
.banner-background {
.enterprise-bg-elements {
* {
animation-duration: 1.5x !important; // Slow down animations
}
}
}
}
}
@media only screen and (min-width: 1400px) {
.tp-banner {
.tp-banner__content {
h1 {
font-size: 120px !important;
line-height: 140px;
margin-top: -18px;
}
}
}
.tp-study {
.counter__single {
h2 {
font-size: 80px !important;
line-height: 80px !important;
margin-top: -16px;
}
}
}
}
@media only screen and (min-width: 1200px) {
.tp-banner {
.tp-banner__content {
h1 {
img {
margin-top: -20px;
display: inline-block;
}
}
}
}
.tp-process {
.process__thumb {
padding-left: 80px;
border-left: 1px solid white;
}
}
}
@media only screen and (min-width: 992px) {
.title-anim {
text-transform: lowercase !important;
opacity: 0;
.word {
.char {
&:nth-of-type(1) {
text-transform: none !important;
}
}
}
}
.title-anim-active {
opacity: 1;
}
}
@media only screen and (min-width: 768px) {
.tp-study {
.swiper-slide-active + .swiper-slide {
z-index: 2;
.tp-study-slider__single {
transform: scale(1.2);
&::before {
transform: scale(1);
}
.content {
transform: translateY(0px);
}
}
}
}
}
/* ====
--------- (6.0) responsive styles end ---------
==== */