Aimpress_site/src/components/Hero.css
Vadym Samoilenko d778a7e5f2 Fix hero text overlap under bottom circle, reduce mobile menu font to 1.1rem
- Add margin-bottom: 0 on circle-3 at 768px and 480px breakpoints
- Reduce mobile nav font from 1.4rem to 1.1rem

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 16:10:02 +00:00

452 lines
No EOL
8.4 KiB
CSS

.hero-section {
position: relative;
min-height: 800px;
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: center;
overflow: hidden;
padding-top: 180px;
padding-bottom: 30px;
text-align: center;
background: transparent;
z-index: 0;
}
.hero-bg-svg {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 150%;
height: auto;
z-index: 0;
opacity: 0.7;
pointer-events: none;
}
.hero-content {
position: relative;
z-index: 10;
display: flex;
flex-direction: column;
align-items: center;
gap: 50px;
width: 100%;
}
.hero-circles-wrapper {
position: relative;
display: flex;
justify-content: center;
align-items: center;
gap: 0;
margin-bottom: 0;
z-index: 5;
}
.hero-circle {
width: 375px;
height: 375px;
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
position: relative;
border: 15px solid #233038;
overflow: hidden;
flex-shrink: 0;
box-sizing: content-box;
}
/* Specific Circle Styles */
.circle-1 {
background-color: var(--yellow-100);
z-index: 1;
margin-right: -120px;
}
.circle-noise {
position: absolute;
inset: 0;
background-image: url('/bg/noiseEffect.png');
background-size: 480px 480px;
background-position: top left;
opacity: 0.2;
pointer-events: none;
border-radius: 50%;
}
.circle-1-inner {
position: absolute;
left: 70px;
top: 50%;
transform: translateY(-50%);
display: flex;
flex-direction: column;
gap: 15px;
align-items: flex-start;
width: 220px;
}
.circle-icon {
width: 20px;
height: 20px;
filter: brightness(0) invert(1);
display: block;
}
.circle-text-column {
display: flex;
flex-direction: column;
align-items: flex-start;
color: #fff;
font-weight: 500;
font-size: 24px;
line-height: 1.2;
text-align: left;
}
.circle-2 {
background-color: #000;
z-index: 1;
width: 375px;
height: 375px;
}
/* Circle 2 halftone overlay */
.circle-2-halftone {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 400px;
height: 400px;
display: flex;
align-items: center;
justify-content: center;
pointer-events: none;
}
.circle-2-halftone img {
width: 400px;
height: 400px;
object-fit: cover;
transform: rotate(-90deg);
display: block;
}
.circle-img {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: cover;
}
.circle-3 {
background-color: #252525;
z-index: 2;
margin-left: -120px;
}
/* Circle 3 wave lines effect */
.circle-3-wave-inner {
position: absolute;
display: flex;
align-items: center;
justify-content: center;
left: -164px;
top: -236px;
width: 875px;
height: 875px;
pointer-events: none;
}
.circle-3-wave-mask {
transform: rotate(-4deg) scaleY(-1);
width: 820px;
height: 820px;
opacity: 0.29;
mask-image: url('/bg/hero-circle3-ellipse-mask.jpg');
-webkit-mask-image: url('/bg/hero-circle3-ellipse-mask.jpg');
mask-size: 820px 820px;
-webkit-mask-size: 820px 820px;
mask-repeat: no-repeat;
-webkit-mask-repeat: no-repeat;
mask-position: center;
-webkit-mask-position: center;
position: relative;
flex-shrink: 0;
}
.circle-3-wave-content {
position: absolute;
inset: -40.14%;
}
.circle-3-wave-content img {
width: 100%;
height: 100%;
display: block;
}
/* Circle 3 background group element */
.circle-3-group-wrapper {
position: absolute;
inset: -52.87% -62.25% -39.25% -29.78%;
display: flex;
align-items: center;
justify-content: center;
pointer-events: none;
}
.circle-3-group-img {
width: 773px;
height: 773px;
transform: rotate(8.96deg);
flex-shrink: 0;
display: block;
}
/* Circle 3 main portrait */
.circle-3-portrait {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 100%;
height: 100%;
object-fit: cover;
pointer-events: none;
}
/* Brand label under circles */
.hero-brand-label {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
}
.hero-brand-text {
font-size: 2rem;
font-weight: 700;
color: var(--light-grey-100);
letter-spacing: 0.02em;
text-align: center;
}
/* Main Text Content */
.hero-text-content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
gap: 50px;
width: 100%;
max-width: 100%;
margin: 0 auto;
}
.hero-title {
font-size: 24px;
font-weight: 400;
color: var(--light-grey-100);
line-height: 1.2;
text-transform: none;
max-width: 100%;
margin: 0 auto;
text-align: center;
white-space: nowrap;
}
.cta-button {
background: var(--orange-100);
color: var(--dark-grey-100);
padding: 10px 50px;
height: 70px;
border-radius: 69px;
font-size: 24px;
font-weight: 700;
border: none;
cursor: pointer;
transition: transform 0.2s;
align-self: center;
margin: 0 auto;
white-space: nowrap;
}
.cta-button:hover {
transform: translateY(-2px);
}
/* Responsive */
@media (max-width: 1024px) {
.hero-circles-wrapper {
flex-direction: column;
gap: -30px;
margin-top: 2rem;
}
.hero-circle {
margin: 0 !important;
margin-bottom: -60px !important;
width: 300px;
height: 300px;
border-width: 10px;
}
.circle-1-inner {
left: 40px;
width: 160px;
}
.circle-text-column {
font-size: 18px;
}
.circle-2 {
width: 300px;
height: 300px;
}
.circle-3 {
margin-bottom: 0 !important;
}
.circle-3-portrait {
width: 100%;
height: 100%;
}
.hero-title {
font-size: 18px;
white-space: normal;
padding: 0 1rem;
}
.cta-button {
font-size: 18px;
height: 56px;
padding: 10px 36px;
}
}
@media (max-width: 768px) {
.hero-section {
min-height: auto;
padding-top: 120px;
padding-bottom: 20px;
}
.hero-content {
gap: 30px;
}
.hero-circle {
width: 220px !important;
height: 220px !important;
margin-bottom: -40px !important;
border-width: 8px;
}
.circle-2 {
width: 220px !important;
height: 220px !important;
}
.circle-1-inner {
left: 25px;
width: 130px;
gap: 10px;
}
.circle-text-column {
font-size: 14px;
}
.circle-icon {
width: 16px;
height: 16px;
}
.circle-3-portrait {
width: 100%;
height: 100%;
}
.circle-3 {
margin-bottom: 0 !important;
}
.hero-title {
font-size: 16px;
}
.cta-button {
font-size: 16px;
height: 50px;
padding: 8px 30px;
}
.hero-text-content {
gap: 30px;
}
}
@media (max-width: 480px) {
.hero-section {
padding-top: 100px;
}
.hero-content {
gap: 20px;
}
.hero-circle {
width: 180px !important;
height: 180px !important;
margin-bottom: -30px !important;
border-width: 6px;
}
.circle-2 {
width: 180px !important;
height: 180px !important;
}
.circle-1-inner {
left: 20px;
width: 110px;
gap: 8px;
}
.circle-text-column {
font-size: 12px;
}
.circle-icon {
width: 14px;
height: 14px;
}
.circle-3 {
margin-bottom: 0 !important;
}
.hero-title {
font-size: 14px;
}
.cta-button {
font-size: 14px;
height: 44px;
padding: 6px 24px;
}
.hero-text-content {
gap: 20px;
}
}