/* ================= SERVICES SECTION ================= */

.services {
position: relative;
min-height: 100vh;
padding: 140px 0 100px;
overflow: hidden;
perspective: 1200px;
}

/* ================= FLOATING ORBS ================= */

.services::before,
.services::after {
content: "";
position: absolute;
width: 400px;
height: 400px;
border-radius: 50%;
filter: blur(120px);
opacity: 0.2;
z-index: 0;
animation: floatOrb 12s infinite ease-in-out;
}

.services::before {
background: #2f5d50;
top: -100px;
left: -100px;
}

.services::after {
background: #6f8f72;
bottom: -120px;
right: -120px;
animation-delay: 4s;
}

@keyframes floatOrb {
0%,100% { transform: translateY(0); }
50% { transform: translateY(40px); }
}

/* ================= OVERLAY ================= */

.overlay {
position: absolute;
inset: 0;
background: radial-gradient(
circle at 50% 50%,
rgba(47,93,80,0.25),
rgba(0,0,0,0.95)
);
animation: pulseOverlay 8s ease-in-out infinite;
z-index: 1;
}

.overlay::after {
content: "";
position: absolute;
width: 200%;
height: 200%;
background: radial-gradient(rgba(255,255,255,0.04) 1px, transparent 1px);
background-size: 40px 40px;
animation: moveParticles 60s linear infinite;
}

@keyframes pulseOverlay {
0%,100% { opacity: 1; }
50% { opacity: 0.7; }
}

@keyframes moveParticles {
0% { transform: translate(0,0); }
100% { transform: translate(-200px,-200px); }
}

/* ================= CONTAINER ================= */

.container {
position: relative;
z-index: 2;
width: min(1120px, 90%);
margin: auto;
text-align: center;
}

.services-intro {
max-width: 760px;
margin: 0 auto 70px;
}

/* ================= HEADING ================= */

.section-heading {
font-size: clamp(2.6rem, 5vw, 4rem);
margin-bottom: 18px;

background: linear-gradient(
90deg,
#fff,
#a3c9a8,
#6f8f72,
#fff
);

background-size: 200%;
background-clip: text;
color: transparent;

animation: headingGlow 8s linear infinite;

text-shadow:
0 0 10px rgba(163,201,168,.4),
0 0 40px rgba(47,93,80,.7);
}

@keyframes headingGlow {
0% { background-position: 0%; }
100% { background-position: 200%; }
}

.section-subtext {
font-size: 1.2rem;
color: #a8bdb0;
max-width: 680px;
margin: 0 auto;
}

/* ================= GRID ================= */

.services-cards {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 30px;
margin-top: 70px;
}

/* ================= CARD ================= */

.services-card {
position: relative;
overflow: hidden;

background: linear-gradient(
145deg,
rgba(20,40,35,0.85),
rgba(15,25,20,0.6)
);

border: 1px solid rgba(111,143,114,0.25);
border-radius: 22px;

padding: 36px 30px;
text-align: left;

backdrop-filter: blur(14px);

box-shadow:
inset 0 1px 1px rgba(255,255,255,0.05),
0 25px 60px rgba(0,0,0,0.8);

transition: transform 0.25s ease, box-shadow 0.25s ease;

transform-style: preserve-3d;
will-change: transform;
}

/* ================= HOVER ================= */

.services-card:hover {
transform: translateY(-12px) scale(1.04);

box-shadow:
0 0 40px rgba(111,143,114,0.5),
0 50px 120px rgba(0,0,0,1);
}

/* LIGHT SWEEP */

.services-card::before {
content: "";
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;

background: linear-gradient(
120deg,
transparent,
rgba(111,143,114,0.25),
transparent
);

transition: 0.6s;
}

.services-card:hover::before {
left: 100%;
}

/* MOUSE LIGHT */

.services-card::after {
content: "";
position: absolute;
top: var(--y, 50%);
left: var(--x, 50%);
width: 300px;
height: 300px;

background: radial-gradient(circle, rgba(111,143,114,0.25), transparent 60%);
transform: translate(-50%, -50%);

opacity: 0;
transition: opacity 0.3s;
pointer-events: none;
}

.services-card:hover::after {
opacity: 1;
}

/* ================= ICON ================= */

.icon-wrap {
width: 70px;
height: 70px;
border-radius: 18px;

background: rgba(111,143,114,.15);
border: 1px solid rgba(111,143,114,.3);

display: flex;
align-items: center;
justify-content: center;

margin-bottom: 24px;

animation: iconFloat 4s ease-in-out infinite;
}

@keyframes iconFloat {
0%,100% { transform: translateY(0); }
50% { transform: translateY(-6px); }
}

.services-card i {
font-size: 1.8rem;
color: #6f8f72;

text-shadow:
0 0 12px rgba(111,143,114,.6),
0 0 30px rgba(111,143,114,.6);
}

/* ================= TEXT ================= */

.services-card h2 {
font-size: 1.4rem;
margin-bottom: 12px;
transition: 0.3s;
}

.services-card p {
font-size: 0.96rem;
color: #c7c7c7;
margin-bottom: 12px;
}

/* FEATURES */

.service-features {
margin-top: 10px;
padding-left: 18px;
color: #a8bdb0;
font-size: 0.9rem;
line-height: 1.6;
}

.service-features li {
margin-bottom: 6px;
}

.service-features li::marker {
color: #6f8f72;
}

/* NUMBER */

.card-number {
position: absolute;
bottom: 20px;
right: 22px;

font-size: 2.6rem;
font-weight: 700;

color: rgba(111,143,114,.08);
}

/* ================= MODALS ================= */

.service-modal,
.pricing-modal {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;

background: rgba(0,0,0,0.85);
backdrop-filter: blur(10px);

display: flex;
align-items: center;
justify-content: center;

opacity: 0;
pointer-events: none;
transition: 0.3s;

z-index: 9999;
}

.service-modal.active,
.pricing-modal.active {
opacity: 1;
pointer-events: all;
}

.modal-content,
.pricing-content {
position: relative;

background: rgba(20,40,35,0.95);
border: 1px solid rgba(111,143,114,0.3);

padding: 40px;
border-radius: 20px;

max-width: 500px;
width: 90%;

text-align: center;

transform: scale(0.8);
transition: 0.3s;
}

.service-modal.active .modal-content,
.pricing-modal.active .pricing-content {
transform: scale(1);
}

.close-modal,
.close-pricing {
position: absolute;
top: 15px;
right: 20px;
font-size: 2rem;
cursor: pointer;
color: #6f8f72;
}

/* PRICING */

.pricing-grid {
display: flex;
gap: 20px;
justify-content: center;
margin-top: 20px;
flex-wrap: wrap;
}

.price-card {
padding: 20px;
border-radius: 12px;
background: rgba(255,255,255,0.05);
border: 1px solid rgba(111,143,114,0.2);
transition: 0.3s;
}

.price-card:hover {
background: #6f8f72;
color: #0f1a17;
transform: scale(1.1);
}

/* BUTTON */

.pricing-btn {
margin-top: 20px;
padding: 10px 20px;
border-radius: 25px;
border: 2px solid #6f8f72;
background: transparent;
color: #6f8f72;
cursor: pointer;
transition: 0.3s;
}

.pricing-btn:hover {
background: #6f8f72;
color: #0f1a17;
}

/* ================= RESPONSIVE ================= */

@media (max-width: 992px) {
.services-cards {
grid-template-columns: repeat(2, 1fr);
}
}

@media (max-width: 768px) {

.services-cards {
grid-template-columns: 1fr;
}

.services {
padding: 120px 0 80px;
}
}

/* ================= FULL PAGE VIEW ================= */

.service-view {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;

background: linear-gradient(
160deg,
rgba(10,20,15,0.98),
rgba(0,0,0,0.98)
);

backdrop-filter: blur(10px);

display: flex;
align-items: center;
justify-content: center;

opacity: 0;
pointer-events: none;

transition: 0.5s ease;

z-index: 9999;
}

/* ACTIVE STATE */
.service-view.active {
opacity: 1;
pointer-events: all;
}

/* CONTENT */
.service-view-content {
max-width: 700px;
width: 90%;
text-align: center;

transform: translateY(50px);
opacity: 0;

transition: 0.5s ease;
}

.service-view.active .service-view-content {
transform: translateY(0);
opacity: 1;
}

/* TITLE */
.service-view h1 {
font-size: 3rem;
margin-bottom: 20px;
color: #6f8f72;
}

/* TEXT */
.service-view p {
color: #ccc;
margin-bottom: 20px;
}

/* FEATURES */
#viewFeatures {
text-align: left;
margin: 20px auto;
max-width: 400px;
}

#viewFeatures li {
margin-bottom: 10px;
color: #a8bdb0;
}

/* BACK BUTTON */
.back-btn {
position: absolute;
top: 30px;
left: 40px;

background: transparent;
border: none;
color: #6f8f72;
font-size: 1.5rem;
cursor: pointer;

transition: 0.3s;
}

.back-btn:hover {
transform: translateX(-5px);
}