/* Before adding any unnecessary CSS rules, please check out the Snap documentation at https://bit.ly/3PqSii8. */
/* Override Styles */



/* HP Edits - Started <April 14, 2026> */

/**/
	/*fonts*/

	/*btns*/
/*Modal*/


/* Header */

div.header-logo img {
    max-width: 300px;
}

div#desktop-menu {
    max-width: 1200px;
    float: right;
    
}

div#navigation {
    max-width: 1600px;
    left: 0;
    right: 0;
    padding: 30px 0 60px;
    width: 90%;
}
	
.snap-mobile-menu {
    background: white;
}

mm-burger {
    color: #374151;
}
.ry-menu .ry-nav li.primary .caret {
    border-color: #374151;
}

.ry-menu .ry-nav li.primary:hover .caret {
    border-color: var(--color-secondary-background);
}
.with-gradient:before {
    background-image: linear-gradient(to bottom, white, transparent, transparent);
}
.ry-menu .ry-nav li.dropdown .dropdown-menu li {
    background: var(--color-primary-background);
    color: var(--color-primary-text);
		     cursor: pointer;
}
.cta-btn {
    background: var(--color-primary-background);
    color: var(--color-primary-text);
}

.cta-icon {
    background: var(--color-primary-background);
}

.navigation-16 .cta-btn:hover {
    background: #b9c8d3;
    color: var(--color-secondary-text);
    border: none;
}

.navigation-16 .cta-btn:hover .cta-icon i {
    color: #fff;
}

/* Hero */
	/**/
#hp-slider, #hp-slider .swiper-wrapper, .homepage-swiper .swiper-slide img {
    height: 100vh !important;
    object-fit: cover;
}
/* CTA */



/* Welcome */

#welcome-wrap::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
	background: url(https://s3.amazonaws.com/static.organiclead.com/Site-f9e764fc-2da3-4667-913e-5e9db0bfdd19/backgrounds/tsomcallen_welcome_bg.jpg) center center no-repeat;
	background-size: cover;
}

div#welcome-wrap h3 {
    line-height: 1.2;
}


/* END Welcome */




/* Services */
	/**/
.tso-services::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    height: 50%;
    width: 100%;
    background: var(--color-primary-background);
}


/* Meet the Team */
	
.tso-team::before {
    background-position: top right;
}

div.tso-team h3, div.tso-optical-eyewear h3 {
    margin-top: 15px;
}


/* End Meet the Team */


/* Consent Banner */
.privacy-container {
  z-index: 9999;
  position: fixed;
  bottom: 0;
  width: 100%;
  background-color: #f9fafb;
}

.cookie_privacy-wrapper {
    justify-content: space-between;
}

.privacy-wrapper {
  display: flex;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding: 2rem;
  margin: 0 auto;
  gap:0;
  align-items: center;
  flex-direction: column;
}

.privacy-wrapper img {
  object-fit: contain;
  aspect-ratio: 1/1;
  max-height: 5rem;
}

.privacy-wrapper p {
  color: #718096;
}

.button-wrapper {
  display: flex;
  align-items: center;
  margin-top: 1.5rem;
  gap: 1rem;
  flex-shrink: 0;
}

.button-wrapper button {
  width: 16rem;
  border-radius: 0.5rem;
  background-color: #151515;
  padding: 0.625rem 1.5rem;
  font-size: 1rem;
  font-weight: 500;
  color: #fff;
  transition: background-color 0.3s;
  outline: none;
}
@media (min-width: 1400px) {
  .privacy-wrapper {
    max-width: 1400px;
    display: flex;
  }
}

@media (min-width: 1024px) {
  .privacy-wrapper {
    flex-direction: row;
    gap: 4rem;
	  justify-content: space-between !important;
  }

  .button-wrapper {
    column-gap: 2rem;
    margin-top: 0;
	
  }
}



@media (max-width:767px) {
	
	.cookie_privacy-wrapper p {
		text-align: center !important;
	}

}


/* End Consent Banner */


/* Insurance */
	/**/

/* Brand */
	/**/
.tso-optical-eyewear .optical-top::before {
	background-image: url(https://s3.amazonaws.com/static.organiclead.com/Site-f9e764fc-2da3-4667-913e-5e9db0bfdd19/backgrounds/tso_brand_bg.jpg);
}
/* Request Appointment */
	/**/
/* Testimonials */
	/**/

/* Footer */
	/**/
/*Media Queries*/
	/**/
@media (max-width:1023px){
    #hp-slider, #hp-slider .swiper-wrapper, .homepage-swiper .swiper-slide img {
        height: 100% !important;
    }
}

@media (max-width:991px) {
	div#desktop-menu {
		display: none;
	}

	div#navigation-style-16 {
		display: none;
	}

	div#navigation {
		width: 100%;
		padding: 0;
	}
}

/* End - HP Edits*/



/*Inside page edits */

.link, a.link {
    position: absolute;
    color: transparent !important;
    top: 0;
    right: 0;
    left: 0;
    bottom: 0;
}

.ry-text h2, .ry-text h3, .ry-text h4, .ry-text h5 {
    margin: 0 0 15px 0;
}

div#contents li p {
    margin: 0;
}

div#content-flex .ry-each, div#with-image, div#with-text {
    width: 50%;
}

div#with-image-content {
    align-items: center;
}

div#with-image-content img, div#content-flex img {
    margin: 0;
    border-radius: 20px;
}

div#with-image-content, div#content-flex {
    gap: 0 3em;
    justify-content: space-between;
    margin-bottom: 4em;
    border-bottom: 1px solid hsl(0deg 0% 0% / 15%);
    padding-bottom: 2em;
}

img#page-image {
    max-width: 800px;
    margin: auto;
    border-radius: 20px;
}

.ry-photo.left {
    width: 40%;
    float: left;
    margin: 0 3em 1em 0em;
}

.ry-photo.right {
    width: 40%;
    float: right;
    margin: 0 0 1em 3em;
}

div#pg-hours li {
    list-style: none;
}

div#pg-hours ul {
    padding: 0;
}

div#pg-hours ul li span.span-1 {
    width: 110px;
    display: inline-block;
}

.ry-text li {
    margin: 0 !important;
}

div#btn-flex {
    gap: 1em;
    margin-top: 2em;
   
}
a#pg-btn {
    margin-top: 5px !important;
    display: inline-flex;
    width: 100%;
    white-space: nowrap;
    align-items: center;
    text-align: center;
    justify-content: center;
}

div#ip-insurance {
    margin-top: 4em;
    justify-content: space-between;
    gap: 2em;
    flex-wrap: wrap;
}

div#ip-insurance .ry-text {
    width: 47%;
    background: #e5e7eb;
    padding: 2em;
    border-radius: 10px;
}

div.tso-optical-eyewear {
    padding-bottom: 2em;
}

div.tso-optical-eyewear .tso-designer-brands {
    margin-top: 15px;
}

div.tso-optical-eyewear h3 span {
    margin-left: 10px;
}

div#flex-box {
    flex-direction: column;
    margin-top: 2em;
    margin-bottom: 2em;
}

div#flex-box div#with-image-content {
    align-items: flex-start;
    margin: 2em 0;
    padding: 4em;
    border-radius:20px;
    border: none;
    background: #fefefe;
    box-shadow: 1px 1px 8px hsl(179deg 0% 71.37% / 15%);
}

div#flex-box div#with-image-content img {
    width:100%;
}

div#flex-box div#with-image-content img {
    margin: 0;
    border-radius:20px;
}

div#flex-box .page-anchor:nth-child(even) div#with-image-content {
   flex-direction:row-reverse;
}

.blog-item-wrap img {
  margin: 0;
  border-top-left-radius: 20px;
  border-top-right-radius: 20px;
  height: 270px;
  object-fit: cover;
  width: 100%;
}

.blog-item-wrap {
    background: #fefefe;
    border-radius: 20px;
    box-shadow: 1px 1px 8px hsl(0deg 0% 0% / 12%);
	 position: relative;
}

.blog-item-wrap .ry-text {
    padding: 2em;
}

div#blog-items {
    margin-top: 3em;
}

div.blog-content-block {
    margin-bottom: 4em;
}

.ry-form {
    background: #fefefe;
    padding: 2em;
    box-shadow: -1px 1px 7px 2px hsl(0deg 0% 0% / 4%);
}

.ry-form .form-spacing {
    border-bottom: 1px solid hsl(0deg 0% 0% / 23%);
    padding-bottom: 3em;
}

.ry-form textarea {
    height: 100px;
    width: 100%;
    border: 1px solid rgb(209 213 219);
    border-radius: 10px;
}

.ry-form label {
    margin-bottom: 8px;
}

.ry-form  input[type="radio"] {
    top: -2px;
    width: 10px;
    height: 10px;
    margin-right: 5px;
    position: relative;
    top": 0";
    top": 0";
}

.ry-form  .form-group {
    display: flex;
    gap: 0 10px;
    align-items: center;
}


.form-spacing {
    border-bottom: 1px solid hsl(0deg 0% 0% / 23%);
    padding-bottom: 3em;
}

div#brands-inner div#Frames h3, div#brands-inner div#Sunglasses h3, div#brands-inner div#Sports h3{
    margin: 0;
}

div#brands-inner div#Frames .mb-20, div#brands-inner div#Sunglasses .mb-20, div#brands-inner div#Sports .mb-20 {
 margin-bottom: 0 !important;   
}


html {
  scroll-behavior: smooth;
}


div#brands-inner div#tso-brands-swiper {
    max-width: 90%;
}

div#brands-inner #tso-frames .swiper-button-next, div#brands-inner #tso-frames .swiper-button-prev {
    width: 30px;
    height: 30px;
    padding: 20px;
    background-size: 30% auto;
}

div#contents ul.pagination {
    display: flex;
    justify-content: flex-start;
    gap: 0 5px;
    padding-inline-start: 0;
    padding: 0;
}

div#contents ul.pagination li a {
    list-style: none;
    width: 30px;
    height: 30px;
    background: var(--color-secondary-background);
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    border-radius: 5px;
    color: var(--color-secondary-text);
}

div#contents ul.pagination li.active a, div#contents ul.pagination li:hover a {
    background: var(--color-primary-background);
    color: #fff;
}

div#contents ul.pagination li {
        list-style: none;
        padding: 0;
}


.homepage-team-swiper-pagination {
  margin-top: 3em;
 
}

@media (max-width:1199px) {
	
    div#navigation-style-16, div#desktop-menu {
		display: none;
	}

	div#mobile-menu {
		display: block !important;
	}

	.snap-mobile-menu {
		display: flex;
	}

	div#navigation {
		width: 100%;
		padding: 0;
	}
}

@media (min-width:767px) and (max-width:1080px) {
  .snap-mobile-menu img {
    max-width: 250px;
  }
  
  .snap-mobile-menu .flex.items-center.gap-6 {
    width: 350px;
  }
}


@media (max-width:1080px) {
	 div#with-image-content, div#content-flex {
		  flex-direction:column;
		  gap:3em 0 !important;
	}
	
	#hp-slider .swiper-button-next, #hp-slider .swiper-button-prev {
	  display: none !important;
	}
	
	div#flex-box div#with-image-content {
		padding: 2em !important;
		margin: 1em 0 !important;
	}
	
	div#flex-box .page-anchor:nth-child(even) div#with-image-content {
		flex-direction: column !important;
	}

	div#flex-box div#with-image-content img {
		max-width: 500px !important;
	}

	div#with-image img {
		max-width: 250px;
		margin: auto !important;
	}
	
	div#content-flex .ry-each, div#with-image, div#with-text {
		width: 100% !important;
	}
	
	.ry-photo.right, .ry-photo.left {
		width: 100%;
		margin: 0 auto 2em;
	}

    .ry-photo.right img, .ry-photo.left img {
        max-width: 400px !important;
    }
	
	  div#ip-insurance .ry-text {
        width:100%;
    }

    div#ip-insurance {
        flex-direction:column;
	}
	
	.mobile-services {
	  margin-top: 2em;
	}
	

}

@media (max-width:991px) {
	#hp-slider {
	  padding-top: 5em;
	}
	
	#welcome-wrap h3, #welcome-wrap p {
	  text-align: center !important;
	}
	#welcome-wrap .ry-btn {
	  margin: 2em auto;
	  display: flex;
	  float: none;
	  justify-content: center;
	  width: 100%;
	}

	#welcome-wrap {
	  padding-top: 2em;
	}
	div#welcome-wrap h3 {
	  font-size: 28px;
	  line-height: 1.3 !important;
	}
	.ry-section h3 {
	  text-align: center !important;
	}
	#section-hp-services {
	  text-align: center;
	}
	.tso-team {
	  text-align: center;
	}

	.tso-team img {
	  margin: 0 auto 2em;
	}
	div.tso-optical-eyewear p {
	  text-align: center;
	}
}

/*end Inside page edits */

body[data-page-name="contact-us"] div#footer-map {
    display: none;
}



/*FAQ UPDATES */


div#image-text-flex {
    align-items: center;
    justify-content: space-between;
    gap: 2em;
    border-bottom: 1px solid rgb(102 102 102 / 24%);
    padding-bottom: 1em;
    margin-bottom: 1em;
}

div#image-text-flex .ry-btn-primary {
    margin: 1em 0 0;
    display: block;
}

div#image-text-flex div#with-image img {
    border-radius: 20px;
}

div#image-text-flex div#with-image {
    width: 35%;
}

div#image-text-flex div#with-text {
    width: 60%;
}

@media (max-width: 1080px) {
	
    div#image-text-flex div#with-text p,
    div#image-text-flex div#with-text h2 {
        text-align: center !important;
    }

    div#image-text-flex {
        flex-direction: column !important;
        gap: 2em 0 !important;
        padding-bottom: 2em !important;
    }

    div#image-text-flex div#with-text .ry-btn {
        margin: auto;
        display: block;
    }
  
    div#image-text-flex div#with-text h2 {
      font-size: 22px;
      line-height: 1.5;
  }
}


/*END FAQ UPDATES */