/*! HTML5 Boilerplate v5.0 | MIT License | http://h5bp.com/ */

body { -webkit-transition: all 0.5s ease-in-out; transition: all 0.5s ease-in-out; }
* { -webkit-transition: inherit; transition: inherit; }
ul#nav, ul#nav li, .response, .bg1, .main-container, .subnav, #mobile-nav, .button { -webkit-transition: none; transition: none; }

h1, h2, h3, h4, h5 {
    font-family: "new-hero", sans-serif;
    font-weight: 700;
    font-style: normal;
}
h1, h2, h3 {
	text-transform: uppercase;
}
h2 { text-align: center; margin-bottom: 15px; }
p, li { font-size: 18px; }
.fullimage img {
    display: block;
    width: 100%;
}
.response {
	display: none;
	margin: 25px 0px;
	padding: 20px;
	border: 1px solid #bcbcbc;
}
.response.error { border: 2px solid #ff0006; }
.response.success { border: 2px solid #12b366; }
.response p { margin-bottom: 7px; }
.response p:last-child { margin: 0px; }

.hide-mobile { display: none; }

.button {
	display: inline-block;
	text-decoration: none;
	background-color: #159619;
	color: #FFFFFF !important;
	padding: 15px 35px; /* Larger touch target for thumbs */
	border-radius: 4px;
	font-weight: bold;
	text-transform: uppercase;
}
.button:hover {
    background-color: #1bc620;
}
.button.cta-button {
    background: #159619 url('/images/icon_phone.svg') 15px no-repeat;
    background-size: 20px;
    padding: 15px 25px;
    padding-left: 40px;
}
.button.cta-button:hover {
    background-color: #1bc620;
}
.loading {
	background: url('/images/img_loading_gray@2x.gif') center -8px no-repeat;;
	background-size: auto;
	background-size: 55px 55px;
	cursor: default;
}
.loading a {
	visibility: hidden;
}
	


ul.bulleted li {
	position: relative;
	padding-left: 17px;
	line-height: 1.4em;
}
ul.bulleted li:before {
	position: absolute;
	content: "";
	left: 0px; top: 6px;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 4.5px 0 4.5px 8px;
	border-color: transparent transparent transparent #159619;
}

#header-container {
	border-top: 10px solid #000000;
	padding: 10px 0px;
}
#header {
    display: flex;
    align-items: center; /* Centered vertically */
}
#header-cta a.button {
    border-radius: 35px;
    padding: 10px 25px;
    padding-left: 35px;
}


#header #nav-container { display: none; }
#mobile-nav { display: none; }

#mobile-menu {
    margin-right: 15px;
}
#mobile-menu a {
    display: block;
    width: 45px; height: 33px;
}
#mobile-menu a img {
    width: 100%;
}


#mobile-nav {
    background-color: #202020;
    padding: 5px 0px;
}
#mobile-nav #nav-container {
    max-width: 550px;
    margin: 0 auto;
}
#mobile-nav #nav-container ul {
    margin: 0px;
}
#mobile-nav #nav-container ul li {
    background-color: #474747;
    padding: 10px 25px;
    margin-bottom: 5px;
    font-size: 16px;
}
#mobile-nav #nav-container ul li:last-child {
    margin-bottom: 0px;
}
#mobile-nav #nav-container ul li a {
    color: #FFFFFF;
    position: relative;
    width: 100%;
    display: block;
}
#mobile-nav #nav-container ul li ul {
    display: none;
    padding-top: 12px;
}

#mobile-nav #nav-container > ul > li.nav-dropdown a:after {
    content: "";
    position: absolute;
    top: 9px;
    right: -16px;
    width: 0px;
    height: 0px;
    border-style: solid;
    border-width: 6.9px 4px 0 4px;
    border-color: #FFFFFF transparent transparent transparent;
    transform: rotate(0deg);
}
#mobile-nav #nav-container ul li ul li {
    background-color: #131313;
}
#mobile-nav #nav-container ul li ul li a:after {
    display: none;
}

a, a:visited {
  cursor: pointer;
  color: #27ba5b;
}
.hide-mobile { display: none; }

.wrapper, .wrapper {
    width: 90%;
    margin: 0 5%;
}
.wrapper.medium {
	max-width: 1250px;
}
.wrapper.small {
	max-width: 1050px;
}
.wrapper.smaller {
	max-width: 855px;
}
.main-container, .media-container { min-height: 300px; }

.light-text > * { color: #FFFFFF; }
.dark-text > * { color: #000000; }
.green { color: #27ba5b !important }
.section { position: relative; padding: 45px 0px; }


#raimondo-logo { margin: 0px; margin-right: auto; }
#raimondo-logo a {
	display: block;
	width: 160px;
	height: 46px;
}
#raimondo-logo a img {
    display: block;
    width: 100%;
}
h4 a, h4 a:visited {
	color: #202020;
}

.content-container, .listings-container {
	padding: 35px 0px;
	margin: 0 auto;
}
 .content-section {
	padding: 25px 0px;
}


/* 1. Main Container */
.hero-section {
    position: relative;
    height: 60vh; /* Adjust height as needed */
	min-height: 650px;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    background-color: #333; /* The "gray box" fallback */
}

/* 2. Background Layers */
.hero-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: 1;
    /* Optional: Adds a subtle dark tint so white text pops */
    background-image: linear-gradient(rgba(0,0,0,0.3), rgba(0,0,0,0.3));
    background-blend-mode: overlay;
}

/* The secondary layer for cross-fading */
.hero-bg.next {
    display: none;
    z-index: 2;
}

/* 3. Content Layer */
.hero-content {
    position: relative;
    z-index: 10; /* Keeps text above everything */
    color: white;
    width: 100%;
    max-width: 1200px; /* Standard wrapper width */
    padding: 0 20px;
}

.hero-content h1 {
    font-size: 2.5rem;
    margin-bottom: 1rem;
    line-height: 1.2;
    text-shadow: 2px 2px 10px rgba(0,0,0,0.8);
    max-width: 800px;
}

.hero-content p.dark-box {
    font-size: 1.1rem;
    margin-bottom: 1.5rem;
    background-color: rgba(0, 0, 0, 0.6);
    padding: 15px;
    display: inline-block; /* Wraps background tightly to text */
    max-width: 700px;
}

/* 4. Pagination Dots */
.hero-pagination {
    position: absolute;
    bottom: 15px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 12px;
    z-index: 20;
}

.dot {
    width: 12px;
    height: 12px;
    background-color: rgba(255, 255, 255, 0.3);
    border: 2px solid #fff;
    border-radius: 50%;
    cursor: pointer;
    transition: all 0.3s ease;
}

.dot.active {
    background-color: #fff;
    transform: scale(1.2);
}



#hero-banner {
    padding: 15px;
}
#hero-banner #hero-banner-container {
    display: flex;
    align-items: center; /* Vertical center */
    justify-content: space-between; /* Horizontal spacing */
}
#hero-banner h3 {
    max-width: 650px;
    text-align: center;
    margin: 0px;
	font-size: 20px;
    line-height: 1.4em;
}
#hero-banner p { margin: 0px; }
#hero-banner .img-quality img, 
#hero-banner .img-grandpa img {
  height: 64px;
  width: auto;
  display: block;
}

#about-us {
    position: relative;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 25px 35px;
    overflow: hidden;
}
#about-us:after {
    content: "";
    background: url('/images/bg_brick_1@2x.jpg') repeat-y;
    background-size: cover;
    background-position: center;
    opacity: 0.25; /* Adjust this value (0.0 to 1.0) */
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    position: absolute;
    z-index: -1; /* Pushes the image behind the text */
}


.listings {
	display: flex;
	flex-flow: row;
	flex-wrap: wrap;
}
.listing-container { padding: 10px; }
.bubble-cats .listing {
	margin-bottom: 25px;
}
.bubble-cats .listing h4 {
	text-align: center;
	margin-bottom: 10px;
    text-transform: uppercase;
}
.bubble-cats .listing p {
    font-size: 17px;
    line-height: 1.4em;
}

.bubbles .listing-container { text-align: center; }

.bubble-cats .listing .listing-image {
	margin-bottom: 15px;
	height: auto;
}
.bubble-cats .listing .listing-image {
	display: inline-block;
	width: 200px;
	height: 200px;
	background-color: #404040;
	border-radius: 200px;
    overflow: hidden;
}
.bubble-cats .listing .listing-image img {
    object-fit: cover;
    max-height: none;
    object-position: center;
	height: 100%;
}


#testimonials {
    position: relative;
    border: 3px solid #159619;
    text-align: center;
}
#testimonials:after {
    content: "";
    background: url('/images/icon_quotes.svg') no-repeat;
    background-color: #f4f4f4;
    position: absolute;
    top: -25px;
    left: 20px;
    width: 45px;
    height: 45px;
}

#testimonials-container {
    padding: 45px;
}
#testimonials .testimonial {
    display: none;
    padding: 0px 25px;
}
#testimonials .testimonial.active {
    display: block;
}

.testimonial h3 {
    margin-bottom: 0px;
}
.testimonial p {
    font-size: 24px;
    font-style: italic;
    line-height: 1.5em;
}
.pagination-control {
    display: block;
    width: 40px; height: 40px;
    background: url('/images/icon_arrow.svg') no-repeat;
    background-size: 40px;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
}
#testimonial-forward {
    right: 2%;
    transform: translateY(-50%) rotate(180deg);
}
#testimonial-reverse {
    left: 2%;
}
#contact-us {
	text-align: center;
}




/* -== Subpage Styles ==- */
#sub-title {
    padding: 15px;
    text-align: center;
}
#sub-title h1 { margin-bottom: 0px; font-size: 25px; }
.services h2 { font-size: 24px; }


.service-row {
    display: grid;
    grid-template-columns: 1fr; /* Single column for phones */
    gap: 20px;
    padding: 35px 20px;
    background-color: #f4f4f4;
    padding: 25px;
}
.row-reverse {
    background-color: #ffffff;
}
/* Ensure images don't overflow on small screens */
.service-image img {
    width: 100%;
    height: auto;
    display: block;
}





#footer-banner {
    background-color: #004702;
    padding: 10px 0px;
}
#footer-banner h5 {
    font-size: 15px;
}
#footer-banner-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
#footer-banner #footer-button a {
    background-color: #FFFFFF;
    border-radius: 35px;
    padding: 5px 25px;
    margin-left: 15px;
    color: #004702 !important;
    white-space: nowrap;
}
#fb-footer {
    width: 40px;
    margin-right: 10px;
}

#footer-container {
	position: relative;
	padding: 25px 0px;
	background-color: #159619;
}
#footer > *, #footer a, #footer a:visited { color: #FFFFFF; }
#footer ul, #footer ul li:last-child { margin-bottom: 0px; }
#footer ul li a { text-decoration: none; }
#footer-left { clear: both; }
#footer-myaccount { display: none; }
#footer-middle, #footer-right { margin-top: 30px; }
#footer-right { width: 225px; }
#footer-right p { margin-bottom: 2px; }
#footer #footer-logo { margin-bottom: 5px; }
#footer #footer-logo img {
    display: block; width: 100%;
}
#footer-copyright {
	background-color: #222222;
	padding: 15px 0px;
}
#footer-copyright p { text-align: center; margin: 0px; font-size: 13px; }


