.section { padding: 80px 0; background: var(--color-bg-light); } .container { max-width: 1200px; margin: 0 auto; padding: 0 1.5rem; } .contentWrap { display: grid; grid-template-columns: 1fr 1.2fr; gap: 5rem; align-items: center; } /* ─── Left: Image Collage ─── */ .imageCol { position: relative; } .collage { position: relative; width: 100%; height: 420px; } .imgLeft, .imgRight { position: absolute; border-radius: 16px; overflow: hidden; border: 4px solid #fff; box-shadow: 0 12px 30px rgba(0, 0, 0, 0.12); } .imgLeft { top: 0; left: 0; width: 55%; height: 90%; } .imgRight { top: 8%; right: 0; width: 42%; height: 75%; } .img { object-fit: cover; transition: transform 0.5s ease; } .imgLeft:hover .img, .imgRight:hover .img { transform: scale(1.06); } /* Rating badge overlaid on collage */ .ratingBadge { position: absolute; bottom: 5%; right: -12px; background: var(--color-primary); color: #fff; padding: 1rem 1.2rem; border-radius: 16px; box-shadow: 0 10px 30px rgba(1, 77, 51, 0.3); text-align: center; z-index: 5; min-width: 110px; } .ratingText { display: block; font-family: var(--font-serif); font-size: 2.2rem; font-weight: 700; color: #fff; line-height: 1; } .stars { font-size: 0.7rem; margin: 0.4rem 0; letter-spacing: 1px; } .ratingLabel { font-size: 0.72rem; color: rgba(255, 255, 255, 0.8); font-weight: 600; } /* ─── Right: Text + Slider ─── */ .textCol { padding-right: 1rem; color: var(--color-text-dark); } .sectionTag { font-size: 0.85rem; font-weight: 600; color: var(--color-secondary); letter-spacing: 1.5px; text-transform: uppercase; margin-bottom: 0.5rem; } .sectionTitle { font-family: var(--font-serif); font-size: 2.2rem; color: var(--color-primary); margin-bottom: 2rem; line-height: 1.2; } /* Review card with fade animation */ .reviewCard { background: #fff; border-radius: 20px; padding: 2rem; box-shadow: 0 8px 30px rgba(0, 0, 0, 0.06); margin-bottom: 1.8rem; border-left: 4px solid var(--color-primary); transition: opacity 0.3s ease, transform 0.3s ease; } .fadeIn { opacity: 1; transform: translateY(0); } .fadeOut { opacity: 0; transform: translateY(10px); } .quoteMark { font-family: var(--font-serif); font-size: 4rem; color: var(--color-secondary); line-height: 0.5; margin-bottom: 1rem; opacity: 0.7; } .reviewText { font-size: 1rem; line-height: 1.8; color: var(--color-text-medium); margin-bottom: 1.5rem; font-style: italic; } .reviewer { display: flex; align-items: center; gap: 1rem; } .avatar { width: 46px; height: 46px; min-width: 46px; background: var(--color-primary); color: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.95rem; font-weight: 700; } .reviewerName { font-weight: 700; font-size: 1rem; color: var(--color-text-dark); } .reviewDate { font-size: 0.82rem; color: var(--color-text-medium); } .reviewRating { margin-left: auto; font-weight: 700; font-size: 0.95rem; color: var(--color-primary); background: rgba(1, 77, 51, 0.07); padding: 0.3rem 0.8rem; border-radius: 20px; white-space: nowrap; } /* ─── Controls: Dots + Arrows ─── */ .controls { display: flex; align-items: center; justify-content: space-between; } .dots { display: flex; gap: 0.5rem; } .dot { width: 10px; height: 10px; border-radius: 50%; background: #d0d0d0; border: none; cursor: pointer; transition: all 0.3s ease; padding: 0; } .dotActive { background: var(--color-primary); width: 28px; border-radius: 5px; } .navButtons { display: flex; gap: 0.75rem; } .navBtn { width: 44px; height: 44px; border-radius: 50%; border: 2px solid var(--color-primary); background: transparent; color: var(--color-primary); cursor: pointer; transition: all 0.3s ease; display: flex; align-items: center; justify-content: center; } .navBtn:hover { background: var(--color-primary); color: #fff; transform: translateY(-2px); box-shadow: 0 5px 15px rgba(1, 77, 51, 0.25); } /* ─── Responsive ─── */ @media (max-width: 992px) { .contentWrap { grid-template-columns: 1fr; gap: 4rem; } .collage { max-width: 480px; margin: 0 auto; height: 380px; } .textCol { padding-right: 0; } } @media (max-width: 767px) { .section { padding: 80px 0; } .collage { height: 320px; } .sectionTitle { font-size: 1.8rem; } } @media (max-width: 767px) { .section { padding: 40px 0; } } .eyebrow { display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-cursive), cursive; font-size: 1.15rem; color: #d4a017; margin-bottom: 14px; } .eyebrowIcon { font-size: 1.2rem; font-style: normal; font-family: var(--font-inter), sans-serif; } .sectionTitle em { font-style: italic; color: #d4a017; }