/* Typography Configuration */
.main-title {
    letter-spacing: 2px;
    font-size: 2rem;
}

.section-title {
    font-family: 'Poppins', sans-serif;
    font-size: 2rem;
    color: black; /* Slate Stone Grey */
    margin-bottom: 1.5rem;
    text-align: center;
}

.section-name {
	font-family: 'Poppins', sans-serif;
    font-size: 1rem;
	text-transform: uppercase;
    color: #2d7a3a;
    margin-bottom: 0.5rem;
    text-align: center;
}

.card-title-custom {
    font-family: 'Poppins', sans-serif;
    letter-spacing: 1px;
    font-size: 1.8rem;
    color: #2C6B43; /* Forest Green */
}

.script-accent {
    font-family: 'Poppins', cursive;
    color: #E5A93C; /* Warm Amber / Marigold */
    font-size: 2rem;
    display: inline-block;
    margin-bottom: 0.5rem;
}

.body-text {
    font-family: 'Poppins', sans-serif;
    line-height: 1.6;
    color: #555555;
}

/* Base Structural Layout Styles */
.navbar {
    background-color: white !important; /* Premium Deep Forest Green */
    font-family: 'Poppins', sans-serif;
    font-weight: 500;
}

.badge-hero {
	margin-bottom: 1rem
}

#hero {
    background: url('../images/hero-bg.jpg') no-repeat center center;
    background-size: cover;
    min-height: 75vh;
    margin-bottom: 0;
}

#contact {
    background-color: #F7FAFC;
}

#portfolio {
	background-color: #f7faf7;
}

#final-cta {
    background: linear-gradient(rgba(44, 107, 67, 0.9), rgba(44, 107, 67, 0.9)), url('../images/cta-bg.jpg') no-repeat center center;
    background-size: cover;
}

#four-details {
	background-color: #2d7a3a;
  	width: 100%;
	margin-left: auto;   /* Forces centering between the left/right boundaries */
  	margin-right: auto;  /* Forces centering between the left/right boundaries */
}


.bg-dark-overlay {
    background-color: rgba(0, 0, 0, 0.45);
    border-radius: 12px;
    padding: 2.5rem;
}

.max-w-600 {
    max-width: 600px;
}

/* Elements and Component Cards */
.service-card {
    border-bottom: 5px solid #4A5568 !important; /* Slate Accent Baseline */
    transition: transform 0.3s ease;
}

.service-card:hover {
    transform: translateY(-8px);
}

.service-card-image {
	margin-top: 0.7rem;
  	border-radius: 10px; /* Applies to all 4 corners */
}

.bullet-icon {
    font-size: 2rem;
    color: #2C6B43;
    font-weight: bold;
}

.gallery-wrapper img {
    transition: transform 0.4s ease;
}

/* Contact Inputs & Form Stylings */
.form-custom {
    border: 1px solid #E2E8F0;
    padding: 0.75rem;
    border-radius: 6px;
    font-family: 'Poppins', sans-serif;
}

.form-custom:focus {
    border-color: #2C6B43;
    box-shadow: 0 0 0 0.2rem rgba(44, 107, 67, 0.25);
}

/* Interactive Call to Action Styling */
.btn-cta, .btn-cta-submit {
    background-color: #db7807 !important; /* Warm Amber */
    color: white !important;
    font-family: 'Poppins', sans-serif;
    font-weight: 600;
    border: none;
    border-radius: 6px;
    transition: all 0.2s ease-in-out;
	padding: 1rem;
	margin-bottom: 2rem
}

.btn-cta:hover, .btn-cta-submit:hover {
    background-color: #D69E2E !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(229, 169, 60, 0.3);
}

.navbar-logo {
	background: url("../images/logoC.png");
    height: 40px;          /* Sets a crisp, uniform vertical height */
    width: auto;            /* Scales width proportionally to prevent stretching */
    max-height: 100%;       /* Ensures it stays perfectly bound inside the navbar */
    object-fit: contain;
}

.txt-four-title{
	font-size: 2rem;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
  	font-style: normal;
	color: white;
	margin-bottom: 0;
	padding: 0;
}
.txt-four-value{
	font-size: 1rem;
	font-family: "Poppins", sans-serif;
	font-weight: 400;
	color: white;
  	font-style: normal;
	opacity: 0.8;
	margin-top: -0.5rem;
}

/* POPPINS SETTINGS */
.poppins-regular {
  font-family: "Poppins", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.poppins-medium {
  font-family: "Poppins", sans-serif;
  font-weight: 500;
  font-style: normal;
}

.poppins-semibold {
  font-family: "Poppins", sans-serif;
  font-weight: 600;
  font-style: normal;
}

.poppins-bold {
  font-family: "Poppins", sans-serif;
  font-weight: 700;
  font-style: normal;
}

.poppins-extrabold {
  font-family: "Poppins", sans-serif;
  font-weight: 800;
  font-style: normal;
}

/* GALLERY */
/* Core Gallery Container Configurations */
.gallery-img-container {
    background-color: #F7FAFC;
    width: 100%;
}

.gallery-img-container img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Crops photos dynamically so they fill their slots perfectly */
    display: block;
    transition: transform 0.4s ease-in-out;
}

.gallery-img-container:hover img {
    transform: scale(1.03); /* Subtle pro zoom on mouseover */
}

/* MOBILE ASPECT BALANCING (Screens up to Large Tablets) */
@media (max-width: 991px) {
    /* Ensures the small 2x2 grid boxes scale to a perfect uniform block height */
    #gallery-matrix .col-6 .gallery-img-container {
        aspect-ratio: 4 / 3; /* Forces a standard crisp landscape photo geometry */
    }
}

/* DESKTOP MATRIX BALANCING (Screens 992px and up) */
@media (min-width: 992px) {
    /* Locks the big container into position relative to match the exact stretching height of the column wrapper */
    .gallery-main-img {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
    }
    
    /* Sets the global standard row height. Adjust this pixel number up or down to scale the entire row uniformly */
    #gallery-matrix .col-6 .gallery-img-container {
        height: 200px; 
    }
}

/* TESTIMONIALS */
/* Testimonial Card Containers */
.testimonial-card {
    background-color: #FFFFFF;
    border-radius: 8px;
    display: flex;
    flex-direction: column; /* Allows content layout to expand height evenly */
}

/* Star Asset Configurations */
.star-rating {
    display: flex;
    gap: 2px;
}

.star-icon {
    width: 20px;
    height: 20px;
    fill: #E5A93C; /* Warm Gold rating color */
}

/* Comment Box Balancing */
.review-text {
    color: #4A5568 !important;
    font-size: 0.95rem;
    line-height: 1.6;
}

/* The Profile Footer Geometry */
.border-top-light {
    border-top: 1px solid #EDF2F7; /* Subtle divider accent above profile */
}

.initial-circle {
    width: 42px;
    height: 42px;
    background-color: #2C6B43;   /* Your Premium Forest Green */
    color: #FFFFFF;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.2rem;
    letter-spacing: 0.5px;
    border-radius: 50%;         /* Forces a perfect uniform circular frame */
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 12px;         /* Creates uniform space between initial circle and name */
    flex-shrink: 0;             /* Prevents layout compression on tiny screens */
}

.reviewer-name {
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    font-size: 1rem;
    color: #1A202C;
}

.bg-light-green{
	background-color: #edf5ef;
}

/*----------------------*/
/* Custom Bullet Formatting */
.why-choose-list {
    list-style: none; /* Strips default generic bullet dots */
}

.bullet-check {
    color: #2C6B43; /* Your Premium Forest Green */
    font-weight: bold;
    font-size: 1.3rem;
    line-height: 1;
}

.why-item-title {
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    font-size: 1.1rem;
    color: #1A202C;
}

.why-item-text {
    font-size: 0.95rem;
    line-height: 1.5;
}

/* Perfect Height Matching Configuration */
.why-img-wrapper {
    width: 100%;
    background-color: #F7FAFC;
}

.why-feature-img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Crops the image smoothly to fit the exact height of the text block next to it */
}

/* Mobile Image Height Safety net */
@media (max-width: 767px) {
    .why-img-wrapper {
        height: 280px !important; /* Prevents the image from flattening out too much on mobile screen heights */
    }
}

/*-----------------------------*/
/* Contact Section Labels & Lists */
.small-label {
    font-size: 0.85rem;
    margin-bottom: 1px;
}

.contact-detail-text {
    font-family: 'Inter', sans-serif;
    color: #1A202C;
    font-size: 1.05rem;
    font-weight: 700;
}

/* Green Geometric Badge Styling */
.contact-icon-badge {
    width: 44px;
    height: 44px;
    background-color: #2C6B43; /* Your Premium Forest Green */
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.contact-icon-badge svg {
    width: 20px;
    height: 20px;
    fill: #FFFFFF;
}

/* Form Input Element Enhancements */
.form-label-custom {
    font-family: 'Inter', sans-serif;
    font-weight: 500;
    font-size: 0.9rem;
    color: #2D3748;
    margin-bottom: 6px;
}

.form-input-custom {
    background-color: #FFFFFF !important;
    border: 1px solid #E2E8F0 !important;
    border-radius: 6px !important;
    padding: 12px 16px;
    height: auto;
    font-size: 0.95rem;
    color: #1A202C;
    transition: all 0.2s ease-in-out;
}

.form-input-custom:focus {
    border-color: #2C6B43 !important;
    box-shadow: 0 0 0 3px rgba(44, 107, 67, 0.15) !important;
}

/* Dropdown Arrow Selection Cleanup */
.select-custom {
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%234A5568'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 20px;
    padding-right: 40px;
}

/* Custom Forest Green Call To Action Button */
.btn-submit-custom {
    background-color: #2C6B43;
    color: #FFFFFF;
    border: none;
    border-radius: 6px;
    font-size: 1rem;
    letter-spacing: 0.3px;
    transition: background-color 0.2s ease-in-out, transform 0.1s ease;
}

.btn-submit-custom:hover {
    background-color: #215132;
    color: #FFFFFF;
}

.btn-submit-custom:active {
    transform: scale(0.98);
}

/*------------------------*/
/* Core Structural Wrapper */
.site-footer {
    background-color: #171E1A; /* Matte Charcoal background color matching your screen capture */
    font-family: 'Inter', sans-serif;
}

/* Typography Rules */
.footer-bio {
    color: #A0AEC0 !important; /* Soft, readable gray for the snippet content */
    font-size: 0.95rem;
    line-height: 1.6;
}

.footer-title {
    font-size: 1.1rem;
    letter-spacing: 1px;
    color: #FFFFFF !important;
}

/* Link List Modifications */
.footer-links-list a, 
.footer-contact-list a {
    color: #FFFFFF !important; /* Forces pure white links */
    text-decoration: none;
    font-size: 0.98rem;
    transition: color 0.2s ease-in-out;
}

.footer-links-list a:hover, 
.footer-contact-list a:hover {
    color: #48BB78 !important; /* Smooth mint-green change on mouse hover */
}

.footer-contact-list span {
    color: #FFFFFF !important;
    font-size: 0.98rem;
}

/* Icon Graphics Adjustments */
.footer-contact-icon {
    width: 18px;
    height: 18px;
    fill: #2C6B43; /* Forest green contact icons matching image layout */
    flex-shrink: 0;
}

/* Social Icon Badges Layout */
.social-circle-badge {
    width: 38px;
    height: 38px;
    background-color: #2D3748; /* Dark gray circular bubble background */
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.2s ease-in-out, transform 0.2s ease;
}

.social-circle-badge svg {
    width: 16px;
    height: 16px;
    fill: #A0AEC0; /* Light gray social vectors */
}

.social-circle-badge:hover {
    background-color: #2C6B43; /* Changes to theme green on hover */
    transform: scale(1.05);
}

.social-circle-badge:hover svg {
    fill: #FFFFFF; /* Turns icon inside white on hover */
}

/* Bottom Bar Divider Line */
.footer-divider {
    border-top: 1px solid #2D3748;
}

.footer-bottom p {
    font-size: 0.88rem;
    color: #718096 !important; /* Subtle tint for the absolute bottom legal line text */
}

/* Container to group the image and the floating badge together */
.about-img-container {
    position: relative;
    /* Extra bottom/right padding protects the badge from clipping on small mobile layouts */
    padding-bottom: 15px;
    padding-right: 15px; 
}

/* The Experience Badge Styling */
.exp-badge {
    position: absolute;
    bottom: 0;
    right: 0;
    background-color: #2C6B43; /* Your Premium Forest Green */
    color: #FFFFFF !important;
    padding: 12px 18px;
    border-radius: 12px;       /* Smooth rounded rectangular corners */
    display: flex;
    align-items: center;
    gap: 10px;                 /* Spacing between the number and text */
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.15); /* Soft drop shadow to make it pop */
    z-index: 2;                /* Ensures it sits safely on top of the image */
}

/* Big "+15" Typography */
.exp-number {
    font-family: 'Poppins', sans-serif;
    font-size: 2.2rem;
    line-height: 1;
    letter-spacing: 0.5px;
}

/* "Years of Experience" Typography */
.exp-text {
    font-family: 'Poppins', sans-serif;
    font-weight: 600;
    font-size: 0.75rem;
    text-transform: uppercase;
    line-height: 1.2;
    text-align: left;
    letter-spacing: 0.5px;
}

/* Responsive adjustment for extra clean scaling on mobile viewports */
@media (max-width: 576px) {
    .exp-badge {
        padding: 8px 14px;
    }
    .exp-number {
        font-size: 1.8rem;
    }
    .exp-text {
        font-size: 0.65rem;
    }
}

/* Keeps the text colors looking natural and changes the cursor on desktop to a pointer finger */
.contact-clickable-link {
    cursor: pointer;
    transition: opacity 0.2s ease-in-out;
}

/* Gives a subtle, professional indicator that the block can be pressed */
.contact-clickable-link:hover {
    opacity: 0.85;
}

/* Explicitly preserves your text colors inside the links */
.contact-clickable-link .contact-detail-text {
    color: #1A202C !important;
}
.contact-clickable-link .small-label {
    color: #6C757D !important;
}