/* Start - Reusable CSS */
:root {
	/* Colors */
	--primary-bg-color: #778971;
	--secondary-bg-color: #41443d;

	/* Typography */
	--font-family: 'Sofia Sans', sans-serif;
	--font-family-title: 'Sofia Sans', sans-serif;
	--font-size-heading: clamp(2.625rem, 2.3382rem + 1.1765vw, 3.75rem);
	--font-size-sub-heading: 25px;
}



html {
    scroll-behavior: smooth !important;
    scroll-padding-top: 300px !important;
}

.overlink, .overlink a {
    position: absolute;
    width: 100%;
    height: 100%;
    z-index: 9;
    opacity: 0;
}

.mm-panel .mob-menu a {
    color: #fff;
    text-transform: uppercase;
    text-wrap: balance;
}

body.home h2 {
	font-size: clamp(3.125rem, 2.6471rem + 1.9608vw, 5rem);
    letter-spacing: -3px;
    line-height: normal;
    color: #323234;
    font-weight: 250 !important;
	text-wrap: balance;
}

body.home h2 span {
    display: block;
	font-size: clamp(1.5rem, 1.4044rem + 0.3922vw, 1.875rem);
    letter-spacing: 1px;
    line-height: 42px;
    text-transform: uppercase;
    color: #778971;
    font-weight: 700;
    text-align: center !important;
}



/* End - Reusable CSS */


/*Start - Header */
.module-43 .grid-container {
    display: grid;
    grid-template-columns: 300px 800px 480px;
    place-content: center;
    justify-content: space-between;
}

.module-43.fixed .ry-menu, 
.module-43 .ry-menu {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    max-width: 100%;
}

.module-43 .grid-container .ry-menu ul {
    display: flex;
    justify-content: space-between;
	width: 100%;
}

.module-43 .grid-container .ry-menu .ry-right {
    display: flex;
}

.module-43 .ry-right.ry-cta .wrapper {
	display: flex;
	gap: 10px;
	justify-content: flex-end;
	
}

.module-43 .ry-right.ry-cta .wrapper .cta-btn {
    position: relative;
    background: var(--primary-bg-color);
    width: 206px;
    height: 55px;
    cursor: pointer;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
}

.module-43 .ry-right.ry-cta .wrapper .cta-btn:last-child {
    background: var(--secondary-bg-color);
    width: 218px;
    height: 55px;
}

.module-43 .ry-right.ry-cta .wrapper .cta-text {
    font-size: 18px !important;
    letter-spacing: 0px;
    color: #f4f1ea;
}

.module-43 .ry-right.ry-cta {
    display: flex;
    align-items: center;
    justify-content: center;
}


.mobile-container {
    box-shadow: rgb(239, 239, 239) 0px 2px 4px !important;
    background: rgba(255, 255, 255, 0.98) !important;
}

.mobile-container .flex-wrap .flex-item.right-nav .mobile-button a {
    background: var(--primary-bg-color) !important;
}




/*End - HP Header */



/*Start - HP Slider*/
.banner-heading h1 span {
    font-size: clamp(3.75rem, 3.1287rem + 2.549vw, 6.1875rem);
    line-height: 92px;
    color: #323234;
    font-weight: 300;
}

.banner-heading h1 .sentence {
    display: flex;
    gap: 15px;
}

.banner-heading h1 {
    font-weight: 400 !important;
}

.banner-heading h1 .sentence span:last-child {
    font-weight: 500;
}

.banner-heading .third.sentence {
    display: flex;
}

.banner-heading 
 .third.sentence a.ry-btn.ry-btn-primary {
    height: auto;
    margin-top: 30px;
    color: #fff !important;
}

/* End - HP Slider*/

/* Start - HP Welcome Style */
body.home .hp-welcome h2 {
	font-size: clamp(3.4375rem, 2.9596rem + 1.9608vw, 5.3125rem) !important;
}


/* End - HP Welcome Style */


/* Start - HP CTA Style */
.hp-cta {
    margin-top: -24rem;
}

.hp-cta .grid-container {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
	padding-bottom: 180px;
}

.hp-cta .card {
	position: relative;
	overflow: hidden;
	border-radius: 30px;
	border: 10px solid #fff;
	box-shadow: rgba(0, 0, 0, 0.16) 0px 10px 36px 0px, rgba(0, 0, 0, 0.06) 0px 0px 0px 1px;
}

.hp-cta .card img {
	width: 100%;
	height: auto;
	display: block;
}

.hp-cta .card-content {
	position: absolute;
	bottom: 1rem;
	left: 0;
	padding-left: 68px;
	padding-bottom: 55px;
	z-index: 9;
}

.hp-cta .card button {
	margin-top: 0.5rem;
	padding: 0.5rem 1rem;
	background: #3b5d46;
	color: white;
	border: none;
	border-radius: 4px;
	cursor: pointer;
}

.hp-cta .card.large {
	grid-column: span 1;
}

.hp-cta .card.large .card-content {
    top: 45%;
    transform: translateY(-50%);
    bottom: 0;
}


.hp-cta .card-content span {
    font-size: 24px;
    letter-spacing: 1px;
    line-height: 28px;
    text-transform: uppercase;
    color: #778971;
    font-weight: 700;
    display: inline-block;
}

.hp-cta .card-content p {
    font-size: 19px;
    line-height: 26px;
    color: #ffffff;
    padding: 25px 0 15px;
}

@media (min-width: 1080px) {
	.hp-cta .grid-container {
		grid-template-columns: repeat(2, 1fr);
		grid-template-rows: auto auto;
		grid-template-areas:
			"store store"
			"office lens";
	}

	.hp-cta .card.large {
		grid-area: store;
	}

	.hp-cta .card:nth-child(2) {
		grid-area: office;
	}

	.hp-cta .card:nth-child(3) {
		grid-area: lens;
	}
}

.hp-cta .card {
    height: 37rem;
}

/* End - HP CTA Style */

body.home .hp-cta h2 {
    text-align: left;
    color: #fff;
}

.hp-welcome .ry-content {
    position: absolute;
    padding: 15rem 0 0;
}

.hp-welcome .section-text p {
    text-align: center;
    font-size: 26px;
}

.hp-welcome .section-text {
    max-width: min(100%, 960px);
    margin: 0 auto;
    float: unset;
    padding: 0 3%;
}

.hp-welcome .section-text strong {
    display: inline-block;
    padding: 70px 0 45px;
}

.hp-welcome .btn-wrapper {
    display: flex;
    align-items: center;
    padding-top: 40px;
    justify-content: center;
}


/* Start - HP Team Style */

.hp-team .section-bg img {
	min-height: 813px;
}

.hp-team h2 {
    color: #fff !important;
}

.hp-team h2 span {
    opacity: 0.502;
    font-size: 24px !important;
    line-height: 28px !important;
    color: #fff !important;
}

.hp-team .ry-content {
    position: absolute;
    padding: 9rem 0 9.8rem;
}

.hp-team .ry-content .grid-container {
    display: grid;
    grid-template-columns: repeat(3, 320px);
    place-items: center;
    justify-content: space-between;
    max-width: 960px;
    margin: 0 auto;
    float: unset;
    padding-top: 45px;
}

.hp-team .ry-content .person-name {
    padding-top: 35px;
}

.hp-team .ry-content .person-name h3 {
    font-size: 25px;
    letter-spacing: 0px;
    line-height: 30px;
    color: #f4f1ea;
    text-align: center;
}

.hp-team .ry-content .person-name h3 span {
    display: block;
    font-size: 18px;
    letter-spacing: 1px;
    line-height: 30px;
    text-transform: uppercase;
    color: #a3a3a3;
    font-weight: 400;
}

.hp-team .ry-content .each-person img {
    max-width: 250px;
    margin: 0 auto;
}

/* End - HP Team Style */

/* Start - HP Brands */

.hp-designer-eyewear {
    padding: 160px 0;
}

.hp-designer-eyewear .brand-gallery {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 30px;
    padding: 80px 0;
	height: 845px;
}

.hp-designer-eyewear .brand-card {
  will-change: transform, opacity;
  transform-origin: center center;
}

.hp-designer-eyewear .brand-gallery .brand-flex {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.hp-team .btn-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
}

.hp-designer-eyewear .btn-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    padding-bottom: 80px;
    margin-top: -10rem;
}

.hp-brands-animation .brand-glassses-img {
    z-index: 9;
}

.hp-brands-animation {
	display: block;
	position: relative;
	margin-top: -7rem;
	height: 660px;
}

.hp-brands-animation .curve-wrapper text {
    font-size: 60px;
    letter-spacing: 5px;
    fill: #8d8e8b;
    font-weight: 700;
    text-transform: uppercase;
}

.hp-brands-animation .brand-glassses-img img {
    max-width: max-content;
    margin: 0 auto;
}

.hp-brands-animation .curve-wrapper {
    position: absolute;
    top: -7%;
    left: 50%;
    width: 100%;
    height: 100%;
    transform: translate(-50%, -50%);
}

/* End - HP Brands */

/* Start - HP In-House Style */

.hp-in-house {
    position: relative;
}

.hp-in-house h2 {
    color: #fff !important;
}


.hp-in-house .section-bg img {
    min-height: 457px;
}

.hp-in-house .ry-container {
    display: flex;
    align-items: center;
    justify-content: center;
}

.hp-in-house .ry-content {
	position: absolute;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
}

.hp-in-house .section-text p:first-child {
    opacity: 0.502;
    font-size: 24px;
    letter-spacing: 1px;
    line-height: 28px;
    text-transform: uppercase;
    color: #ffffff;
    padding: 15px 0 0;
}

.hp-in-house .section-text p {
    font-size: 23px;
    line-height: 31px;
    color: #ffffff;
    font-weight: 400;
    text-align: center;
    padding: 15px 0 35px;
}

.hp-in-house .btn-wrapper a.ry-btn.ry-btn-transparent {
    border: 1px solid #fff;
    background: transparent !important;
}

.hp-in-house .btn-wrapper a.ry-btn.ry-btn-transparent:hover {
    background: #778971 !important;
    border: unset !important;
}

.hp-in-house .btn-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
}

/* End - HP In-House Style */


/* Start - HP Testimonials Style */

.hp-testimonials {
    padding: 180px 0;
}

.hp-testimonials .section-title h2 {
    padding: 30px 0;
}

.hp-testimonials .star-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 60px 0 30px;
}

.hp-testimonials .star-wrapper svg {
    fill: #e5b353;
    height: 1.5em;
}

.hp-testimonials .testi-quote span {
    color: #fff;
    font-size: 9rem;
    font-family: 'Satoshi';
    width: 77px;
    height: 77px;
    text-align: center;
    border-radius: 50%;
    background: #778971;
}

.hp-testimonials .testi-quote {
    position: relative;
    display: grid;
    grid-template-columns: 1fr;
    place-items: center;
    place-content: center;
    width: 100%;
}

.hp-in-house .ry-container {
    max-width: min(90%, 1280px);
}

.hp-testimonials .ry-container .ry-content {
    max-width: min(100%, 950px);
    margin: 0 auto;
    float: unset;
}

.hp-testimonials .ry-container .ry-container {
    max-width: max-w;
}

.hp-testimonials-slick ul.slick-dots {
    display: flex !important;
    list-style: none;
    padding: 0;
    align-items: center;
    justify-content: center;
    gap: 5px;
	padding: 30px 0;
}

.hp-testimonials-slick ul li {
    display: flex;
}

.hp-testimonials-slick ul.slick-dots li button {
    border: 0;
    outline: 0;
    font-size: 0;
    height: 10px;
    width: 150px;
    width: 64px;
    height: 6px;
    background-color: rgb(119 137 113 / 30%);
    border: 0px solid #020202;
}

.hp-testimonials-slick ul.slick-dots li.slick-active button {
    background: #778971;
}

.hp-testimonials-slick .description h5 {
    font-size: 19px;
    letter-spacing: 1px;
    line-height: 23px;
    text-transform: uppercase;
    color: #41443d;
    font-weight: 700;
    text-align: center;
}

.hp-testimonials-slick .description .ry-text p {
    width: min(100%, 762px);
    float: unset;
    margin: 0 auto;
    font-size: 21px;
    line-height: 30px;
    color: #41443d;
    text-align: center;
}

/* End - HP Testimonials Style */

/*Start - HP Global Fixed CTA */

.global-fixed-cta {
    position: fixed;
    bottom: 0;
    z-index: 999;
    width: 100%;
	display: none;
}

.global-fixed-cta .cta-wrap {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    background: #778971;
    place-content: center;
    place-items: center;
    padding: 20px 0;
}

.global-fixed-cta .cta-wrap .cta-item {
    display: flex;
    align-items: center;
    justify-content: center;
}

.global-fixed-cta .cta-wrap .cta-item svg {
    width: 1.5rem;
    height: 1.5rem;
}

.global-fixed-cta .ry-container {
    max-width: 100%;
    background: #778971;
}

.global-fixed-cta .cta-wrap .icon svg {
    fill: #f4f1ea;
}

/*End - HP Global Fixed CTA */


@media (max-width: 1680px) {
	#ry-section-header .ry-container {
		max-width: 98%;
	}
	
	div.module-43 .grid-container {
		grid-template-columns: 1fr 800px 1fr;
		gap: 30px;
	}
	
	div.hp-team .ry-content {
		/* padding: 5rem 0 7.8rem; */
	}

	div.hp-brands-animation .curve-wrapper {
		top: 5%;
	}

	div.footer.style-3 .footer-top {
		background-position: 30%;
	}
}

@media (max-width: 1536px) {
	div.hp-welcome .ry-content {
		padding: 12rem 0;
	}

	div.hp-team .ry-content {
		/* padding: 2rem 0  0; */
	}
	
	div.hp-brands-animation .curve-wrapper {
		top: 13%;
	}
	
	div.hp-designer-eyewear .btn-wrapper {
		margin-top: -12rem;
	}
}

@media (max-width: 1440px) {
	
	div.hp-designer-eyewear .btn-wrapper {
		margin-top: -10.5rem;
	}
	
	div.hp-designer-eyewear .brand-gallery {
		height: auto;
	}
	
	div.hp-welcome .ry-content {
		padding: 8rem 0;
	}
	
	
	div.hp-cta .card-content {
		height: 350px;
		padding-bottom: 0;
		padding-left: 50px;
		bottom: -2rem;
	}

	div.hp-brands-animation .curve-wrapper {
		top: 20%;
	}
	
	div.module-43 {
		padding: 29px 0;
	}
	
	div.module-43 .ry-right.ry-cta .wrapper .cta-text {
		font-size: 16px !important;
	}
	
	div.module-43 .ry-right.ry-cta .wrapper .cta-btn:last-child {
		width: 180px;
		height: 50px;
	}
	
	div.module-43 .ry-right.ry-cta .wrapper .cta-btn {
		width: 180px;
		height: 50px;
	}

	div.hp-cta {
		margin-top: -17rem;
	}
	
	div.hp-cta .grid-container {
		padding-bottom: 120px;
	}

	idv.hp-cta .card:nth-child(3) .card-content p {
		text-wrap: balance;
	}
	
	div.hp-cta .card:nth-child(3) .card-content p br {
		display: none;
	}

	div.footer.style-3 .footer-top {
		background-position: 0;
	}

	div.hp-cta .card:nth-child(3) .card-content p {
		text-wrap: balance;
	}
	
	div.hp-cta .card:nth-child(3) .card-content p br {
		display: none;
	}
	
	div.hp-testimonials {
		padding: 120px 0;
	}
}

@media (max-width: 1366px) {
	body.home .hp-welcome h2 span {
		padding-left: unset;
		margin-top: unset;
	}

	div.hp-designer-eyewear .btn-wrapper {
		margin-top: -10.5rem;
	}
	
	div.module-43 .grid-container {
		grid-template-columns: 1fr 700px 1fr;
	}
	
	div.hp-team .ry-content {
		/* padding: 2rem 0 0; */
	}

	div.hp-designer-eyewear {
		padding: 120px 0;
	}

	div.hp-brands-animation .curve-wrapper {
		top: 25%;
	}

	div.hp-cta .card:nth-child(2) .card-content p {
		text-wrap: balance;
	}
	
	div.hp-cta .card:nth-child(2) .card-content p br {
		display: none;
	}

	div.footer.style-3 .footer-top {background-position: 30%;}

	div.footer.style-3 .footer-top:before {
		content: "";
		position: absolute;
		width: 100%;
		height: 100%;
		background: rgb(65 68 61 / 80%);
		inset: 0;
	}

	div.footer.style-3 .footer-top .ry-each .details .text .span-1 {opacity: 1;color: #fff;}

	div.footer.style-3 .footer-top .hour-list ul li .span-1 {
		opacity: 1;
		color: #fff;
	}
}


@media (max-width: 1280px) {
	
	div.module-43 .grid-container {
		grid-template-columns: 1fr 669px 1fr;
		gap: 15px;
	}

	div.module-43 .ry-menu .nav-menu li a {
		font-size: 18px;
	}

	div.hp-welcome .ry-content {
		padding: 5rem 0;
	}
	
	div.hp-welcome .section-text strong {
		padding: 60px 0 35px;
	}
	
	div.hp-team .ry-content .person-name {
		padding-top: 20px;
	}
	
	div.hp-designer-eyewear .btn-wrapper {
		margin-top: -9.5rem;
	}
	
	div.hp-brands-animation .curve-wrapper {
		top: 30%;
	}
	
	div.hp-cta .card img {
		height: 35rem;
		object-fit: cover;
		object-position: 50%;
	}
	
	div.hp-cta .card {
		height: auto;
	}


}

@media (max-width: 1200px) {
	
	#ry-pg-banner .ry-bnr-wrp {
		margin-top: 72px;
	}


	.module-66 {
		margin-top: 4.5rem;
	}
	
	div.hp-brands-animation .curve-wrapper text {
		font-size: 75px;
		letter-spacing: 3px;
	}
}

@media (max-width: 1080px) {
	body .uwy.userway_p5 .userway_buttons_wrapper {
		bottom: 85px !important;
	}

	div.global-fixed-cta {
		display: block;
	}

	div.footer.style-3 .footer-bottom {
		padding: 30px 0 95px;
	}
	
	
	div.module-66 .bnr-textbox {
		position: relative !important;
		margin: 0;
		text-align: center;
		padding: 30px 0;
		background: rgba(255, 255, 255, 0.98) !important;
		margin-top: 4rem !important;
	}

	div.module-66 .banner-heading .third.sentence a.ry-btn.ry-btn-primary {
		margin: 0 !important;
	}

	div.module-66 .banner-heading h1 .sentence {
		justify-content: center;
		align-items: center;
	}

	div.module-66 .banner-heading .third.sentence {
		align-items: center;
		justify-content: center;
	}
	
	div.hp-welcome {
		margin-top: -5rem;
	}
	
	div.hp-welcome .ry-content {
		padding: 0;
	}
	
	div.hp-designer-eyewear .btn-wrapper {
		margin-top: -8.5rem;
	}
	
	div.hp-brands-animation {
		height: auto;
	}
	
	div.hp-brands-animation .curve-wrapper {
		top: 13%;
	}
	
	div.hp-brands-animation .brand-glassses-img img {
		max-width: 50rem;
	}

	div.hp-brands-animation {
		margin-top: -3rem;
	}
	
	div.footer-top-plant {
		top: 89%;
	}

	div.footer.style-3 .footer-top {
		background-position: 100%;
		padding: 5rem 0;
	}

	div.footer.style-3 .footer-top .ry-each:not(:last-child) {
		margin-bottom: 0;
	}

	div.footer.style-3 .footer-top .ry-content .ry-flex {
		gap: 25px;
	}

	
}
@media (max-width: 991px) {
	div.hp-designer-eyewear .brand-gallery {
		display: grid;
		grid-template-columns: 1fr 1fr;
		place-content: center;
		place-items: center;
	}

	div.hp-designer-eyewear .brand-card {
		display: flex;
		align-items: center;
		justify-content: center;
	}

	div.hp-designer-eyewear .brand-card img {
		max-width: max-content;
	}

	div.hp-designer-eyewear .brand-card:last-child {
		grid-column: span 2;
	}

	div.hp-designer-eyewear .btn-wrapper {
		margin-top: unset;
		padding: 0;
	}
	
	div.hp-brands-animation .curve-wrapper {
		top: 21%;
	}
	
	div.module-66 .bnr-textbox {
        margin: 0;
        padding: 30px 0;
        margin-top: 7rem !important;
    }
}

@media (max-width: 768px) {
    div.module-66 .bnr-textbox {
        margin-top: 10rem !important;
    }
	
	div.hp-welcome .section-bg img {
		min-height: 70rem;
		object-fit: cover;
	}
	
	
	div.hp-team .ry-content .grid-container {
		grid-template-columns: 1fr;
		gap: 60px;
		padding: 60px 0;
	}

	div.hp-team .section-bg img {
		min-height: 95rem;
		object-fit: cover;
	}

	div.hp-team .ry-content {
		padding: 60px 0;
	}
	
	div.hp-brands-animation .curve-wrapper {
		top: 37%;
	}
	
	div.hp-brands-animation .curve-wrapper text {
		font-size: 100px;
		letter-spacing: normal;
	}
	
	div.hp-in-house .section-bg img {
		object-fit: cover;
	}
	
	div.hp-in-house .ry-content {
		padding: 5%;
	}
	
	div.hp-cta .card .card-content {
		padding: 0 5%;
		height: auto;
		bottom: 10%;
	}

	div.hp-cta .card.large .card-content {
		top: unset;
		transform: unset;
		bottom: 10%;
	}
	
	body.home .hp-cta h2, body.home .hp-cta * {
		text-align: center !important;
	}
	
	div.hp-cta .card-content p br {
		display: none;
	}

	div.hp-cta .btn-wrapper {
		display: flex;
		align-items: center;
		justify-content: center;
	}

	div.hp-cta .card.large img {
		object-position: 70%;
	}

	div.hp-cta .card:before {
		position: absolute;
		content: "";
		height: 100%;
		width: 100%;
		background: rgb(0 0 0 / 60%);
		inset: 0;
		z-index: 1;
	}


}

@media (max-width: 500px) {
	div.module-66 .bnr-textbox {
		margin-top: 9rem !important;
	}
	
	div.module-66 .banner-heading h1 span {
		line-height: normal;
	}
	
	div.module-66 .banner-heading .third.sentence {
		padding: 15px 0 0;
	}
	
	div.hp-designer-eyewear .brand-card:last-child {
		grid-column: span 1;
	}
	
	div.hp-brands-animation {
		margin-top: 0;
	}
	
	div.hp-brands-animation .curve-wrapper text {
		font-size: 120px;
	}

	div.hp-welcome .section-text strong {
		padding: 30px 0;
		text-wrap: balance;
	}
}

@media (max-width: 480px) {
	div.footer-top-plant {
		top: 92%;
	}
}

.contact-template.style-2 .ry-flex .contact-details .inner-flex .ry-each.phone .ry-text .span-2 {
    font-size: 23px;
    font-weight: bold;
    color: #373737;
    line-height: normal;
}