@charset "UTF-8";

/* `@keyframes slideImg` / `@keyframes slideRev` removed — the fwnSlider is now
   driven by Splide (see fw_content_half.js + section-fw_content_half.php). */

.half-content {
    position: relative;
    overflow: visible;
    display: flex;
    padding: 100px 0 0;
    align-items: stretch;
    width: 100%;
    float: left;
    clear: both;
    margin: 0;
}

.half-content .btn.btn-orange {
    margin: 56px 0;
}

.half-content .btn.btn-orange:hover {
    background-color: var( --primary-hover );
    color: var( --white );
}

.half-content .btn-secondary {
    margin: 56px 0;
}

#news2 .btn.btn-orange,
#news3 .btn.btn-orange {
    color: var( --black );
    margin: 56px 0;
}

#news2 .btn.btn-orange:hover,
#news3 .btn.btn-orange:hover{
    color: var( --white );
    outline-color: var( --black );
}

.half-content.reverse,
.half-content.reverse .container {
    flex-direction: row-reverse;
}

.half-content .container {
    display: flex;
    align-items: stretch;
}

#news4.half-content {
    padding: clamp( 60px, 6.250vw, 120px ) 0;
}

#news4.half-content .nTxtLt > div {
    margin-left: 25%;
    width: 50%;
   align-content: center;
}

#news1.half-content {
    background-color: var( --white );
    background-image: linear-gradient( to top right, var( --tan ) 0%, rgba( 230, 227, 221, 0 ) 100% );
    background-repeat: no-repeat;
    background-position: bottom left;
    background-size: min( 85.417vw, 1640px ) clamp( 460px, 45.833vw, 880px );
    padding: clamp( 100px, 7.292vw, 140px ) 0;
    overflow: visible;
    margin-bottom: 0;
    z-index: 0;
}

/* News 1 (A Glamorous Smile) — copy left + video right; tall image, bottom-left play button, grey accent rule */
#news1 .video.nImgRt {
    height: clamp( 460px, 45.833vw, 880px );
}

#news1 .cVidWrap {
    height: clamp( 460px, 45.833vw, 880px );
    width: 100%;
    box-shadow: 0 50px 60px rgba( 0, 0, 0, 0.05 ), 0 30px 40px rgba( 0, 0, 0, 0.10 );
}

#news1 a.popVid img {
    height: 100%;
    width: 100%;
    object-fit: cover;
    object-position: center;
    filter: none;
}

/* Play button — white box + gold triangle, bottom-left; expands right on hover to reveal "Play Video".
   Base a.popVid::after (style.css) supplies content \f04b + FA font + 80x80 + flex-centering; only deltas here. */
#news1 a.popVid::after {
    left: 0;
    top: auto;
    bottom: 0;
    transform: none;
    padding-left: 8px;
    font-size: 26px;
    letter-spacing: normal;
    background-color: var( --white );
    color: var( --primary-color );
    z-index: 999;
}

#news1 a.popVid:hover::after {
    background-color: var( --white );
}

#news1 a.popVid::before {
    content: 'Play Video';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 80px;
    height: 80px;
    padding-left: 92px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    white-space: nowrap;
    overflow: hidden;
    background-color: var( --white );
    color: var( --black );
    font-family: var( --body-font );
    font-weight: var( --btn-font-weight );
    font-size: 16px;
    letter-spacing: var( --btn-letter-spc );
    text-transform: uppercase;
    z-index: 998;
    transition: width .3s ease;
}

#news1 a.popVid:hover::before {
    width: 300px;
}

#news1 .text.nTxtLt {
    position: relative;
}

/* Heading = Lust Text Light per mockup (⚠️ needs weight 300 added to the Adobe kit — kit currently ships only 400).
   Constant 24px heading->body gap (matches the mockup flex gap on desktop AND mobile; not the clamped default). */
#news1 .text.nTxtLt h2 {
    font-weight: 300;
    margin-bottom: 24px;
}

#news1 .text.nTxtLt > div {
    width: 65.6%;
    margin-left: 16.6%;
}

#news1 .text.nTxtLt::before {
    content: '';
    position: absolute;
    left: 6.4%;
    top: 0;
    width: 4px;
    height: clamp( 400px, 38.542vw, 740px );
    background-color: var( --grey );
}

#news2.half-content,
#news3.half-content {
    position: relative;
    background-color: var( --white );
    padding: var( --secPadding );
    margin-top: 0;
    z-index: 2;
}

#news1.half-content .container {
    position: relative;
    flex-wrap: wrap;
    border-radius: 0;
    padding: 0;
    overflow: visible;
}

#news2.half-content a:not(.btn) {
    color: inherit;
}

#news2.half-content .text ul.social li {
    padding: 0 12px;
}

#news2.half-content .text ul.social a {
    color: var( --white );
    font-size: clamp( 24px, 1.667vw, 32px )
}

#news2.half-content .image.nImgLt img {
    width: auto;
    height: clamp(  300px, 42.292vw, 812px );
}

.half-content .text a:not(.btn) {
    color: inherit;
    text-decoration: underline;
}

#meetDoc.half-content {
    position: relative;
    background-color: var( --white );
    z-index: 2;
}

.half-content h2 {
    position: relative;
    color: inherit;
    display: inline-flex;
    font-size: var( --h2-font-size );
    font-weight: var( --heading-font-weight );
    font-style: normal;
    letter-spacing: normal;
    line-height: var( --h2-line-height );
    text-transform: none;
    margin: 0 0 clamp( 20px, 1.25vw, 24px );
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
}

#news4.half-content h2 {
    color: inherit;
}

.slider.nTxtLt h2 {
    text-align: center;
}

#news2.half-content h2 {
    color: inherit;
}

#news2.half-content .text {
    text-align: left;
}

.half-content h2::after {
    content: '';
    margin: 13px 0;
    height: 4px;
    width: 60px;
    display: none;
    background-color: var(--primary-color);
}

.half-content .text {
    display: grid;
    text-align: left;
    z-index: 5;
    align-items: center;
    align-content: center;
}

.half-content .text img {
    margin-top: 32px;
}

.half-content .text ol {
    list-style-type: decimal-leading-zero;
    padding-left: min(1.979vw, 38px);
}

.half-content .text ol li {
    padding: 0 0 8px;
}

.half-content .text ol li::marker {
    font-family: var( --body-font );
    font-size: clamp( 22px, 1.563vw, 30px );
    font-weight: 500;
    letter-spacing: 0;
    line-height: clamp( 38px, 2.396vw, 46px );
}

.nImgRt {
    margin: 0;
    display: grid;
    height: clamp(  300px, 29.167vw, 560px );
    float: right;
    padding: 0;
}

#news1.half-content .image.nImgRt {
    z-index: 4;
    position: relative;
}

.slider.nImgRt {
    display: block;
    height: clamp( 266px, 25vw, 480px );
    padding: 0;
}

.slider.nTxtRt {
    display: grid;
    grid-template-columns: 1fr;
    grid-row-gap: 0;
    justify-items: start;
    align-items: center;
    justify-content: center;
    align-content: center;
    height: 100%;
}

.slider.nTxtRt > div {
    width: 83.3333333333%;
    margin-left: 8.3333333%;
}

.slider.nImgRt .fwnSlider {
    position: relative;
    width: clamp( 450px, 42.292vw, 812px );
    height: clamp( 266px, 25vw, 480px );
    overflow: hidden;
    display: block;
    z-index: 9;
}

.slider.nImgRt .fwnSlider .imgSldWrap {
    width: 100%;
    padding: 0;
    display: block;
    height: fit-content;
}

/* Splide handles pauseOnHover via its options; no CSS hook needed. */

.image.nImgRt img {
    height: clamp(  310px, 29.167vw, 560px );
    display: block;
    width: auto;
    margin: 0;
    float: right;
    object-fit: cover;
    object-position: center;
    border-radius: 0;
}

.tName.h3,
.tName.h3 a {
    font-size: 16px;
    color: var( --black );
    font-family: var( --body-font );
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.73px;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-content: center;
    align-items: center;
    gap: 16px;
}

.tName.h3 img {
    width: 24px;
    height: 24px;
}

.tName.h3 i{
    margin-left: clamp(10px, 0.833vw, 16px);
    font-size: 18px;
    color: var(--primary-color);
}

.tName.h3 .tSep {
    color: var( --white );
    padding: 0 clamp( 6px, 0.625vw, 12px );
}

#hcReviews .slider .splide__pagination {
    width: fit-content;
    bottom: -56px;
}

#news2 .nImgLt img, 
#news2 .nImgRt img,
#news2 .nImgRt picture {
    display: block !important;
    height: clamp(  189px, 54.688vw, 560px );
    z-index: 20;
    position: relative;
}

#newsSlider .fwnSlider{
    position: relative;
    display: block;
    overflow: hidden;
    height: 245px;
    margin: 0;
    width: 100%;
}

#newsSlider .testCont {
    width: 100%;
    padding: 15px 0;
    height: fit-content;
    text-align: left;
}

#newsSlider .testCont .quoteIcon {
    color: var(--primary-color);
    margin-bottom: 8px;
    font-size: 32px;
    display: none;
}

#newsSlider .testCont h3 ,
#newsSlider .testCont .h3{
    font-size: clamp(28px, 1.771vw, 34px);
    text-transform: none;
    letter-spacing: normal;
    line-height: clamp( 18px, 1.979vw, 38px );
    font-family: var( --heading-font );
    font-weight: 500;
    color: inherit;
    display: none;
}

#newsSlider .star-rating li {
    display: inline-block;
    font-size: 18px;
    margin: 0 5px;
    color: var( --primary-color );
}

#newsSlider .star-rating {
    padding: 0;
    margin-bottom:24px
}

#virtSmile.half-content {
    background-image: url(/wp-content/uploads/2024/03/accent_shapes_virt_consults.svg);
    background-repeat: no-repeat;
    background-position: right bottom;
    background-size: min(6.771vw, 130px) min(19.271vw, 370px);
    z-index: 2;
}

#virtSmile.half-content .btn-secondary {
    margin: 56px 0 0;
}

#virtSmile.half-content .btn-secondary:hover {
    margin: 51px 0 5px;
}

.half-content .video {
    height: clamp(  250px, 25vw, 480px );
}

.cVidWrap {
    object-fit: cover;
    display: block;
    width: 100%;
    height: clamp(  250px, 25vw, 480px );
    position: relative;
}

a.popVid {
    position: absolute;
    width: 100%;
    height: 100%;
    display: block;
    top: 0;
}

#testimonial a.popVid {
    box-shadow: 0px 20px 40px #00000026;
    margin-top: min( 2.083vw, 40px);
    z-index: 5;
}

a.popVid img {
    filter: brightness( 0.75);
}

a.popVid:hover img {
    filter: none;
}

#testimonial a.popVid img {
    height: clamp( 300px , 29.167vw, 560px );
}

.half-content .btn.btn-white {
    margin: clamp(  20px, 1.667vw, 32px ) auto 0;
}

ul.tab-list li.tab {
    display: inline-block;
}

li.tab .btn {
    background-color: var( --white );
    color: var( --black );
}

li.tab .btn:hover {
    background-color: var( --primary-hover );
}

li.tab .btn.active {
    background-color: var( --primary-color );
    color: var( --white );
}

/* News 2 (A Glamorous Smile) — copy left + image right (image, no play button); like News 1 but
   VERTICALLY MIRRORED: gradient tan TOP-left (news1 is bottom-left) + accent rule lower.
   Mockup 5230:1283: white + tan top-left gradient, grey accent rule (top 280), 812x880 image w/ large shadow. */
#news2.half-content {
    background-image: linear-gradient( to bottom right, var( --tan ) 0%, rgba( 230, 227, 221, 0 ) 100% );
    background-repeat: no-repeat;
    background-position: top left;
    background-size: min( 85.417vw, 1640px ) clamp( 460px, 45.833vw, 880px );
    padding: clamp( 100px, 7.292vw, 140px ) 0;
    z-index: 0;
}

#news2.half-content .image.nImgRt {
    position: relative;
    display: block;
    z-index: 4;
    height: clamp( 460px, 45.833vw, 880px );
    overflow: hidden;
    box-shadow: 0 50px 60px rgba( 0, 0, 0, 0.05 ), 0 30px 40px rgba( 0, 0, 0, 0.10 );
}

#news2.half-content .image.nImgRt picture,
#news2.half-content .image.nImgRt img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    float: none;
    margin: 0;
}

#news2 .text.nTxtLt {
    position: relative;
}

#news2 .text.nTxtLt h2 {
    font-weight: 300;
    margin-bottom: 24px;
}

#news2 .text.nTxtLt > div {
    width: 65.6%;
    margin-left: 16.6%;
}

#news2 .text.nTxtLt::before {
    content: '';
    position: absolute;
    left: 6.4%;
    top: min( 7.292vw, 140px );
    width: 4px;
    height: clamp( 400px, 38.542vw, 740px );
    background-color: var( --grey );
}

@media ( max-width: 1024px ) {
    .half-content, .half-content .container {
        flex-direction: column;
        flex-wrap: wrap;
    }

    #news2.half-content,
    #news3.half-content {
        background-image: none;
        background-color: var( --white );
    }

    .half-content .text ol {
        padding-left: min(3.027vw, 31px);
    }
    
    #welcome.half-content .nImgRt,
    #newsSlider.half-content .nImgRt {
        margin: 20px 0;
        height: fit-content;
    }

    #newsSlider.half-content, 
    #news3.half-content::before {
        background-size: cover;
        background-position: center top;
    }

    #newsSlider.half-content h2::after,
    #news1.half-content h2::after,
    #news2.half-content h2::after,
    #news3.half-content h2::after {
        display: none;
    }

    #news1.half-content {
        padding: 32px 0 100px;
        background-image: linear-gradient( to top left, var( --tan ) 0%, rgba( 230, 227, 221, 0 ) 100% );
        background-size: 100% calc( 100% - 32px - 0.75 * clamp( 320px, 97.44vw, 560px ) );
    }

    #news1.half-content .container {
        flex-direction: column;
        gap: 56px;
        padding: 0 32px;
    }

    /* Bootstrap .container clearfix pseudos become flex items and pick up the column gap
       (phantom 56px below the copy) — hide them so the section padding controls the bottom gap. */
    #news1.half-content .container::before,
    #news1.half-content .container::after {
        display: none;
    }

    #news1 .video.nImgRt,
    #news1 .cVidWrap {
        height: clamp( 320px, 97.44vw, 560px );
        width: 100%;
    }

    #news1 .text.nTxtLt {
        padding: 0;
    }

    #news1 .text.nTxtLt::before {
        display: none;
    }

    #news1.half-content::before, #news1.half-content::after {
        display: none;
    }

    #newsSlider.half-content .container {
        flex-direction: column-reverse;
    }

    #welcome.half-content .nImgRt .overDrop,
    #newsSlider.half-content .nImgRt .overDrop {
        position: relative;
        width: 278px;
        overflow: visible;
    }

    #news2.half-content:before {
        display: none;
    }

    .slider.nTxtRt,
    #newsSlider .fwnSlider {
        width: 100%;
    }

    #virtSmile.half-content {
        background-image: none;
    }

    .image.nImgRt .overDrop::before {
        left: max( -2.083vw, -40px );
        bottom: max( -2.083vw, -40px );
    }

    .image.nImgRt img {
        height: auto;
        width: auto;
    }

    #welcome .image.nImgRt img {
        height: clamp(  290px, 20.313vw, 390px );
        width: auto;
        display: block;
        margin: 0 auto;
    }

    .half-content .video {
        height: unset;
        display: block;
        width: 100%;
    }

    #news2.half-content .text {
        background-size: 30vw;
    }

    #news2::before {
        display: none;
    }

    #news1 .image.nImgRt, #news1 .image.nImgLt, #news2 .image.nImgRt, #news2 .image.nImgLt, #news3 .image.nImgRt {
        height: fit-content;
        padding: 50px 0 50px;
    }

    #weCare.half-content, #yourComfort.half-content {
        padding: 0;
    }

    #news1.half-content .text > div,
    #news2.half-content .text > div {
        width: 100%;
        margin-left: 0;
        padding: 0;
    }
    
    .slider.nTxtLt {
        display: block;
    }

    #fscBlock.half-content .nImgLt picture,
    #meetDoc.half-content .nImgLt picture {
        float: none;
    }

    .nTxtRt, .nTxtLt {
        padding: 7vw 20px;
        clear: both;
        display: block;
        overflow: hidden;
    }

    .image.nImgLt:not(.video) img,
    .image.nImgRt:not(.video) img,
    #news1 .nImgLt:not(.video) img,
    #news1 .nImgRt:not(.video) img,
    #news2 .nImgLt:not(.video) img,
    #news2 .nImgRt:not(.video) img,
    #news3 .nImgLt:not(.video) img,
    #news3 .nImgRt:not(.video) img {
        display: block;
        margin: 0 auto;
        width: 80%;
        height: auto;
        float: none;
        z-index: 3;
    }

    .image.nImgLt picture,
    .image.nImgRt picture {
        position: relative;
        width: 100%;
        display: block;
        height: fit-content;
        overflow: hidden;
    }

    .slider.nImgRt .fwnSlider {
        margin: 0 auto;
    }

    .half-content .image,
    #btmCta .nImgLt{
        height: auto;
        width: 100%;
        z-index: 6;
        overflow: visible;
    }

    #newsSlider.half-content,
    #news3.half-content {
        padding: 0 0 50px;
        background: var( --white );
    }

    #news3.half-content {
        padding: 0;
    }

    .half-content .text,
    #newsSlider.half-content .text {
        clear: both;
        padding: 20px 15px 50px;
        position: relative;
        display: block;
        margin: 0;
        width: 100%;
        height: fit-content;
    }

    #btmCta.half-content {
        background-color: var( --white );
    }

    #testimonial.half-content {
        height: fit-content;
        background-color: var( --white );
        background-image: none;
    }

    #testimonial.half-content .video,
    #testimonial a.popVid img,
    .cVidWrap {
        height: min(54.688vw, 560px);
        float: none;
    }

    #testimonial a.popVid {
        margin-top: 0;
    }

    .slider.nImgRt {
        height: auto;
        display: block;
        width: 100%;
    }

    .slider.nImgRt .splide__pagination {
        position: absolute;
        bottom: 12px;
    }

    /* News 2 mobile — stacked (image top, copy below); tan bottom-right gradient (mirror News 1).
       position bottom (desktop base is top-left, so re-pin here). */
    #news2.half-content {
        padding: 32px 0 100px;
        background-image: linear-gradient( to top left, var( --tan ) 0%, rgba( 230, 227, 221, 0 ) 100% );
        background-position: bottom left;
        background-size: 100% calc( 100% - 32px - 0.75 * clamp( 320px, 97.44vw, 560px ) );
    }

    #news2.half-content .container {
        flex-direction: column;
        gap: 56px;
        padding: 0 32px;
    }

    #news2.half-content .container::before,
    #news2.half-content .container::after {
        display: none;
    }

    #news2.half-content .image.nImgRt {
        height: fit-content;
        padding: 0;
    }

    #news2.half-content .image.nImgRt picture,
    #news2.half-content .image.nImgRt img {
        height: clamp( 320px, 97.44vw, 560px );
        width: 100%;
    }

    #news2 .text.nTxtLt {
        padding: 0;
    }

    #news2 .text.nTxtLt::before {
        display: none;
    }
}

@media ( max-width: 768px ) {
    .half-content .container {
        width: 100%;
        padding: 0;
        flex-direction: column;
    }

    .half-content .text ol {
        padding-left: 30px
    }

    .nTxtLt .container {
        padding: 0 20px;
        width: 90%;
    }

    .nImglt, .nImgRt {
        height: fit-content;
    }

    .image.nImgRt .overDrop img {
        margin: 0 auto;
    }

    .image.nImgRt .overDrop::before {
        display: none;
    }

    #news4.half-content .nTxtLt > div {
        margin: 0;
        width: 100%
    }
}

@media ( max-width: 567px ) {
    .half-content .container {
        width: 100%;
        margin: 0 auto;
        flex-direction: column;
    }

#newsSlider.half-content .container {
    flex-direction: column;
    z-index: 6;
    position: relative;
}

    .slider.nTxtRt {
        height: fit-content;
        padding-top: 80px;
        padding-bottom: 0px;
    }

    #news2 .nImgLt img, #news2 .nImgRt img {
    }

    .slider.nTxtRt > div {
        width: 100%;
        margin: 0 auto;
    }

    #newsSlider .fwnSlider {
        height: 150px;
    }

    #news1 .image.nImgRt, #news1 .image.nImgLt,
    #news2 .image.nImgRt, #news2 .image.nImgLt,
    #news3 .image.nImgRt, #news3 .image.nImgLt,
    #virtSmile .nImgLt {
        height: fit-content;
    }

    #news2.half-content {
        position: relative;
    }

    #newsSlider.half-content {
        position: relative;
        padding: 0;
        background-size: cover;
        background-position: right bottom;
        overflow: visible;
        z-index: 2;
    }

    .nImglt, .nImgRt {
        min-height: 177px;
        height: fit-content;
        padding: 0;
    }

    #news4.half-content {
        padding: 0;
    }

    .nTxtRt, .nTxtLt {
        padding: 20px;
    }

    #hcReviews .slider {
        display: block;
    }

    #hcReviews .slider .splide__pagination {
        bottom: 0;
    }
}

