/*
Theme Name: Sunny Pointe Child
Author: 
Description: Your description goes here
Version: 1.0
Template: hello-elementor

This is the child theme for Hello Elementor theme, generated with Generate Child Theme plugin by catchthemes.

(optional values you can add: Theme URI, Author URI, License, License URI, Tags, Text Domain)
*/


/*-------------------------------------------------------------- 
# Root css 
--------------------------------------------------------------*/
 :root{
     --orange: #FA921C;
     --darkorange: #F36C22;
     --black: #21201F;
     --light: #FCF3EC;
     --white: #FFFFFF;
      --border:#21201F26;
    --brown:#703B1F;
     --text: #595857;
}
 body::-webkit-scrollbar {
     width: 6px;
}
 body::-webkit-scrollbar-track {
     background:var(--light);
     border-radius: 8px;
}
 body::-webkit-scrollbar-thumb {
     background:var(--orange);
     border-radius: 8px;
}
 a{
     transition: all 0.5s;
}
::selection{
     background-color:var(--light);
     color: var(--orange);
}
/*-------------------------------------------------------------- 
# Header css 
--------------------------------------------------------------*/
div[data-elementor-type="header"]{
    position: sticky !important;
    top: 0px !important;
    left: 0px;
    width: 100%;
    z-index: 99 !important;
}
#wpadminbar ~ div[data-elementor-type="header"].sticky{
    top: 30px !important;
}
div[data-elementor-type="header"].sticky {
    box-shadow: 0 2px 12px rgba(33, 32, 31, 0.08);
    transition: box-shadow 0.3s ease;
}
/*-------------------------------------------------------------- 
# Home css 
--------------------------------------------------------------*/
.hero_sec .item{
    min-height: calc(100vh - 85px) !important;
}
div#wpadminbar ~ div .hero_sec .item{
    min-height: calc(100vh - 85px - 32px) !important;
}
.orange_btn span.elementor-button-icon svg {
    width: 14px !important;
    position: relative;
    top: 2px;
    transition: all 0.4s;
    transform: rotate(0deg);
    height: 14px !important;
}
.orange_btn:hover span.elementor-button-icon svg {
    transform: rotate(45deg);
}
.program_grid {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    grid-gap: 20px;
}
.home_program .programs_box:nth-child(6) ~ a{
    display: none  !important;
}
.programs_box {
    display: block;
    border-radius: 12px;
    padding: 16px;
}
.programs_box .program_img{
    height: 240px;
    border-radius: 12px;
    overflow: hidden;
}
.programs_box .program_img img {
    width: 100%;
    display: block;
    object-fit: cover;
    border-radius: 12px;
    height: 100%;
    transform: scale(1);
    transition: all 0.4s;
}
.programs_box:hover .program_img img {
    transform: scale(1.075);
}
.programs_box .product_details {
    padding: 16px 0px;
}
.programs_box h3 {
    font-size: 24px;
    line-height: 32px;
    color: var(--black);
    margin: 0px;
    font-weight: 600;
}
.programs_box p {
    font-size: 18px;
    color: var(--text) !important;
    margin: 8px 0px 0px 0px;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.programs_box span.product_btn {
    margin-top: 24px !important;
    display: flex;
    padding: 10px 24px;
    background-color: var(--white);
    border-radius: 30px;
    color: var(--black);
    font-size: 18px;
    line-height: 24px;
    font-weight: 500;
    grid-gap: 10px;
    align-items: center;
    justify-content: space-between;
}
.programs_box span.product_btn > span{
    display:flex;
    grid-gap:10px;
    align-content:center;
}
.programs_box span.product_btn svg {
    transform: rotate(0deg);
    transition: all 0.4s;
}
.programs_box:hover span.product_btn > svg {
    transform: rotate(45deg);
}
.programs_box:hover span.product_btn {
    background-image: linear-gradient(45deg, var(--orange), var(--darkorange));
    color: var(--white) !important;
    transform: all 0.4s;
}
.programs_box:hover span.product_btn svg{
    filter: brightness(0) invert(1);
}
.testimonial_box {
    padding: 24px;
    background-color: var(--white);
    border-radius: 12px;
}
.testimonial_box svg {
    width: 42px;
}
.testimonial_head p {
    font-size: 18px;
    line-height: 24px;
    color: var(--black);
    margin: 20px 0px;
    display: -webkit-box;
    -webkit-line-clamp: 7;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: break-word;
    min-height: 168px;
}
.testimonial_bottom {
    border-top: 1px solid #21201F26;
}
.testimonial_bottom h3 {
    margin: 20px 0px 0px 0px;
    font-size: 20px;
    line-height: 28px;
    color: var(--black);
    font-weight: 600;
}
.testimonial_bottom p {
    margin: 4px 0px 0px 0px;
    font-size: 16px;
    font-weight: 500;
    color: var(--text);
}
.hero_slider.owl-carousel .animated {
    animation-duration: 1s;
    animation-fill-mode: both;
}
.hero_slider.owl-carousel .fadeOut {
    animation-name: fadeOut;
}
.hero_slider.owl-carousel .fadeIn {
    animation-name: fadeIn;
}
@keyframes fadeOut {
    from { opacity: 1; }
    to { opacity: 0; }
}
@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}
.owl-nav{
    position: absolute;
    top: 50% !important;
    left: 50% !important;
    width: 100% !important;
    display: flex !important;
    justify-content: space-between;
    z-index: 2 !important;
    max-width:100%;
    min-width: calc(110%) !important;
    transform: translate(-50%,-50%);
}
.hero_slider  .owl-nav{
    max-width: calc(100% - 94px);
    min-width: unset !important;
}
.owl-nav button {
    width: 40px;
    height: 40px;
    background-color: var(--white) !important;
    border-radius: 50% !important;
    border: unset !important;
    outline: unset !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    margin: 0px !important;
}
.owl-nav button svg{
    width: 20px;
    height: 20px;
}
.owl-dots {
    margin: 24px 0px 0px 0px !important;
    display: flex;
    grid-gap: 10px;
    justify-content: center;
}
.owl-dots button {
    margin: 0px !important;
    outline: unset !important;
    border: unset !important;
    width: 6px;
    height: 6px;
}
.owl-dots span {
     width: 6px;
    height: 6px;
}
.owl-dots .owl-dot span {
    margin: 0px !important;
    background-color: var(--black) !important;
    opacity: 0.5;
    transition: all 0.3s;
    width: 8px !important;
    height: 8px !important;
}
.hero_slider .owl-dots {
    position: absolute !important;
    bottom: 40px !important;
    justify-content: center;
    left: 0px;
    width: 100%;
}
.hero_slider .owl-dots .owl-dot span {
     background-color: var(--white) !important;
}
button.owl-dot.active span {
    opacity: 1;
}
.owl-nav button:hover{
    background-color: var(--orange) !important;
}
.owl-nav button svg path{
    transition: all 0.3s;
}
.owl-nav button:hover svg path{
    fill: var(--white) !important;
}
a.post_box {
    display: block;
    background-color: #FCF3EC;
    border-radius: 12px;
    overflow: hidden;
}
a.post_box .post_img {
    display: block;
    width: 100%;
    height: 250px;
}
a.post_box .post_img img {
    width: 100%;
    object-fit: cover;
    height: 100%;
}
.post_bottom {
    padding: 16px;
    min-height: 204px;
}
.post_bottom .post_date {
    display: flex;
    align-items: center;
    grid-gap: 10px;
    font-size: 16px;
    color: var(--darkorange);
    font-weight: 500;
}
.post_bottom h3 {
    margin: 12px 0px 8px 0px;
    color: var(--black);
    font-size: 22px;
    line-height: 28px;
    font-weight: 600;
}
.post_bottom p {
    margin: 0px;
    color: var(--text);
    font-size: 18px;
    font-weight: 500;
}
.post_slider .owl-nav button,.philosophy_slider .owl-nav button {
    border:1px solid #21201F26 !important;
}
.ovaly_line{
    opacity: 0.2 !important;
}
.schedule_btn a:hover svg{
    filter: brightness(0) invert(1);
}
.blog_posts_grid {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    grid-gap: 20px;
}
.blog_pagination{
    display: flex;
    align-items: center;
    justify-content: center;
    grid-gap: 8px;
    margin-top: 40px;
    flex-wrap: wrap;
}
.blog_pagination .page-numbers{
    min-width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    font-family: "Fredoka", sans-serif;
    font-size: 16px;
    color: var(--black);
    background: var(--white);
    border: 1px solid #21201F26;
    border-radius: 12px;
    transition: all .3s ease;
    line-height: 22px;
    grid-gap: 10px;
}
.blog_pagination .page-numbers:hover{
    background: var(--orange);
    border-color: var(--orange);
    color: var(--white);
}
.blog_pagination .page-numbers.current{
    background-image: linear-gradient(45deg, var(--orange), var(--darkorange));
    border-color: var(
    --orange);
    color: var(
    --white);
}
.blog_pagination .prev,
.blog_pagination .next{
    padding: 0 6px;
    font-weight: 500;
    max-width: 106px !important;
    width: 100%;
}
.blog_pagination .dots{
    border: none;
    background: transparent;
    min-width: auto;
}
.blog_pagination .next {
    margin-left: 12px;
}
.blog_pagination .prev {
    margin-right: 12px;
}
.blog_pagination .next:hover svg,.blog_pagination .prev:hover svg{
    filter: brightness(0) invert(1);
}
nav.breadcrumbs {
    display: flex;
    align-items: center;
    grid-gap: 6px;
    justify-content: center;
}
nav.breadcrumbs span.sep {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    top: 2px;
}
nav.breadcrumbs * {
    color: var(--white);
    font-size:16px;
    font-family: 'Fredoka';
    font-weight: 500;
}
.philosophy_slider .programs_box.item {
    min-height: 440px;
}
.related_posts {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    grid-gap: 20px;
}
.related_posts a.post_box {
    background-color: var(--white);
}
.latest_news_page::after {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    bottom: -185px;
    left: 0px;
    position: absolute;
    background-color: var(--light);
    z-index: 2;
}
.single_blog_box  ul {
    margin: 0px !important;
    padding: 0px;
    display: grid;
    grid-gap: 8px;
    list-style: none;
}
.single_blog_box ul li {
    position: relative;
    padding-left: 26px;
}
.single_blog_box ul li::before {
    content: "";
    width: 16px;
    height: 16px;
    display: block;
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    position:absolute;
    background-image: url(images/list_icon.svg);
    left: 0px;
    top: 6px;
}
.social_icon .elementor-grid-item i {
    font-size: 18px !important;
    display: block !important;
    color: var(--black) !important;
}
.social_icon div {
    height: unset !important;
    min-width: 18px !important;
    min-height: 18px !important;
    margin: 0px !important;
}
.social_icon .elementor-share-btn:hover i{
    color: var(--darkorange) !important;
}
.post_info .elementor-post-info {
    display: flex;
    justify-content: center;
    list-style: none;
    padding: 0px;
}
.year_list li.elementor-icon-list-item {
    padding-bottom: 12px !important;
}
.child_box{
    position: relative !important;
}
.child_box::before,.child_box::after{
    content: "" !important;
    position: absolute !important;
    left:50% !important;
    top:50% !important;
    transform:translate(-50%,-50%) !important;
    width: 100% !important;
    height: 100% !important;
    display:block !important;
    border-radius:12px;
}
.child_box::before{
    background: var(--white);
    z-index: 1;

}
.child_box::after{
    width: calc(100% + 3px) !important;
    height: calc(100% + 3px) !important;
    background: linear-gradient(
        to bottom,
        var(--orange),
        var(--darkorange)
    );
    z-index: 0;
}
.child_box  * {
    z-index: 1;
}
.program_imgbox img {
    width: 100% !important;
}
.program_imgbox .elementor-image-box-content {
    padding: 16px 16px 16px 16px !important;
    margin-top: -6px;
}
.program_imgbox .elementor-image-box-content h3 {
    margin: 0px !important;
}
.routine_list{
    display:inline-flex;
    align-items:center;
    padding:4px;
    margin:0;
    list-style:none;
    background:linear-gradient(180deg,var(--orange),var(--darkorange));
    border-radius:8px;
    gap:4px;
}
.routine_list li{
    min-width:120px;
    padding:14px 24px;
    text-align:center;
    color:var(--white);
    font-size:18px;
    font-weight: 500;
    line-height:1;
    cursor:pointer;
    border-radius:6px;
    transition:.3s ease;
}
.routine_list li.active{
    background:var(--white);
    color:#333;
    box-shadow:0 1px 3px rgba(0,0,0,.08);
}
.routine_list li:not(.active):hover{
    background:rgba(255,255,255,.12);
}
.list_routine {
    display: contents;
}
.schedule-table table{
    width:100%;
    border-collapse: collapse !important;
    border-spacing:0;
    background:var(--white);
    border: 1px solid #21201F26;
    border-radius: 12px;
}
.schedule-table td{
    padding:18px 16px;
    color:var(--text);
    font-size: 14px;
    font-weight:500;
    line-height:1.4;
    border: 1px solid var(--border) !important;
    background-color: unset !important;
    padding: 12px;
}
.schedule-table td:first-child{
    width:180px;
    white-space:nowrap;
    background: var(--light) !important;
    color:var(--brown);
    font-size: 14px;
    border: 1px solid var(--border) !important;
    padding: 12px;
}
.routinedetails{
    display:none !important;
}
.routinedetails.active{
    display:flex !important;
}
/*-------------------------------------------------------------- 
# Contact css 
--------------------------------------------------------------*/
.form_group{
    display:flex;
    flex-wrap:wrap;
    gap:20px;
}

.form_box{
    width:100%;
}

.form_box.half{
    width:calc(50% - 10px);
}

.form_box label{
    display:block;
    font-size:18px;
    font-weight: 500;
    color:var(--black);
    margin-bottom:10px;
}

.form_box input,
.form_box select,
.form_box textarea{
    width:100%;
    height: 44px;
    border: 1px solid #21201F26 !important;
    border-radius: 6px !important;
    padding: 8px 10px !important;
    font-size:16px;
    color:var(--black);
    background:var(--white);
    outline:none;
    box-sizing:border-box;
}

.form_box select{
    appearance:none;
    -webkit-appearance:none;
    cursor:pointer;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2321201F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right 20px center;
    padding-right:50px;
}

.form_box input::placeholder,
.form_box textarea::placeholder{
    color:#8b8b8b;
}

.checkbox_wrap{
    width:100%;
    margin-top:5px;
}

.checkbox_wrap .wpcf7-list-item{
    margin:0;
}

.checkbox_wrap label{
    display:flex;
    align-items:center;
    gap:12px;
    font-size:16px;
    font-weight:600;
    color:var(--black);
    cursor:pointer;
}

.checkbox_wrap input[type="checkbox"]{
    width: 20px;
    height: 20px;
    accent-color:var(--orange);
}

.submit_btn{
    width:100%;
    margin-top: 0px;
}

.submit_btn .wpcf7-submit{
    width:100%;
    height: 44px;
    border:none;
    border-radius:12px;
    background:linear-gradient(
        180deg,
        var(--orange) 0%,
        var(--darkorange) 100%
    );
    color:var(--white);
    font-size:18px;
    font-weight:600;
    cursor:pointer;
    transition:.3s;
    font-weight: 500;
}

.submit_btn .wpcf7-submit:hover{
    transform:translateY(-2px);
}
.form_group .form_box br {
    display: none;
}
.form_group .form_box p {
    margin: 0px;
}
.submit_btn span.wpcf7-spinner {
    position: absolute;
    right: 0px;
    top: 10px;
}
.submit_btn p {
    position: relative;
    margin: 0px !important;
}
.checkbox_wrap p {
    margin: 0px;
    font-weight: 500;
}
.checkbox_wrap * {
    font-weight: 500;
}
.checkbox_wrap .wpcf7-list-item{
    margin:0;
}
.checkbox_wrap label{
    display:flex;
    align-items:center;
    gap: 8px;
    cursor:pointer;
    font-size:16px;
    font-weight:600;
    color:var(--black);
}
.checkbox_wrap input[type="checkbox"]{
    appearance:none;
    -webkit-appearance:none;
    width: 18px;
    height: 18px;
    border-radius:4px;
    border:1px solid rgba(0,0,0,.1);
    background:#fff;
    position:relative;
    cursor:pointer;
    margin:0;
    flex-shrink:0;
}
.checkbox_wrap input[type="checkbox"]:checked{
    border:none;
    background:linear-gradient(
        180deg,
        var(--orange) 0%,
        var(--darkorange) 100%
    );
}
.checkbox_wrap input[type="checkbox"]:checked::after{
    content:"";
    position:absolute;
    left:50%;
    top:50%;
    transform:translate(-50%,-55%);
    display:block;
    width: 11px;
    height: 8px;
    background-image:url(images/checkbox.svg);
    background-repeat:no-repeat;
    background-position:center;
    background-size:contain;
}
.take_box p a {
    color: var(--orange);
}
.take_box p strong {
    font-weight:600;
}
/*-------------------------------------------------------------- 
# Resposnive css 
--------------------------------------------------------------*/
@media(max-width: 1500px){
    .hero_slider .owl-nav,.owl-nav{
        max-width: calc(100% - 30px);
        margin: 0px !important;
    }
    .owl-nav{
        min-width: calc(100% + 90px) !important;
    }
    .owl-nav button {
        width: 32px;
        height: 32px;
    }
    .owl-nav button svg{
        width: 18px;
        height: 18px;
    }
}
@media(max-width: 1400px){
     .hero_slider .owl-nav{
        max-width: calc(100% - 5px);
    }
    .testimonial_slider {
        padding: 0px 15px;
    }
    .owl-nav{
        min-width: calc(100% + 50px) !important;
    }
    .hero_slider .item .e-con-inner{
        padding: 0px 40px;
    }
}
@media(max-width: 1280px){
     .hero_slider .owl-nav,.owl-nav{
        max-width: calc(100% - 30px);
    }
    .owl-nav{
        min-width: 100% !important;
    }
}
@media(max-width: 991px){
    .program_grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .programs_box h3 {
        font-size: 20px;
        line-height: 30px;
    }
    div[data-elementor-type="header"] nav {
         position: fixed;
         width: 100%;
         top: 78px;
         left: 0px;
         margin: 0px !important;
         padding: 10px 0px 10px;
         z-index: 99;
         background-color: var(--white) !important;
    }
     div[data-elementor-type="header"] nav ul li a {
         border-bottom: 1px solid rgba(0,0,0,0.2);
         color: var(--black) !important;
         background-color: var(--white) !important;
         justify-content: space-between;
    }
     div[data-elementor-type="header"] nav ul li.current-menu-item a {
         color: var(--orange) !important;
    }
     div[data-elementor-type="header"] nav ul li:last-child a{
        border: unset;
     }
     .hero_item {
        background-position: calc(100% - 20%) !important;
    }
    .hero_item::after{
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(
            to left,
            rgba(54,25,8,0) 0%,
            rgba(54,25,8,0.4) 40%,
            rgba(54,25,8,0.7) 70%
        );
        z-index: 1;
    }
    .hero_item *{
        z-index: 2 !important;
    }
    .hero_slider .owl-dots {
        bottom: 20px !important;
    }
    .related_posts,.blog_posts_grid {
        grid-template-columns: repeat(2,1fr);
    }
}
@media(max-width: 767px){
    .program_grid,.blog_posts_grid {
        grid-template-columns: repeat(1, 1fr);
    }
     .hero_slider .item .e-con-inner{
        padding: 0px 0px;
    }
    .hero_slider .owl-nav{
        display: none !important;
    }
    div#wpadminbar ~ div .hero_sec .item,.hero_sec .item {
       min-height:600px !important;
    }
    .related_posts {
        grid-template-columns: repeat(1,1fr);
    }
    .contact_icon .elementor-image-box-wrapper {
        display: grid;
        grid-gap: 12px;
        grid-template-columns: 44px auto;
    }
    .contact_icon .elementor-image-box-wrapper h3{
        margin:.0px !important;
    }
    .post_bottom h3 {
        font-size: 20px;
        line-height: 26px;
    }
	.programs_box p ,.programs_box span.product_btn ,.post_bottom p ,.testimonial_head p,.form_box label{
		font-size: 16px;
	}
	.testimonial_bottom p {
		font-size: 15px;
	}
}
