/************************************************
********* Desktop view (1024px and above) 
*************************************************/
/* Home Page Specific Styles */
@media only screen and (min-width: 1024px) {
    /* Banner Container */
    #banner_container {
        margin: 0 auto 1rem;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    #photo_banner {
        position: relative;
        overflow: hidden;
        border-radius: 10px;
    }

    .banner-slide {
        display: none;
        width: 100%;
        height: 100%;
    }

    .banner-slide.active {
        display: block;
    }

    .banner-slide img,
    .banner-slide picture {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }

    /* Make the logo slide smaller and centered */
    .logo-slide {
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .logo-slide picture,
    .logo-slide img {
        width: auto;
        max-width: 70%;
        max-height: 70%;
        height: auto;
        object-fit: contain;
        margin: 0 auto;
        display: block;
    }

    .banner-dots {
        position: absolute;
        bottom: 15px;
        left: 50%;
        transform: translateX(-50%);
        display: flex;
        gap: 8px;
        z-index: 10;
    }

    .dot {
        width: 12px;
        height: 12px;
        border-radius: 50%;
        background-color: rgba(255, 255, 255, 0.5);
        cursor: pointer;
        transition: background-color 0.3s;
    }

    .dot.active {
        background-color: #ffffff;
    }

    .banner-prev,
    .banner-next {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        background-color: rgba(0, 0, 0, 0.5);
        color: white;
        border: none;
        cursor: pointer;
        z-index: 5;
        transition: background-color 0.3s;
    }

    .banner-prev:hover,
    .banner-next:hover {
        background-color: rgba(0, 0, 0, 0.8);
    }

    .banner-prev {
        left: 10px;
    }

    .banner-next {
        right: 10px;
    }

    /* Content Box */
    #content_box {
        margin: 0 10px;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding: 10px 20px;
    }

    #content {
        padding: 5px;
        width: 100%;
        border: none;
        outline: none;
    }

    #content p,
    #content h2 {
        text-align: center;
    }

    .nav {
        margin: 0 0 1rem 0;
        padding: 0;
        border-radius: 5px;
    }

    .content-link {
        display: inline-block;
        transition: transform 0.2s ease;
        text-decoration: none;
        color: inherit;
    }

    .content-link:hover {
        transform: translateY(-2px);
        text-decoration: none;
    }
}
/************************************************
********* Desktop view (1024px and above) 
*************************************************/
@media only screen and (min-width: 1024px) {
	#photo_banner {
		width: 700px;
		height: 400px;
	}

	.banner-prev,
	.banner-next {
		font-size: 24px;
		padding: 10px 15px;
	}

	#content_box {
		max-width: 55rem;
		width: 100%;
	}

	.service_cards {
		width: 100%;
		max-width: 55rem;
		margin: 0 auto;
	}

	.container_12 {
		width: 55rem;
		margin: 0 auto;
	}

	#content {
		width: 100%;
		max-width: 55rem;
		margin: 0 auto;
	}
}

/* Hide banner pagination dots on pages opting for a clean banner */
.page-banner-clean .banner-dots {
	display: none !important;
}

/**********************************************
**** Tablet view (608px - 1023px) 
**********************************************/
@media only screen and (min-width: 608px) and (max-width: 1023px) {
	/* Banner Container */
	#banner_container {
		margin: 0 auto 1rem;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		width: 100%;
	}

	#photo_banner {
		position: relative;
		overflow: hidden;
		border-radius: 10px;
		width: 100%;
		max-width: 700px;
		height: 350px;
	}

	.banner-slide {
		display: none;
		width: 100%;
		height: 100%;
	}

	.banner-slide.active {
		display: block;
	}

	.banner-slide img,
	.banner-slide picture {
		width: 100%;
		height: 100%;
		object-fit: cover;
		display: block;
	}

	/* Make the logo slide smaller and centered */
	.logo-slide {
		display: flex;
		align-items: center;
		justify-content: center;
	}

	.logo-slide picture,
	.logo-slide img {
		width: auto;
		max-width: 70%;
		max-height: 70%;
		height: auto;
		object-fit: contain;
		margin: 0 auto;
		display: block;
	}

	.banner-dots {
		position: absolute;
		bottom: 15px;
		left: 50%;
		transform: translateX(-50%);
		display: flex;
		gap: 8px;
		z-index: 10;
	}

	.dot {
		width: 12px;
		height: 12px;
		border-radius: 50%;
		background-color: rgba(255, 255, 255, 0.5);
		cursor: pointer;
		transition: background-color 0.3s;
	}

	.dot.active {
		background-color: #ffffff;
	}

	.banner-prev,
	.banner-next {
		position: absolute;
		top: 50%;
		transform: translateY(-50%);
		background-color: rgba(0, 0, 0, 0.5);
		color: white;
		border: none;
		cursor: pointer;
		z-index: 5;
		transition: background-color 0.3s;
		font-size: 20px;
		padding: 8px 12px;
	}

	.banner-prev:hover,
	.banner-next:hover {
		background-color: rgba(0, 0, 0, 0.8);
	}

	.banner-prev {
		left: 10px;
	}

	.banner-next {
		right: 10px;
	}

	/* Content Box */
	#content_box {
		margin: 0 10px;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		padding: 10px 20px;
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
	}

	#content {
		padding: 5px;
		width: 100%;
		border: none;
		outline: none;
	}

	#content h2 {
		text-align: center;
		line-height: 1.25;
		font-size: 1.6rem;
		margin: 0.5rem 0 0.75rem;
	}

	#content p {
		text-align: center;
		line-height: 1.4;
		font-size: 0.95rem;
	}

	.nav {
		margin: 0 0 1rem 0;
		padding: 0;
		border-radius: 5px;
	}

	.content-link {
		display: inline-block;
		transition: transform 0.2s ease;
		text-decoration: none;
		color: inherit;
	}

	.content-link:hover {
		transform: translateY(-2px);
		text-decoration: none;
	}
}

/*************************************************
*** Mobile view (max-width: 607px) 
**************************************************/
@media only screen and (max-width: 607px) {
	/* Banner Container */
	#banner_container {
		margin: 0 auto 1rem;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		width: 100%;
		max-width: 100%;
		padding: 0 5%;
		box-sizing: border-box;
	}

	#photo_banner {
		position: relative;
		overflow: hidden;
		border-radius: 10px;
		width: 100%;
		max-width: 100%;
		height: 210px;
	}

	.banner-slide {
		display: none;
		width: 100%;
		height: 100%;
	}

	.banner-slide.active {
		display: block;
	}

	.banner-slide img,
	.banner-slide picture {
		width: 100%;
		height: 100%;
		object-fit: cover;
		display: block;
	}

	/* Make the logo slide smaller and centered */
	.logo-slide {
		display: flex;
		align-items: center;
		justify-content: center;
	}

	.logo-slide picture,
	.logo-slide img {
		width: auto;
		max-width: 70%;
		max-height: 70%;
		height: auto;
		object-fit: contain;
		margin: 0 auto;
		display: block;
	}

	.banner-dots {
		position: absolute;
		bottom: 10px;
		left: 50%;
		transform: translateX(-50%);
		display: flex;
		gap: 6px;
		z-index: 10;
	}

	.dot {
		width: 10px;
		height: 10px;
		border-radius: 50%;
		background-color: rgba(255, 255, 255, 0.5);
		cursor: pointer;
		transition: background-color 0.3s;
	}

	.dot.active {
		background-color: #ffffff;
	}

	.banner-prev,
	.banner-next {
		position: absolute;
		top: 50%;
		transform: translateY(-50%);
		background-color: rgba(0, 0, 0, 0.5);
		color: white;
		border: none;
		cursor: pointer;
		z-index: 5;
		transition: background-color 0.3s;
		font-size: 18px;
		padding: 8px 12px;
	}

	.banner-prev:hover,
	.banner-next:hover {
		background-color: rgba(0, 0, 0, 0.8);
	}

	.banner-prev {
		left: 5px;
	}

	.banner-next {
		right: 5px;
	}

	/* Content Box */
	#content_box {
		margin: 0;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		padding: 0;
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
	}

	#content {
		padding: 5px;
		width: 100%;
		border: none;
		outline: none;
	}

	#content h2 {
		text-align: center;
		margin-top: 0;
        margin-bottom: .5rem;
        font-size: 1rem;
	}

	#content p {
		text-align: center;
		font-size: 0.95rem;
		line-height: 1.5;
		padding: 0 1rem;
	}

	.grid_9 h2 {
		font-size: 1.6rem;
		line-height: 1.3;
	}

	.nav {
		margin: 0 0 1rem 0;
		padding: 0;
		border-radius: 5px;
	}

	.content-link {
		display: inline-block;
		transition: transform 0.2s ease;
		text-decoration: none;
		color: inherit;
	}

	.content-link:hover {
		transform: translateY(-2px);
		text-decoration: none;
	}
}
