body, html {width: 100%; height: 100%; padding: 0; margin: 0;  font-family: "Roboto", sans-serif; font-weight: 400; font-size: 18px; color: #000; -webkit-text-size-adjust: 100%;}
body {overflow-x: hidden;}
a {text-decoration: none;}
.clear {clear: both;}
input,textarea,button {outline:none;}
a img {border: none;}
form {padding: 0; margin: 0;}
img {max-width: 100%; height: auto;}
#system-message {
  	display: none !important;
	} 

.content {
    margin: 0 auto;
    text-align: left;
    width: 100%;
    max-width: 1300px;
    padding: 0 15px;
    box-sizing: border-box;
	}

.btn {
    width: 100%;
    max-width: 250px;
    border-radius: 20px;
    padding: 13px 13px;
    font-weight: 500;
    font-size: 24px;
    display: inline-block;
    border: 2px solid transparent;
    transition: all 0.3s;
    cursor: pointer;
    box-sizing: border-box;
    font-family: "Roboto", sans-serif;
	}

.btn-primary {
    background: #5f3a7a;
    color: #fff;
    border-color: #5f3a7a;
	}

.btn-primary a {
    color: #fff;
	padding: 10px 55px;
    display: block;
	}

.btn-primary:hover {
    background: transparent;
    color: #5f3a7a;
	}

.btn-primary:hover a {
    color: #5f3a7a;
	}

.table {
    display: table;
    vertical-align: middle;
	}

.table-row {
    display: table-row;
	}

.table-cell {
    display: table-cell;
    vertical-align: middle;
	text-align: left;
	}

/*Navbar*/
nav {
    position: relative;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 9000;
    background: #ffffff;
    transition: all 0.3s;
    box-shadow: 0 3px 3px rgba(0,0,0,0.2);
	}

#homepage nav {
    background: #ffffff;
    position: relative;
    box-shadow: 0 3px 3px rgba(0,0,0,0.2);
	}

#homepage nav.slide {
    background: #ffffff;
    position: fixed;
    box-shadow: 0 3px 3px rgba(0,0,0,0.2);
	}

nav.slide {
    position: fixed;
    background: #ffffff;
    box-shadow: 0 3px 3px rgba(0,0,0,0.2);
    opacity: 0;
    max-height: 0;
    overflow: hidden;
	}

nav.slide.fixed {
    opacity: 1;
    max-height: 2000px;
    overflow: visible;
	}

nav .content {
    max-width: 1120px;
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto;
    column-gap: 20px;
    row-gap: 3px;
    align-items: center;
    padding: 5px 0;
	}

nav .top-line {
    background-color: #fff;
    padding: 5px 0;
    }

nav .top-line .content {
    justify-content: space-between;
    }

nav .top-line .dr-name-wrap {
    color: #4a2c60;
    font-size: 32px;
    font-weight: 500;
    font-family: "Roboto Condensed", sans-serif;
    }

nav .top-line .soc-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    }

.social-btn a {
    display: flex;
    transition: all 0.3s;
    }

.social-btn a:hover {
    transform: scale(1.2);
    }

.socials-header {
    display: flex;
    gap: 6px;
    }

.social-header a {
    color: #5f3a7a;
    font-size: 19px;
    padding: 7px;
    background: #e6dcf0;
    border-radius: 50%;
    width: 19px;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 19px;
    transition: 0.3s;
    }

.social-header a:hover {
    transform: scale(1.05);
    }

.inner-logo {
    padding: 0;
    display: inline-block;
    vertical-align: middle;
    grid-row: 1;
    grid-column: 1;
    justify-self: start;
	}

.inner-logo img {
    max-width: 100%;
	max-height: 88px;
	width: auto;
	height: auto;
	}

.topmenu {
    grid-column: 1;
    grid-row: 2;
    margin: 0;
    justify-self: start;
	}

.topmenu ul {
    padding: 0;
    margin: 0;
    display: flex;
    padding-left: 13px;
	}

.topmenu ul li {
    list-style: none;
    position: relative;
    padding: 5px 2px;
	}

.topmenu ul li.parent:after {
    content: '';
    position: absolute;
    top: 10px;
    right: 0;
    width: 0;
    height: 0;
    margin-right: 8px;
    vertical-align: middle;
    border-top: 4px solid #4a3a5c;
    border-right: 4px solid transparent;
    border-left: 4px solid transparent;
	}

.topmenu ul li a , span.nav-header , span.span-separator {
    text-decoration: none;
    text-transform: uppercase;
    font-family: "Questrial", sans-serif;
    font-size: 18px;
    font-weight: 700;
    color: #4a3a5c;
    transition: all 0.3s;
    white-space: nowrap;
    padding: 6px 15px;
    border-radius: 3px;
	}

.topmenu ul li.parent a {
    padding: 6px 20px 6px 12px;
	}

.topmenu ul li.active ul li a {
    color: #6d5588;
    border-bottom: 3px solid transparent;
	}

.topmenu ul li a:hover, .topmenu ul li.active a, .topmenu ul li ul li a:hover, .topmenu ul li.active ul li a:hover, .topmenu ul li ul li.active a {
    color: #6d5588;
	} 

.topmenu ul li.parent ul li a {
    padding: 6px 12px;
    color: #6d5588;
	}

.topmenu ul li ul {
    position: absolute;
    top: 100%;
    left: 0;
    width: 200px;
    display: block;
    background: #5a6a3d;
    max-height: 0;
    overflow-y: hidden;
    transition: all 0.2s;
	}

nav.fixed .topmenu ul li ul {
    background: #5a6a3d;
	}

.topmenu ul li:hover ul {
    padding-top: 10px;
    max-height: 3000px;
    overflow-y: auto;
	}

.topmenu ul li ul li {
    display: block;
    padding: 10px;
	}

.topmenu ul li:last-child a {
    padding-right: 0;
    }

.top-right {
    text-align: right;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-end;
    gap: 12px;
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
	}

.top-phone, .top-phone a {
    display: inline-block;
    vertical-align: top;
    font-size: 32px;
    font-weight: 400;
    font-family: "Roboto Condensed", sans-serif;
    color: #4a3a5c;
    margin-right: 0;
	}

.top-socials {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 5px;
    grid-column: 2;
    grid-row: 2;
    justify-self: end;
    padding-right:13px;
    }

.top-phone {
    margin: 0;
	}

.hamburger {
    display: none;
	}

nav p {
    padding: 0;
    margin: 0;
    display: inline-block;
	}

/* Slider block*/
.slider-block {
    text-align: center;
    position: relative;
	}

.nivo-slider-wrapper {
    position: relative;
    z-index: 10;
	}

.slider-overlay {
    position: absolute;
    width: auto;
    background: rgb(55 78 102 / 90%);
    box-sizing: border-box;
    padding: 20px;
    top: 50%;
    left: 10%;
    transform: translate(-10%, -50%) !important;
    max-width: 430px;
    }

.overlay-upper-left h3 {
    font-family: "Questrial",sans-serif;
    font-weight: 700;
    font-size: 32px;
    margin: 0 0 15px;
    color: #fff;
    text-align: left;
    padding-top: 0;
    }

.overlay-upper-left ul {
    color: #fff;
    padding: 0;
    list-style-type: none;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    flex-wrap: wrap;
    box-sizing: border-box;
    gap: 0;
    margin: 0 auto;
    flex-direction: column;
    }

.overlay-upper-left ul li {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 10px;
    font-size: 24px;
    margin: 10px 0;
    font-weight: 500;
    font-family: "Questrial",sans-serif;
    }

.overlay-upper-left ul li a {
    color: #fff;
    }

.overlay-upper-left ul li::before {
    content: '';
    position: relative;
    left: 0;
    top: 0px;
    display: inline-block;
    vertical-align: middle;
    height: 19px;
    width: 19px;
    background-color: #c8a96a;
    }

.overlay-button {
    color: #fff !important;
    font-size: 20px !important;
    padding: 8px 15px;
    background: #5f3a7a;
    border-radius: 5px;
    height: auto;
    width: auto;
    text-align: center;
    display: flex !important;
    justify-content: center;
    align-items: center;
    transition: all 0.3s;
    }

.overlay-button:hover {
    background-color: #3d2450;
    }
    
.nivo-caption {
    background: transparent;
    padding: 0;
    opacity: 1;
	}

.theme-pure .nivoSlider {
    margin-bottom: 0;
	}

/*About-block*/
.about-block {
    background: url(../images/about-us-background.webp) no-repeat center;
    background-size: cover;
    padding: 0;
    box-sizing: border-box;
    height: 845px;
    position: relative;
    background-position: left;
    }

.about-block-img {
    display: none;
    }

.about-block-wrap {
    max-width: 550px;
    position: absolute;
    top: 150px;
    right: 15%;
    }

.about-block-wrap h3 {
    color: #5f3a7a;
    font-size: 42px;
    font-family: "Questrial", sans-serif;
    margin: 0 0 0 0;
    }

.about-block-wrap p {
    color: #5f3a7a;
    font-size: 18px;
    line-height: 30px;
    font-weight: 400;
    }

/* Services block*/
.services-block {
    background: #e9e9e9;
    padding: 25px 0;
	}

.services-block-title {
    color: #5f3a7a;
    font-size: 42px;
    text-align: center;
    font-family: "Questrial", sans-serif;
    font-weight: 900;
    margin: 0 0 20px;
    }

.services-block-description {
    color: #5f3a7a;
    font-size: 22px;
    font-weight: 500;
    text-align: center;
    max-width: 1100px;
    margin: 0 auto 45px;
    }

.services-block-boxes {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 25px;
    max-width: 1200px;
    margin: 0 auto;
    }

.services-block-box {
    max-width: 274px;
    text-align: center;
    width: 100%;
    transition: 0.3s;
    }

.services-block-box:hover {
    text-align: center;
    transform: scale(1.05);
    }

.homepage-service-link {
    transition: 0.3s;
    }   

.homepage-service-link:hover {
    transform: scale(1.1);
    }   

.homepage-link-upper {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    max-width: 330px;
    text-align: center;
    color: #fff;
    /*background: #5f3a7a;*/
    /*padding: 20px;*/
    border-radius: 45px;
    font-size: 15px;
    font-weight: 400;
    line-height: 20px;
    gap: 10px;
    height: 200px;
    font-family: "Questrial", sans-serif;
    transition: 0.3s all;
    }

.homepage-link-upper:hover {
    cursor: pointer;
    }

.homepage-link-upper img {
    border-radius: 10px;
    box-shadow: 0 6px 18px rgba(74, 58, 92, 0.18);
    }

.homepage-service-title {
    color: #5f3a7a;
    margin: 15px 0 0 0;
    font-family: "Questrial", sans-serif;
    font-size: 26px;
    font-weight: 600;
    }

.services-button-wrap {
    display: block;
    margin: 35px auto;
    }
    
.homepage-services-button {
    color: #fff;
    font-size: 22px;
    padding: 0;
    background: #4a3a5c;
    border-radius: 25px;
    height: 58px;
    width: 330px;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 20px auto 0;
    transition: all 0.3s;
    }

.homepage-services-button:hover {
    background: #2e2138;
    cursor: pointer;
    }

.homepage-services-button a{
    color: #fff;
    }

/* Testimonials Block */
.testimonial-block {
    padding: 0 0 50px;
    }

.testimonial-block h3 {
    color: #5f3a7a;
    font-size: 42px;
    text-align: center;
    font-family: "Questrial", sans-serif;
    }

/*Contact Us (connect with us block)*/    
.connect-with-block {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    padding: 30px 25px;
    box-sizing: border-box;
    flex-wrap: wrap;
    }
  
.connect-with-title {
    color: #4a3a5c;
    font-size: 32px;
    font-weight: 500;
    margin: 10px 0;
    }

.connect-with-us {
    display: flex;
    gap: 10px;
    }

.social-connect-block a {
    color: #5f3a7a;
    font-size: 24px;
    padding: 10px;
    background: #e6dcf0;
    border-radius: 50%;
    width: 26px;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 26px;
    transition: 0.3s;
    }

.social-connect-block a:hover {
    transform: scale(1.05);
    cursor: pointer;
    }

/*Locations block*/
.locations-block {
    background: url(../images/location-background.webp) no-repeat center;
    background-size: cover;
    padding: 50px 0;
	}

.locations-upper-links p {
    color: #3d2b47;
    font-weight: 400;
    font-size: 32px;
    margin: 20px 0;
    }

.locations-upper-links {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 20px;
    max-width: 1150px;
    margin: 0 auto;
    font-family: "Questrial", sans-serif;
    }

.socials-upper {
    display: flex;
    gap: 10px;
    }

.social-upper a {
    color: #5f3a7a;
    font-size: 24px;
    padding: 10px;
    background: #e6dcf0;
    border-radius: 50%;
    width: 26px;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 26px;
    transition: 0.3s;
    }

.social-upper a:hover {
    transform: scale(1.05);
    }

.location-wrap {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    background: rgb(255 255 255 / 80%);
    max-width: 1150px;
    margin: 0 auto;
    }

.our-location-title {
    color: #7a4f96;
    font-size: 42px;
    font-weight: 400;
    font-family: "Questrial", sans-serif;
    margin: 20px 0px;
    }

.location-info {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 15px;
    margin-bottom: 15px;
    }

.location-info-left i {
    color: #5f3a7a;
    font-size: 24px;
    padding: 10px;
    background: #e6dcf0;
    border-radius: 50%;
    width: 26px;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 26px;
    transition: 0.3s;
    }

.location-info-right h3 {
    margin: 0;
    }

.location-info-right p {
    margin: 0;
    }

.location-info-right a {
    color: #000;
    }

.locations-lower-links {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 15px;
    border-top: 1px solid;
    font-family: "Questrial", sans-serif;
    }

.locations-lower-links p {
    color: #000;
    font-weight: 600;
    font-size: 26px;
    }

.socials-lower {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 10px;
    }

.social-lower a {
    color: #5f3a7a;
    font-size: 24px;
    padding: 10px;
    background: #e6dcf0;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 20px;
    width: 20px;
    transition: 0.3s;
    }

.social-lower a:hover {
    transform: scale(1.05);
    }

.location-wrap-right {
    width: 550px;
    height: 390px;
    }

/*Blogs block*/
.blogs-block {
    padding: 40px 0 50px;
    background: url(../images/blogs-bg.jpg) no-repeat center;
    background-size: cover;
    text-align: center;
	}

.blogs-block .content {
    text-align: center;
	}

.blogs-block h2 {
    font-size: 48px;
    color: #5f3a7a;
    font-weight: 400;
    text-align: center;
    display: block;
    margin: 10px 0;
	}

.blogs-list ul {
    display: inline-block;
    padding: 0;
    margin: 0 auto;
    text-align: left;
	}

.blogs-list ul li {
    list-style: none;
    display: block;
    padding: 8px 0 8px 15px;
    position: relative;
	}

.blogs-list ul li::before {
    content: '•';
    position: absolute;
    left: 0;
    top: 10px;
    color: #5f3a7a;
	}

.blogs-list ul li a {
    color: #5f3a7a;
    text-decoration: none;
    font-size: 22px;
	}

.blogs-list ul li a:hover {
    text-decoration: underline;
	}

.blogs-block .btn {
    margin-top: 30px;
	}

.mod-item .image {
    border-radius: 10px;
    box-shadow: 0 6px 18px rgba(74, 58, 92, 0.18);
    }

/*Footer*/
footer {
    /* background: #4a3a5c; */
    background-color: #241733;
    padding: 15px 0 0;
	}

footer .content {
    text-align: center;
	}

.logo-footer {
    display: inline-block;
    vertical-align: middle;
    padding: 30px;
    max-width: 150px;
	}

.quick-links-block {
    display: inline-block;
    vertical-align: middle;
    padding: 70px;
    text-align: left;
    display: none;
	}

footer h4 {
    font-size: 18px;
    font-weight: 400;
    color: #ffffff;
    margin: 0 0 20px;
    padding-top: 0;
	}

.footer-rate a {
    color: #fff;
    }

.footer-rate a:hover {
    text-decoration: underline;
    }

.quick-links-block ul {
    padding: 0;
    margin: 0;
	}

.quick-links-block ul li {
    display: block;
    list-style: none;
    padding: 0;
	}

.quick-links-block ul li a {
    color: #ffffff;
    font-size: 22px;
    line-height: 32px;
    text-decoration: none;
	}

.quick-links-block ul li a:hover {
    text-decoration: underline;
	}

.quick-links-block ul ul {
    padding: 0;
    margin: 2px 0 0 10px;
	}

.bottom-loc-block {
    display: inline-block;
    vertical-align: middle;
    padding: 30px;
    text-align: left;
    color: #ffffff;
    font-size: 18px;
    line-height: normal;
	}

.white-text {
    color: #fff;
	}

.offices-block {
    display: flex;
	}

/* .office {
    padding-right: 30px;
	} */

.copy-left , .copy-right {
    text-align: left;
    float: left;
    color: #ffffff;
    font-size: 15px;
    padding: 15px;
	}

.copy-left a , .copy-right a {
    color: #ffffff;
    text-decoration: none;
	}

.copy-left a:hover , .copy-right a:hover {
    text-decoration: underline;
	}

.copy-right {
    text-align: right;
    float: right;
	}

.scroll-to-top {
    position: fixed;
    bottom: 72px;
    left: 20px;
    z-index: 8999;
    opacity: 1;
    transition: all 0.3s;
    display: none;
    cursor: pointer;
	}

.scroll-to-top.active {
    display: block;
	}

.scroll-to-top:hover {
    opacity: 0.8;
	}

.rabutton {
    max-width: 350px;
    position: fixed;
    right: 20px;
    bottom: 80px;
    z-index: 99;
    }

.rabutton .wrap {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    }
        
.rabutton .buttonrs {
    min-width: 255px;
    min-height: 45px;
    font-size: 18px;
    font-family: "Roboto",sans-serif;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.3px;
    font-weight: 700;
    color: #fff;
    background: #5f3a7a;
    border: none;
    border-radius: 3px;
    box-shadow: 12px 12px 24px rgb(25 54 78 / 22%);
    transition: all 0.3s ease-in-out 0s;
    cursor: pointer;
    outline: none;
    position: relative;
    padding: 10px 20px;
    }
    
.rabutton .buttonrs::before {
    content: '';
    border-radius: 13px;
    min-width: calc(245px + 28px);
    min-height: calc(40px + 4px);
    border: 4px solid #4a2c60;
    box-shadow: 0 0 60px rgb(195 195 195 / 64%);
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    opacity: 0;
    transition: all .3s ease-in-out 0s;
    }
        
.rabutton .buttonrs:hover, .buttonrs:focus {
    color: #5f3a7a;
    transform: translateY(-6px);
    background: #fff;
    }
        
.rabutton .buttonrs:hover::before, .rabutton .buttonrs:focus::before {
    opacity: 1;
    }
    
.rabutton .buttonrs::after {
    content: '';
    width: 30px; height: 30px;
    border-radius: 100%;
    border: 6px solid #cccccc;
    position: absolute;
    z-index: -1;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    animation: ring 1.5s infinite;
    }
        
.rabutton .buttonsr:hover::after, .buttonrs:focus::after {
    animation: none;
    display: none;
    }
        
@keyframes ring {
    0% {
        width: 30px;
        height: 30px;
        opacity: 1;
    }
    100% {
        width: 200px;
        height: 200px;
        opacity: 0;
    }
    }

/*Joomla corrections*/
.social-btns p , .top-phone p , .connect-block p , .about-block h2 p , .topline p {
    display: inline-block;
    padding: 0;
    margin: 0;
	}

.social-btns a {
    color: #fff;
	}

.social-btns a:hover {
    color: #8a6aa8;
	}

/*Rate US*/

.inner-wrap {
    padding: 50px 2% 100px;
    text-align: center;
    }

.inner-wrap h2 {
    font-size: 44px;
    margin: 0 auto;
    font-weight: 500;
    }

.inner-wrap h5 {
    margin: 25px auto;
    }

.google-review {
    margin-top: 60px;
    }


.google-review img:hover {
    transform: scale(1.02);
    transition: all 300ms ease;
    }

/*Rate Us --- END*/

/* How Are We Doing? */
    
.thumbs-wrap {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    flex-direction: row;
    flex-wrap: wrap;
    padding: 0 2% 100px;
    }

.thumbs-wrap .item {
    margin: 0 20px;
    max-width: 300px;
    }

.thumbs-wrap .item:hover {
    transform: scale(1.02);
    transition: all 300ms ease;
    }

.thumbs-wrap .item img {
    width: 100%;
	height: auto;
	box-shadow: none;
    }

.thumbs-wrap .item span {
    font-size: 23px;
    margin-bottom: 20px;
    display: block;
    font-weight: 600;
    }

/* How Are We Doing? --- END */

/*Inner pages*/
tr.rsform-block.rsform-block-ref {
    vertical-align: text-bottom;
    }

.inner-pages {
    padding-bottom: 30px;
	}

.inner-pages a {
    color: #5f3a7a;
	}

.inner-pages img {
    max-width: 100% !important;
    height: auto !important;
    border-radius: 10px;
    box-shadow: 0 6px 18px rgba(74, 58, 92, 0.18);
	}

.inner-pages .page-header {
    margin-bottom: 20px;
	}

.inner-pages .page-header h1,
.inner-pages .page-header h2 {
    font-family: "Questrial", sans-serif;
    font-size: 48px;
    color: #5f3a7a;
    text-align: center;
    font-weight: 400;
    position: relative;
    padding: 20px 0;
    margin: 0 auto 20px auto;
    position: relative;
	}

.inner-pages .page-header h1::after,
.inner-pages .page-header h2::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    margin-left: -35px;
    width: 70px;
    height: 2px;
    background-color: #d8c7e6;
	}

.one {
    float: left;
    width: 49%;
    padding-right: 2%;
    margin-bottom: 20px;
	}

.two {
    width: 49%;
    float: right;
    margin-bottom: 20px;
	}

/* Get In Touch - Office Page */
.second {
    margin-top: 30px;
    border: 1px solid #e0e0e0;
    border-radius: 12px;
    overflow: hidden;
    }

.office-title-bar {
    background: #5f3a7a;
    color: #fff;
    font-size: 28px;
    font-weight: 700;
    padding: 18px 30px;
    box-sizing: border-box;
    font-family: "Questrial", sans-serif;
    }

.office-layout {
    display: flex;
    gap: 30px;
    margin: 0;
    padding: 25px;
    flex-wrap: wrap;
    box-sizing: border-box;
    }

.office-layout .one {
    flex: 1 1 55%;
    float: none;
    width: auto;
    padding-right: 0;
    margin-bottom: 0;
    }

.office-layout .two {
    flex: 1 1 40%;
    float: none;
    width: auto;
    margin-bottom: 0;
    }

.office-info-grid {
    display: flex;
    gap: 80px;
    flex-wrap: wrap;
    margin-bottom: 30px;
    }

.office-hours-block {
    flex: 0 0 auto;
    min-width: 250px;
    }

.office-hours-block .week,
.office-hours-block .hours {
    line-height: 1.8;
    }

.contact-block {
    flex: 1 1 auto;
    min-width: 320px;
    }

.office-subtitle {
    color: #5f3a7a;
    font-size: 22px;
    font-weight: 600;
    margin: 0 0 18px;
    font-family: "Questrial", sans-serif;
    }

.contact-block > div {
    line-height: 1.6;
    }

.office-buttons {
    display: flex;
    gap: 15px;
    flex-wrap: wrap;
    margin-top: 20px;
    }

.inner-pages a.office-btn,
a.office-btn {
    display: inline-block;
    padding: 12px 15px;
    border-radius: 8px;
    color: #fff;
    font-weight: 700;
    font-size: 16px;
    text-align: center;
    transition: all 0.3s;
    font-family: "Roboto", sans-serif;
    border: 2px solid transparent;
    box-sizing: border-box;
    text-decoration: none;
    flex: 1 1 0;
    min-width: 150px;
    white-space: nowrap;
    }

.inner-pages a.office-btn-red,
a.office-btn-red {
    background: #5f3a7a;
    border-color: #5f3a7a;
    color: #fff;
    }

.inner-pages a.office-btn-red:hover,
a.office-btn-red:hover {
    background: #fff;
    color: #5f3a7a;
    }

.inner-pages a.office-btn-primary,
a.office-btn-primary {
    background: #5f3a7a;
    border-color: #5f3a7a;
    color: #fff;
    }

.inner-pages a.office-btn-primary:hover,
a.office-btn-primary:hover {
    background: #fff;
    color: #5f3a7a;
    }

.inner-pages a.office-btn-orange,
a.office-btn-orange {
    background: #c8a96a;
    border-color: #c8a96a;
    color: #fff;
    }

.inner-pages a.office-btn-orange:hover,
a.office-btn-orange:hover {
    background: #fff;
    color: #c8a96a;
    }

.offices {
    margin: 0;
    width: 100%;
    float: left;
	}

.one .address {
    float: left;
    width: 90%;
    margin-bottom: 20px;
	}

.week {
    float: left;
    width: 105px;
    margin-bottom: 20px;
	}

.hours {
    float: left;
    width: 120px;
    margin-bottom: 20px;
	}
	
.coloredtext.semi {
	font-weight: 600;
	}

.inner-pages .doctor {
    float: right;
    text-align: center;
    margin: 0 0 5px 10px;
	max-width: 250px;
    font-size: 20px;
    color: #5f3a7a;
    font-weight: 500;
	}

.inner-pages .doctor img {
	max-width: 100%;
	height: auto;
	margin-bottom: 10px;
	}

.clearList {
    display: none !important;
	}

.formTableLayout {
  	margin: 0 auto;
	}

.formTableLayout input#Send, .formTableLayout input#submit , button#submit {
    background: #5f3a7a;
    color: #fff;
    border-color: #5f3a7a;
    padding: 5px 30px;
    border-radius: 5px;
    font-size: 19px;
    font-weight: bold;
    font-family: "Roboto", sans-serif;
    border: 2px solid transparent;
	}

.formTableLayout input#Send:hover, .formTableLayout input#submit:hover ,  button#submit:hover {
    background: #fff;
    color: #5f3a7a;
    border-color: #fff;
    border: 2px solid;
    cursor: pointer;
	}

.formTableLayout tr.rsform-block>td {
    padding: 5px;
	font-weight: 600;
	}

input, textarea, button , select {
    outline: none;
    padding: 4px;
	}

.osmap-items ul li .even {
    padding: 2px 0 !important;
	}

table.pe ul {
	margin: 0;
	}

/*Joomla content*/

body#homepage .content.h {display: none;}

.content.full {
	flex-wrap: wrap;
    display: flex;
	}

.divContent {
	flex: 0 0 80%;
	/*max-width: 1000px;
	float: left;*/
	}

.divRight {
	flex: 0 0 20%;
	/*max-width: 300px;
	float: right;*/
	}

.divRight .moduletable {
	margin-top: 25px;
	padding-left: 40px;
	}

.divRight .moduletable ul {
	padding: 0px 4px !important;
	}

.divRight .moduletable ul li {
	padding: 5px 0 5px 3px !important;
	}

body#bfa #k2Container {
    padding-top: 0;
	}

.latestItemsCategory {
	float: right;
    width: 30px;
	}

div.genericItemReadMore {
    display: none !important;
	}

div.k2ArchivesBlock ul li a {
	color: #5f3a7a;
	}

.activeFeedbackField {
display: inline-block;
position: relative;
width:0;
overflow:hidden;
}

.activeFeedbackField input{
position:absolute;
left:10px;
}

.activeFeedbackDescription {
padding-top: 5px;
margin: 0;
}

@media only screen and (max-width: 1800px) {
.about-block-wrap {
    max-width: 550px;
    position: absolute;
    top: 150px;
    right: 10%;
    }
}

@media only screen and (max-width: 1700px) {
footer {
    padding-bottom: 140px;
    }
}

@media only screen and (max-width: 1620px) {
.about-block-wrap {
    max-width: 550px;
    position: absolute;
    top: 150px;
    right: 5%;
    }
}

@media only screen and (max-width: 1400px) {
/*Header*/
/* .inner-logo {
    max-width: 250px;
    } */

/* .top-right {
    margin: 20px 0px 0 auto;
    }

.top-phone, .top-phone a {
    margin-right: 5px;
    } */
    
.topmenu ul li a, span.nav-header, span.span-separator {
    font-size: 18px;
    padding: 6px 10px;
    }

/*Slider*/

.slider-overlay-wrap {
    max-width: 961px;
    margin: 0 auto;
    }

.slider-overlay {
    max-width: 370px;
    }

.overlay-upper-left h3 {
    font-size: 28px;
    }

.overlay-upper-left ul li {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 12px;
    font-size: 18px;
    margin: 14px 0;
    font-weight: 500;
    }

.overlay-upper-left ul li {
    font-size: 18px;
    margin: 10px 0;
    }

/* .overlay-button {
    font-size: 18px;
    width: 280px;
    font-weight: bold;
    height: 45px;
    } */

.slider-overlay-lower h3 {
    font-size: 72px;
    }

/* Get In Touch - Office Page */
.office-layout {
    padding: 35px 45px;
    }

.office-info-grid {
    gap: 30px;
    }

.office-hours-block,
.contact-block {
    flex: 1 1 auto;
    min-width: 0;
    }

.inner-pages a.office-btn,
a.office-btn {
    flex: 0 1 auto;
    min-width: 0;
    white-space: normal;
    padding: 12px 18px;
    }
  
/*About Us*/
.about-block-wrap {
    top: 100px;
    left: 25px;
    }

.about-block {
    background: url(../images/about-us-background.webp) no-repeat right;
    height: 500px;
    background-size: cover;
    }

.about-block-wrap {
    top: 20px;
    left: 25px;
    right: 25px;
    max-width: unset;
    text-align: center;
    background: #ffffff7d;
    padding: 25px;
    border-radius: 40px;
    }

}

@media only screen and (max-width: 1250px) {
/*Inner pages*/
.one .address {
	width: 100%;
	}

.about-block-wrap p {
    color: #000000;
    }

}


@media only screen and (max-width: 1150px) {
/*Services*/
.services-block-boxes {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 25px;
    }

/*About Block*/    
.about-block {
    /* background-position: center; */
    height: 600px;
    }
/*
.about-block-wrap {
    max-width: 685px;
    position: absolute;
    top: 60px;
    left: 25px;
    }

.about-block-wrap p {
    font-size: 18px;
    }
*/
/*Location*/
.locations-upper-links {
    max-width: 580px;
    }

.location-wrap {
    flex-direction: column;
    max-width: 580px;
    padding: 10px;
    }
}

@media only screen and (max-width: 1080px) {
/*Footer*/
/* .logo-footer {
    padding: 30px;
    } */

/* .quick-links-block,
.bottom-loc-block {
    padding: 30px;
    } */

/* footer h4 {
    font-size: 20px;
    } */

/* .bottom-loc-block,
.quick-links-block ul li a {
    font-size: 18px;
    line-height: 26px;
    } */
  
/*sidebar*/
	
.divContent {
	flex: 0 0 70%;
	}
	
.divRight {
    flex: 0 0 30%;
	}
  
/*Rate Us*/

.inner-wrap {
    padding: 30px 2% 60px;
    }

.inner-wrap h2 {
    font-size: 32px;
    }

.google-review img {
    width: 300px !important;
	height: auto !important;
    }

/*Rate Us -- END*/
}

@media only screen and (max-width: 1000px) {
.inner-logo {
    max-width: 170px;
    }

.topmenu.top-right-inner {
    display: none;
    }

/*Navbar*/
.hamburger {
    display: inline-block;
    position: relative;
    z-index: 9002;
    margin: 37px 20px 10px auto;
	}
	
body .accessib-block {
    top: 30% !important;
	}

nav.slide {
	max-height: 3000px;
	overflow: visible;
	opacity: 1;
	}

.topmenu {
	position: fixed;
	z-index: 9001;
	top: -150%;
	bottom: 0;
	left: 0;
	right: 0;
	width: 100%;
	height: 100%;
	overflow-x: hidden;
	overflow-y: auto;
    background: #d8c7e6;
    transition: all 0.3s;
	margin: 0;
    text-align: left;
	}

.topmenu.active {
	top: 0;
	}

.topmenu ul {
	display: block;
	padding: 40px 15px 15px 15px;
	}

.topmenu ul li {
	display: block;
	padding: 5px;
	}

.topmenu ul li.parent:after {
	display: none;
    }

.topmenu ul li a , span.nav-header , span.span-separator {
	font-size: 15px;
	}

.topmenu ul li ul {
	position: relative;
	top: 0;
	left: 0;
	width: auto;
	display: block;
	background: transparent;
	max-height: 3000px;
	overflow-y: visible;
	padding: 5px 0 0 0;
    }

.topmenu ul li ul li {
	padding: 5px 10px;
	}

nav.fixed .topmenu ul li ul {
	background: transparent;
	}

.topmenu ul li:hover ul {
	overflow-y: visible;
	padding: 5px 0 0 0;
	}
	
.hamburger.hamburger--slider.is-active {
	position: fixed;
	right: 0;
	top: 15px !important;
	}
	
.inner-nav.slide {display: none;}

.inner-nav.slide.fixed {display: block;}

nav .content {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    }

.top-right {
    width: 100%;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: 15px;
    padding: 0 25px 10px;
    max-width: 100%;
    margin: 0 auto;
    flex-wrap: wrap;
    order: 2;
    text-align: center;
    }

.top-socials {
    width: 100%;
    order: 3;
    justify-content: center;
    padding: 0 25px 10px;
    }

.inner-logo {
    order: 0;
    }

.hamburger {
    order: 1;
    }

/*Slider*/
/*
.slider-overlay {
    position: relative;
    background: #5f3a7a;
    bottom: unset;
    left: unset;
    width: 100%;
    max-width: unset;
    }

.slider-overlay-upper {
    flex-direction: column;
    justify-content: center;
    align-items: center;
    }

.slider-overlay-lower h3 {
    font-size: 70px;
    padding-bottom: 0;
    position: absolute;
    top: -230px;
    left: 30px;
    max-width: 315px;
    }

.overlay-upper-left ul {
    margin: 20px 0 0;
    }

.slider-overlay {
    padding: 30px 0 0;
    }

.overlay-upper-left ul li::before {
    height: 15px;
    width: 15px;
    }

.overlay-upper-left h3 {
    color: #fff;
    font-size: 26px;
    }
*/

.slider-block {
    text-align: center;
    position: relative;
    background-color: #EEEEEE;
    padding: 0 15px 5px;
    }

.slider-overlay {
    position: relative;
    top: auto;
    left: auto;
    transform: none !important;
    max-width: 325px;
    margin: 30px auto 25px;
    }

.overlay-upper-left h3 {
    font-size: 24px;
    }

/*.overlay-upper-left h3 {
    font-size: 24px;
    white-space: break-spaces;
    text-align: center;
    max-width: 270px;
    margin: 0 auto;
    }

.overlay-upper-left ul {
    flex-direction: column;
    max-width: 195px;
    margin: 0 auto;
    align-items: flex-start;
    gap: 0;
    } */

.about-block {
    height: 590px;
    }
/*
.about-block-wrap {
    max-width: 600px;
    }*/

.about-block-wrap h3 {
    font-size: 34px;
    }

.about-block-wrap p {
    font-size: 16px;
    line-height: 24px;
    }
}

@media only screen and (max-width: 930px) {
table.pe td {
	display: block;
	}

table.pe ul {
	margin: 0;
	}

/* Get In Touch - Office Page */
.office-layout {
    flex-direction: column;
    padding: 30px 35px;
    gap: 20px;
    align-items: center;
    }

.office-layout .one,
.office-layout .two {
    flex: 1 1 100%;
    min-width: 0;
    width: 100%;
    }

.office-layout .two .map,
.office-layout .two iframe {
    width: 100%;
    max-width: 100%;
    }

.office-info-grid {
    gap: 40px;
    justify-content: center;
    }

.office-hours-block,
.contact-block {
    flex: 0 0 auto;
    width: auto;
    }

.office-buttons {
    justify-content: center;
    }

.office-title-bar {
    font-size: 22px;
    padding: 15px 20px;
    } 
}

@media only screen and (max-width: 800px) {
/*Header*/
.social-header a {
    font-size: 16px;
    padding: 5px;
    width: 18px;
    height: 18px;
    }

.top-phone, .top-phone a {
    font-size: 28px;
    }

body .accessib-block {
    top: 40% !important;
  	}
  
.copy-left, .copy-right {
	width: 100%;
	padding: 0;
	text-align: center;
	}
	
.copy-right p {
	margin-top: 0;
	}
  
/* How Are We Doing? */
.thumbs-wrap .item {
    max-width: 35%;
    margin: 0 10px 20px 10px;
    }

.thumbs-wrap .item span {
    font-size: 18px;
    }

/* How Are We Doing? --- END */ 
  
}

@media only screen and (max-width: 768px) {

.formCaption {
	width:100% !important;
	}

input#Email , input#Your_Email {
	width:90% !important;
	}

form#userForm textarea {
	width:90% !important;
	}
}

@media only screen and (max-width: 767px) {
body {
	font-size: 16px;
	}

.btn {
 	width: 100%;
	max-width: 180px;
	border-radius: 5px;
	padding: 10px 10px;
	font-weight: 600;
	font-size: 15px;
	}
	
.btn-primary a {
    padding: 10px 50px;
	}

.slider-overlay-lower h3 {
    font-size: 46px;
    top: -185px;
    }

.about-block {
    background: #fff;
    height: auto;
    padding: 50px 0 0;
    }

.about-block-img {
    display: block;
    max-width: 100%;
    width: auto;
    height: auto;
    margin: 0 auto 30px;
    }

.about-block-wrap {
    max-width: 100%;
    border-radius: 0;
    position: relative;
    top: auto;
    left: auto;
    padding: 0 15px;
    box-sizing: border-box;
    right: auto;
    margin: 0 auto;
    padding: 20px;
    background: none;
    }   

.about-block-wrap h3 {
    font-size: 28px;
    }

.services-block-title {
    font-size: 28px;
    }

.services-block-description {
    font-size: 18px;
    }
/*
.homepage-link-upper {
    max-width: 190px;
    height: 210px;
    }

.homepage-link-upper img {
    width: auto;
    height: 60px;
    }
*/
.homepage-service-title {
    font-size: 20px;
    }

.homepage-services-button {
    font-size: 18px;
    height: auto;
    width: auto;
    max-width: 200px;
    padding: 10px;
    }

.testimonial-block h3 {
    font-size: 28px;
    }

div#n2-ss-2 .n2-font-c02e4fb74f8f9ac11e018e2340185a06-paragraph,
div#n2-ss-2 .n2-font-179873a640c5bc67c54e5ff387c0ace3-paragraph {
    font-size: 16px !important;
    }

.locations-upper-links p {
    font-size: 28px;
    }

.our-location-title {
    font-size: 28px;
    }

.locations-lower-links p {
    font-size: 22px;
    }

/*Blogs block*/
.blogs-block h2 {
    font-size: 28px;
    }

.blogs-list ul li a {
    font-size: 15px;
    }

/*Footer*/
footer {
    padding-bottom: 80px;
    }

footer .content {
	text-align: center;
	}

/* .logo-footer {
    display: block;
    padding: 30px 0 15px;
    max-width: 100%;
    margin: 0 auto;
    } */

.copy-left, .copy-right {
	font-size: 12px;
	}

footer h4 {
	font-size: 14px;
	}

.quick-links-block ul li a {
	font-size: 14px;
	line-height: 18px;
    }

.bottom-loc-block {
	font-size: 14px;
	line-height: 18px;
    }

.scroll-to-top {
	width: 45px;
	bottom: 15px;
	left: 15px;
    }

.rabutton {
    max-width: 250px;
    bottom: 15px;
    }

.rabutton .buttonrs {
    min-width: 250px;
    font-size: 15px;
    }

.rabutton .buttonrs::before {
    min-width: calc(234px + 16px);
    min-height: calc(36px + 9px);
    }

/*Inner pages*/
.inner-pages .page-header h1,
.inner-pages .page-header h2 {
	font-size: 28px;
    }

.one {
	float: none;
	width: 100%;
	padding-right: 0;
    }

.two {
	float: none;
	width: 100%;
	margin-bottom: 20px;
	}
  
/*sidebar*/
	
.divContent {
	flex: 0 0 70%;
	}
	
.divRight {
    flex: 0 0 30%;
	}
}

@media only screen and (max-width: 730px) {
  
img.pe , img.se , img.np {
	float: none !important;
	margin: 0 0 10px 0 !important;
	max-width: 100%;
	height: auto;
	}
}


@media only screen and (max-width: 650px) {
/*Nav*/
/*
nav .content {
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    }

.inner-logo {
    max-width: 250px;
    order: 1;
    margin: 7px auto 7px 0;
    }

.top-right {
    margin: 0 auto 10px;
    display: flex;
    justify-content: center;
    align-items: center;
    order: 2;
    text-align: center;
    }

.top-phone, .top-phone a {
    margin-right: 10px;
    display: block;
    }

.hamburger {
    position: fixed;
    top: 78px;
    right: 0px;
    }

nav .top-line .dr-name-wrap {
    font-size: 24px;
    order: 1;
    }*/

/*Locations*/
.locations-upper-links {
    flex-direction: column;
    margin-bottom: 15px;
    }

.locations-upper-links p {
    margin-bottom: 0;
    }

.locations-lower-links {
    flex-direction: column;
    }

.locations-lower-links p {
    margin-bottom: 0;
    }

.location-wrap-right {
    width: 100%;
    height: 400px;
    }

}

@media only screen and (max-width: 630px) {
/* .about-block {
    background-position: center;
    height: 1000px;
    } */

/*Inner pages*/
.inner-pages .doctor {
	float: none;
	text-align: center;
	margin: 0 auto 10px auto;
    }
}

@media only screen and (max-width: 590px) {

/*sidebar*/
	
.divContent , .divRight {
	flex: 0 0 100%;
	}
	
.divRight .moduletable {
    padding-left: 5px;
	}

/* Get In Touch - Office Page */
.office-layout {
    padding: 25px 30px;
    }

.office-info-grid {
    flex-direction: column;
    gap: 20px;
    align-items: flex-start;
    width: max-content;
    max-width: 100%;
    margin: 0 auto;
    }

.office-hours-block,
.contact-block {
    min-width: 0;
    width: auto;
    }

.office-hours-block .offices {
    display: inline-block;
    float: none;
    width: auto;
    }

.office-hours-block .week {
    width: auto;
    padding-right: 15px;
    }

.office-hours-block .hours {
    width: auto;
    }

.office-buttons {
    flex-direction: column;
    gap: 10px;
    width: 100%;
    align-items: center;
    }

.inner-pages a.office-btn,
a.office-btn {
    width: 100%;
    max-width: 280px;
    }

.office-layout .two iframe {
    height: 300px;
    }
}

@media only screen and (max-width: 550px) {
/* .slider-overlay {
    display: flex;
    flex-direction: column-reverse;
    gap: 25px;
    } */

.slider-overlay-lower h3 {
    font-size: 38px;
    padding-bottom: 0;
    position: relative;
    top: auto;
    left: auto;
    max-width: 100%;
    text-align: center;
    order: -1;
    }

/*Footer*/
/* .logo-footer {
	display: block;
	margin: 0 auto;
    } */

/*Footer*/
/* .offices-block {
	display: block;
    } */

.logo-footer {
    padding: 15px;
    }

.bottom-loc-block {
    padding: 15px;
    }

tbody#rsform_3_page_0 td , tbody#rsform_4_page_0 td {display: block;}

textarea#Message , tbody#rsform_4_page_0 textarea {
  	width: 90%;
  	display: block;
  	}

.rsform-input-box {
  	width: 65% !important; 
  	display: block;
  	}

table#cal4_0 tbody td {
	display: table-cell;
	}
  
/* .office {
    padding-right: 10px;
    margin-bottom: 25px;
	} */
	
/* .bottom-loc-block {
    padding: 30px 0 0px 30px;
	} */
  
tbody#rsform_5_page_0 td {
	display: block;
	}
  
}

@media only screen and (max-width: 430px) {
    
.inner-nav.slide.fixed .top-socials {display:none;}
    
    
.homepage-services-button {
    width: 100%;
    }

footer .content {
    text-align: center;
    }
}
/* ==========================================================================
   Divine Healing & Wellness Centers - brand overrides
   Appended last so these win the cascade without editing template rules.
   ========================================================================== */

/* Brand logo art is portrait (839x1032). The template only caps .inner-logo
   by width, so cap the image by height to keep the header proportions. */
.inner-logo img {
    max-height: 124px;
    width: auto;
    }

@media only screen and (max-width: 1000px) {
    .inner-logo img { max-height: 104px; }
    }

@media only screen and (max-width: 767px) {
    .inner-logo img { max-height: 88px; }
    }

/* ===== Office photo gallery / picture reel (Divine Healing & Wellness) ===== */
.office-gallery-wrap { margin: 10px 0 40px; }
.office-gallery-title {
    font-family: "Roboto Condensed", sans-serif;
    color: #5f3a7a;
    font-size: 30px;
    font-weight: 700;
    margin: 0 0 4px;
    }
.office-gallery-sub {
    color: #5a6a3d;
    font-weight: 600;
    margin: 0 0 20px;
    font-size: 16px;
    }
.office-reel {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(78%, 1fr);
    gap: 16px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    padding: 4px 4px 16px;
    -webkit-overflow-scrolling: touch;
    }
.office-reel::-webkit-scrollbar { height: 8px; }
.office-reel::-webkit-scrollbar-track { background: #efe9f4; border-radius: 4px; }
.office-reel::-webkit-scrollbar-thumb { background: #5f3a7a; border-radius: 4px; }
.office-reel figure { margin: 0; scroll-snap-align: start; }
.office-reel img {
    width: 100%;
    height: 240px;
    object-fit: cover;
    border-radius: 12px;
    display: block;
    border: 3px solid #5f3a7a;
    box-shadow: 0 6px 16px rgba(36, 23, 51, .16);
    }
.office-reel figcaption {
    text-align: center;
    margin-top: 10px;
    color: #4a3a5c;
    font-size: 14px;
    font-weight: 600;
    }
@media (min-width: 700px) {
    .office-reel { grid-auto-columns: minmax(340px, 1fr); }
}
@media (min-width: 992px) {
    .office-reel {
        grid-auto-flow: row;
        grid-template-columns: repeat(4, 1fr);
        overflow: visible;
        }
    .office-reel img { height: 200px; }
}

/* --------------------------------------------------------------------------
   Office picture reel
   Native scroll-snap carousel: swipe on touch, arrows on desktop.
   Scoped with .dhw- prefix so it cannot collide with template rules.
   -------------------------------------------------------------------------- */
.dhw-reel {
    position: relative;
    margin: 30px 0 10px;
    }

.dhw-reel-track {
    display: flex;
    gap: 16px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    padding: 4px 4px 14px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: #5f3a7a #e6dcf0;
    }

.dhw-reel-track::-webkit-scrollbar { height: 8px; }
.dhw-reel-track::-webkit-scrollbar-track { background: #e6dcf0; border-radius: 4px; }
.dhw-reel-track::-webkit-scrollbar-thumb { background: #5f3a7a; border-radius: 4px; }

.dhw-reel-item {
    flex: 0 0 calc((100% - 32px) / 3);
    scroll-snap-align: start;
    margin: 0;
    }

.dhw-reel-item img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    display: block;
    border-radius: 10px;
    box-shadow: 0 2px 10px rgba(74, 58, 92, 0.18);
    }

.dhw-reel-nav {
    position: absolute;
    top: calc(50% - 7px);
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 50%;
    background: #5f3a7a;
    color: #fff;
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
    transition: background 0.3s, transform 0.3s;
    z-index: 2;
    }

.dhw-reel-nav:hover { background: #5a6a3d; transform: translateY(-50%) scale(1.08); }
.dhw-reel-nav:focus-visible { outline: 3px solid #c8a96a; outline-offset: 2px; }
.dhw-reel-prev { left: -14px; }
.dhw-reel-next { right: -14px; }

@media only screen and (max-width: 1000px) {
    .dhw-reel-item { flex-basis: calc((100% - 16px) / 2); }
    }

@media only screen and (max-width: 767px) {
    .dhw-reel-item { flex-basis: 100%; }
    .dhw-reel-nav  { width: 38px; height: 38px; font-size: 17px; }
    .dhw-reel-prev { left: -6px; }
    .dhw-reel-next { right: -6px; }
    }

/* --------------------------------------------------------------------------
   Header fit with 8 main-menu items (Rate Us added).
   nav .content is `grid-template-columns: 1fr auto`; the nowrap menu claims
   column 1, starving the auto column so the phone and Request Appointment
   button wrapped onto two lines. Reclaim width from the menu item padding and
   stop the right-hand block wrapping.
   -------------------------------------------------------------------------- */
@media only screen and (min-width: 1001px) {
    .topmenu ul li a,
    .topmenu ul li span.nav-header {
        padding-left: 11px;
        padding-right: 11px;
        }

    .topmenu ul li.parent a {
        padding-left: 11px;
        padding-right: 16px;
        }

    .top-phone,
    .top-phone a,
    .schedule-now-wrap .overlay-button,
    .schedule-now-wrap .top-button {
        white-space: nowrap;
        }
    }

/* Narrow-desktop band (tablet landscape ~1024px up to 1199px): the full
   8-item menu plus the 32px phone cannot fit the 2-column header grid, so
   scale the header down and keep it off the viewport edges. */
@media only screen and (min-width: 1001px) and (max-width: 1199px) {
    nav .content {
        padding-left: 15px;
        padding-right: 52px;
        column-gap: 10px;
        }

    .top-phone, .top-phone a {
        font-size: 24px;
        }

    .topmenu ul {
        padding-left: 0;
        flex-wrap: wrap;
        }

    .topmenu ul li a,
    .topmenu ul li span.nav-header {
        font-size: 16px;
        padding-left: 8px;
        padding-right: 8px;
        }

    .topmenu ul li.parent a {
        padding-left: 8px;
        padding-right: 14px;
        }

    .top-socials { padding-right: 0; }
    }

/* --------------------------------------------------------------------------
   Chiropractic Video Library
   Native replacement for the /cvl/ iframe: brand-coloured, responsive,
   no jQuery. Scoped with .dhw-vl- so it cannot collide with template rules.
   -------------------------------------------------------------------------- */
.dhw-vl {
    margin: 10px 0 30px;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 14px rgba(74, 58, 92, 0.18);
    }

.dhw-vl-head {
    background: #5f3a7a;
    color: #fff;
    font-size: 20px;
    font-weight: 600;
    padding: 14px 20px;
    }

.dhw-vl-body {
    display: flex;
    align-items: stretch;
    background: #4a2c60;
    }

.dhw-vl-list {
    list-style: none;
    margin: 0;
    padding: 0;
    flex: 0 0 300px;
    max-height: 566px;
    overflow-y: auto;
    background: #4a2c60;
    }

.dhw-vl-item {
    display: block;
    width: 100%;
    text-align: left;
    background: none;
    border: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    color: #efe8f5;
    font-size: 15px;
    line-height: 1.35;
    padding: 12px 18px;
    cursor: pointer;
    transition: background 0.25s, color 0.25s;
    font-family: inherit;
    }

.dhw-vl-item:hover        { background: #6d5588; color: #fff; }
.dhw-vl-item.is-active    { background: #c8a96a; color: #3d2b47; font-weight: 600; }
.dhw-vl-item:focus-visible{ outline: 3px solid #c8a96a; outline-offset: -3px; }

.dhw-vl-player {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #000;
    min-width: 0;
    }

.dhw-vl-player video {
    width: 100%;
    height: 100%;
    max-height: 566px;
    display: block;
    background: #000;
    }

@media only screen and (max-width: 860px) {
    .dhw-vl-body { flex-direction: column; }
    .dhw-vl-list { flex-basis: auto; max-height: 260px; order: 2; }
    .dhw-vl-player { order: 1; }
    .dhw-vl-player video { max-height: 300px; }
    }

/* --------------------------------------------------------------------------
   Change ticket (drferrin.com.docx) - homepage, Our Team, Services,
   Testimonials. Scoped with .dhw- where new markup was added; plain
   template selectors are only overridden where the ticket changes them.
   Palette is the logo's: purple #5f3a7a / #4a2c60, olive #5a6a3d / #8fa35a,
   gold #c8a96a.
   -------------------------------------------------------------------------- */

/* "We Specialize In Treating These Conditions" box - colours from the client's
   mockup: translucent deep logo purple with sage-green square bullets. The
   template's shape, spacing and type are unchanged. */
.slider-overlay {
    background: rgba(78, 46, 98, 0.9);
    }

.overlay-upper-left ul li::before {
    background-color: #959d7b;
    flex: 0 0 auto;
    }

.overlay-upper-left ul li a {
    transition: color 0.25s;
    }

.overlay-upper-left ul li a:hover,
.overlay-upper-left ul li a:focus-visible {
    color: #e3e8cf;
    }

/* "Start Living Pain Free!" welcome block: Dr. Ferrin photo beside the
   homepage text. Replaces the template's baked-in stock background. */
.about-block {
    background: linear-gradient(180deg, #ffffff 0%, #f6f1f9 100%);
    height: auto;
    padding: 80px 25px;
    box-sizing: border-box;
    }

.dhw-welcome {
    max-width: 1250px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
    gap: 70px;
    align-items: center;
    }

.dhw-welcome-photo {
    position: relative;
    margin: 0 18px 18px 0;
    }

.dhw-welcome-photo::before {
    content: '';
    position: absolute;
    inset: 18px -18px -18px 18px;
    border: 3px solid #c8a96a;
    border-radius: 16px;
    }

.dhw-welcome-photo img {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1; /* dr-ferrin-welcome.jpg is cropped square so both crossed arms stay in frame */
    object-fit: cover;
    object-position: top center;
    border-radius: 16px;
    box-shadow: 0 14px 34px rgba(36, 23, 51, 0.22);
    }

.dhw-welcome-text h1,
.dhw-welcome-text h3 {
    color: #5f3a7a;
    font-size: 42px;
    font-family: "Questrial", sans-serif;
    margin: 0 0 18px;
    }

.dhw-welcome-text p {
    color: #3d2b47;
    font-size: 17px;
    line-height: 1.65;
    margin: 0 0 16px;
    }

.dhw-welcome-text p.dhw-welcome-lead {
    font-size: 19px;
    color: #4a3a5c;
    }

.dhw-welcome-points {
    display: grid;
    gap: 18px;
    margin: 26px 0;
    padding: 24px 26px;
    background: #fff;
    border-left: 4px solid #5a6a3d;
    border-radius: 12px;
    box-shadow: 0 6px 20px rgba(74, 58, 92, 0.1);
    }

.dhw-welcome-point {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    }

.dhw-welcome-icon {
    flex: 0 0 46px;
    height: 46px;
    border-radius: 50%;
    background: #5f3a7a;
    color: #c8a96a;
    font-size: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    }

.dhw-welcome-point h4 {
    margin: 2px 0 4px;
    color: #5a6a3d;
    font-family: "Roboto Condensed", sans-serif;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: 0.06em;
    }

.dhw-welcome-text .dhw-welcome-point p {
    margin: 0;
    font-size: 16px;
    line-height: 1.55;
    }

.dhw-welcome-text p.dhw-welcome-cta {
    font-weight: 600;
    color: #5f3a7a;
    margin-bottom: 0;
    }

.dhw-welcome-cta a {
    color: #5f3a7a;
    white-space: nowrap;
    border-bottom: 2px solid #c8a96a;
    }

@media only screen and (max-width: 1150px) {
    .dhw-welcome { gap: 50px; }
    .dhw-welcome-text h1, .dhw-welcome-text h3 { font-size: 36px; }
    }

@media only screen and (max-width: 900px) {
    .about-block { padding: 50px 20px; }
    .dhw-welcome { grid-template-columns: 1fr; gap: 45px; }
    .dhw-welcome-photo { max-width: 420px; width: calc(100% - 18px); margin: 0 auto; }
    .dhw-welcome-text h1, .dhw-welcome-text h3 { text-align: center; }
    }

@media only screen and (max-width: 767px) {
    .dhw-welcome-text h1, .dhw-welcome-text h3 { font-size: 30px; }
    .dhw-welcome-text p, .dhw-welcome-text p.dhw-welcome-lead { font-size: 16px; }
    .dhw-welcome-points { padding: 20px 18px; }
    .dhw-welcome-icon { flex-basis: 40px; height: 40px; font-size: 17px; }
    }

/* Service pages (Spinal Decompression, Neo-Gen, ...): sub-headings and
   the photo float, which the ticket images may supply at any size. */
.inner-pages img.dhw-service-img {
    width: 40%;
    max-width: 420px !important;
    border-radius: 8px;
    }

.dhw-service h3 {
    color: #5f3a7a;
    font-family: "Questrial", sans-serif;
    font-size: 26px;
    font-weight: 700;
    margin: 28px 0 10px;
    }

.dhw-service > h3:first-child { margin-top: 0; }

.dhw-service ul { overflow: hidden; }

.dhw-service li { margin-bottom: 4px; }

@media only screen and (max-width: 730px) {
    .inner-pages img.dhw-service-img { width: 100%; max-width: 100% !important; }
    }

/* Services list: photo in the space right of the two columns. */
table.dhw-services-table { width: 100%; }

table.dhw-services-table td { padding-right: 20px; }

td.dhw-services-photo {
    width: 38%;
    padding-right: 0 !important;
    vertical-align: top;
    }

td.dhw-services-photo img {
    width: 100%;
    display: block;
    border-radius: 10px;
    box-shadow: 0 6px 18px rgba(74, 58, 92, 0.18);
    }

@media only screen and (max-width: 930px) {
    td.dhw-services-photo { width: auto; margin-top: 20px; }
    td.dhw-services-photo img { max-width: 480px; }
    }

/* Our Team - headshot beside each bio. */
.dhw-team-member {
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr);
    gap: 45px;
    align-items: start;
    padding: 10px 0 40px;
    }

.dhw-team-member + .dhw-team-member {
    border-top: 1px solid #e6dcf0;
    padding-top: 40px;
    }

.dhw-team-photo img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    object-position: top center;
    border-radius: 12px;
    border-bottom: 5px solid #c8a96a;
    box-shadow: 0 8px 22px rgba(74, 58, 92, 0.2);
    }

h3.dhw-team-name {
    color: #5f3a7a;
    font-family: "Questrial", sans-serif;
    font-size: 32px;
    margin: 0 0 16px;
    padding-bottom: 12px;
    border-bottom: 2px solid #d8c7e6;
    }

.dhw-team-bio p { line-height: 1.6; margin: 0 0 14px; }

@media only screen and (max-width: 800px) {
    .dhw-team-member { grid-template-columns: 1fr; gap: 25px; }
    .dhw-team-photo { max-width: 300px; width: 100%; margin: 0 auto; }
    h3.dhw-team-name { font-size: 26px; text-align: center; }
    }

/* Testimonials page - featured quote, a uniform card grid and a closing call
   to action. Every card has the same height: long quotes are clamped (only
   once scripts.js has marked the grid .is-enhanced) and open in a dialog.
   Initials badges cycle through the logo colours. */
.dhw-tst blockquote,
.dhw-tst-modal blockquote { margin: 0; }

/* Featured quote */
.dhw-tst-hero {
    position: relative;
    overflow: hidden;
    margin: 0 0 64px;
    padding: 52px 64px 40px 170px;
    border-radius: 24px;
    background:
        radial-gradient(circle at 92% 8%, rgba(200, 169, 106, 0.32) 0, rgba(200, 169, 106, 0) 42%),
        radial-gradient(circle at 0% 100%, rgba(143, 163, 90, 0.22) 0, rgba(143, 163, 90, 0) 40%),
        linear-gradient(135deg, #5f3a7a 0%, #43285a 100%);
    box-shadow: 0 22px 48px rgba(36, 23, 51, 0.3);
    }

.dhw-tst-hero::before {
    content: '\201C';
    position: absolute;
    top: 38px;
    left: 44px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 190px;
    line-height: 1;
    color: #c8a96a;
    }

.dhw-tst-eyebrow {
    display: inline-block;
    margin-bottom: 16px;
    padding: 5px 14px;
    border: 1px solid rgba(200, 169, 106, 0.6);
    border-radius: 30px;
    font-family: "Roboto Condensed", sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #e8d3a2;
    }

.dhw-tst-hero blockquote p {
    margin: 0;
    font-family: "Questrial", sans-serif;
    font-size: 22px;
    line-height: 1.65;
    color: #fff;
    }

.dhw-tst-hero .dhw-tst-person {
    margin-top: 28px;
    padding-top: 22px;
    height: auto;
    border-top-color: rgba(255, 255, 255, 0.2);
    }

.dhw-tst-hero .dhw-tst-name { color: #fff; font-size: 19px; }

/* Section heading */
.dhw-tst-heading {
    margin: 0 0 36px;
    font-family: "Questrial", sans-serif;
    font-size: 34px;
    color: #5f3a7a;
    text-align: center;
    }

.dhw-tst-heading::after {
    content: '';
    display: block;
    width: 60px;
    height: 3px;
    margin: 14px auto 0;
    border-radius: 2px;
    background: #c8a96a;
    }

/* Uniform card grid: 4 x 7 on desktop, 2 x 14 on tablet, 1 column on phones */
.dhw-tst-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
    margin-bottom: 64px;
    }

.dhw-tst-card {
    position: relative;
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 30px 26px 0;
    overflow: hidden;
    background: #fff;
    border: 1px solid #ece4f2;
    border-radius: 18px;
    box-shadow: 0 6px 20px rgba(74, 58, 92, 0.07);
    transition: transform 0.3s, box-shadow 0.3s, border-color 0.3s;
    }

.dhw-tst-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, #5f3a7a 0%, #c8a96a 100%);
    }

.dhw-tst-card:hover {
    transform: translateY(-5px);
    border-color: #dccbe8;
    box-shadow: 0 16px 36px rgba(74, 58, 92, 0.16);
    }

.dhw-tst-mark {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 46px;
    height: 46px;
    margin-bottom: 18px;
    border-radius: 50%;
    background: #f3ecf8;
    }

.dhw-tst-mark::before {
    content: '\201C';
    font-family: Georgia, "Times New Roman", serif;
    font-size: 44px;
    line-height: 1;
    margin-top: 16px;
    color: #c8a96a;
    }

.dhw-tst-text p {
    margin: 0;
    font-size: 16px;
    line-height: 1.65;
    color: #3d2b47;
    }

/* Clamp to six lines and reserve those six lines in every card. */
.dhw-tst-grid.is-enhanced .dhw-tst-text { min-height: calc(16px * 1.65 * 6); }

.dhw-tst-grid.is-enhanced .dhw-tst-text p {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 6;
    line-clamp: 6;
    overflow: hidden;
    }

.dhw-tst-more {
    height: 40px;
    margin-top: auto;
    display: flex;
    align-items: center;
    }

.dhw-tst-more-btn {
    padding: 0;
    border: 0;
    background: none;
    font-family: "Roboto", sans-serif;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: #5f3a7a;
    cursor: pointer;
    }

.dhw-tst-more-btn::after {
    content: '\2192';
    display: inline-block;
    margin-left: 6px;
    transition: transform 0.25s;
    }

.dhw-tst-more-btn:hover { color: #5a6a3d; }
.dhw-tst-more-btn:hover::after { transform: translateX(4px); }

.dhw-tst-more-btn:focus-visible {
    outline: 3px solid #c8a96a;
    outline-offset: 3px;
    border-radius: 3px;
    }

/* Name row - fixed height so every card's divider lines up. */
.dhw-tst-person {
    display: flex;
    align-items: center;
    gap: 12px;
    height: 78px;
    border-top: 1px solid #efe8f4;
    }

.dhw-tst-avatar {
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: "Roboto Condensed", sans-serif;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: #fff;
    box-shadow: 0 4px 10px rgba(36, 23, 51, 0.18);
    }

.dhw-tst-avatar--purple { background: linear-gradient(135deg, #7a4f99 0%, #4a2c60 100%); }
.dhw-tst-avatar--green  { background: linear-gradient(135deg, #7d9150 0%, #4d5c33 100%); }
.dhw-tst-avatar--gold   { background: linear-gradient(135deg, #e0c58e 0%, #b8955a 100%); color: #3d2b47; }

.dhw-tst-who {
    display: flex;
    flex-direction: column;
    min-width: 0;
    line-height: 1.3;
    }

.dhw-tst-name {
    font-size: 16px;
    font-weight: 700;
    color: #5f3a7a;
    }

.dhw-tst-role {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    margin-top: 2px;
    font-size: 13px;
    color: #5a6a3d;
    }

.dhw-tst-hero .dhw-tst-role { color: #e8d3a2; -webkit-line-clamp: unset; line-clamp: none; }

/* Full-story dialog (created by scripts.js) */
.dhw-tst-modal {
    width: calc(100% - 32px);
    max-width: 680px;
    padding: 0;
    border: 0;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 30px 80px rgba(20, 10, 30, 0.45);
    }

.dhw-tst-modal[open] { animation: dhw-tst-pop 0.25s ease-out; }

.dhw-tst-modal::backdrop {
    background: rgba(36, 23, 51, 0.62);
    backdrop-filter: blur(3px);
    }

@keyframes dhw-tst-pop {
    from { opacity: 0; transform: translateY(16px) scale(0.98); }
    to   { opacity: 1; transform: none; }
    }

.dhw-tst-modal-inner {
    position: relative;
    max-height: 85vh;
    overflow: auto;
    padding: 58px 48px 10px;
    }

.dhw-tst-modal-inner::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 5px;
    background: linear-gradient(90deg, #5f3a7a 0%, #c8a96a 100%);
    }

.dhw-tst-modal-inner::after {
    content: '\201C';
    position: absolute;
    top: 14px;
    left: 44px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 72px;
    line-height: 1;
    color: #c8a96a;
    }

.dhw-tst-modal-close {
    position: absolute;
    top: 16px;
    right: 16px;
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 50%;
    background: #f3ecf8;
    color: #5f3a7a;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    transition: background 0.25s, color 0.25s;
    }

.dhw-tst-modal-close:hover { background: #5f3a7a; color: #fff; }

.dhw-tst-modal .dhw-tst-text p {
    font-size: 18px;
    line-height: 1.75;
    }

.dhw-tst-modal .dhw-tst-person { margin-top: 24px; }
.dhw-tst-modal .dhw-tst-role { -webkit-line-clamp: unset; line-clamp: none; }

/* Closing call to action */
.dhw-tst-cta {
    text-align: center;
    padding: 44px 30px;
    border: 1px solid #e6dcf0;
    border-radius: 24px;
    background:
        radial-gradient(circle at 100% 0%, rgba(200, 169, 106, 0.18) 0, rgba(200, 169, 106, 0) 45%),
        linear-gradient(135deg, #f7f2fa 0%, #efe6f5 100%);
    }

.dhw-tst-cta-title {
    margin: 0 0 22px;
    font-family: "Questrial", sans-serif;
    font-size: 30px;
    color: #5f3a7a;
    }

.dhw-tst-cta-buttons {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 15px;
    }

.dhw-tst-cta-buttons a.office-btn {
    flex: 0 1 auto;
    min-width: 230px;
    }

@media only screen and (max-width: 1100px) {
    .dhw-tst-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    }

@media only screen and (max-width: 767px) {
    .dhw-tst-hero { padding: 96px 24px 30px; margin-bottom: 48px; }
    .dhw-tst-hero::before { top: 14px; left: 20px; font-size: 130px; }
    .dhw-tst-eyebrow { position: absolute; top: 34px; right: 20px; margin: 0; font-size: 11px; }
    .dhw-tst-hero blockquote p { font-size: 18px; }
    .dhw-tst-heading { font-size: 26px; }
    .dhw-tst-grid { grid-template-columns: 1fr; gap: 20px; }
    .dhw-tst-modal-inner { padding: 56px 24px 6px; }
    .dhw-tst-modal-inner::after { left: 22px; }
    .dhw-tst-modal .dhw-tst-text p { font-size: 16px; }
    .dhw-tst-cta { padding: 32px 20px; }
    .dhw-tst-cta-title { font-size: 24px; }
    }

/* Header fit with 10 main-menu items (Our Team + Testimonials added).
   The social icons shared grid column 2 with the phone / Request Appointment
   block, so that column was ~225px wide on both rows and the nowrap menu was
   pushed past the viewport. Let the phone block span two narrow columns and
   the menu run under both the logo and the phone. */
@media only screen and (min-width: 1001px) {
    nav .content { grid-template-columns: 1fr auto auto; }
    .inner-logo  { grid-column: 1; grid-row: 1; }
    .top-right   { grid-column: 2 / 4; grid-row: 1; }
    .topmenu     { grid-column: 1 / 3; grid-row: 2; }
    .top-socials { grid-column: 3; grid-row: 2; }
    }

@media only screen and (min-width: 1200px) {
    nav .content {
        max-width: 1200px;
        padding-left: 15px;
        padding-right: 15px;
        }
    }

/* Header socials: X + Google added next to Facebook (3 icons). In row 2 they
   collided with the nowrap 10-item menu, so on desktop move them up into row 1
   beside the phone / Request Appointment block and give the menu the full row. */
@media only screen and (min-width: 1001px) {
    nav .content { grid-template-columns: 1fr auto auto; }
    .inner-logo  { grid-column: 1; grid-row: 1; }
    .top-socials { grid-column: 2; grid-row: 1; align-self: end; padding: 0 0 12px; }
    .top-right   { grid-column: 3; grid-row: 1; align-self: end; padding-bottom: 8px; }
    .topmenu     { grid-column: 1 / 4; grid-row: 2; }
    }

/* Homepage service cards: titles wrap to 1 or 2 lines, so align the cards to
   the top instead of centring them, keeping the images on one line. */
.services-block-boxes { align-items: flex-start; }

/* Our Team - "Meet Our Founders" section below the doctor bios. */
.dhw-founders {
    border-top: 1px solid #e6dcf0;
    padding: 40px 0 20px;
    text-align: center;
    }

h2.dhw-founders-title {
    color: #5f3a7a;
    font-family: "Questrial", sans-serif;
    font-size: 34px;
    margin: 0 auto 18px;
    padding-bottom: 12px;
    border-bottom: 2px solid #d8c7e6;
    display: inline-block;
    }

.dhw-founders p {
    max-width: 860px;
    margin: 0 auto 30px;
    line-height: 1.7;
    }

.dhw-founders-photo { max-width: 900px; margin: 0 auto; }

.dhw-founders-photo img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 12px;
    border-bottom: 5px solid #c8a96a;
    box-shadow: 0 8px 22px rgba(74, 58, 92, 0.2);
    }

@media only screen and (max-width: 800px) {
    h2.dhw-founders-title { font-size: 28px; }
    }

/* Office hours - one row per day (Office page + homepage Our Location). */
.dhw-hours {
    display: grid;
    grid-template-columns: max-content max-content;
    column-gap: 18px;
    row-gap: 8px;
    margin: 6px 0 0;
    }

.dhw-hours dt,
.dhw-hours dd { margin: 0; line-height: 1.5; }

/* Testimonials - photo cards (Sep 2026). The client's patient photos sit in
   their own section above the text grid. Cards use flex-wrap so a short last
   row stays centred; the .dhw-tst-grid class keeps the clamp/dialog script. */
.dhw-tst-grid--photos {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    }

.dhw-tst-grid--photos .dhw-tst-card--photo {
    box-sizing: border-box;
    flex: 0 0 calc((100% - 48px) / 3);
    max-width: calc((100% - 48px) / 3);
    padding-top: 0;
    }

.dhw-tst-card--photo::before { z-index: 1; }

.inner-pages img.dhw-tst-photo,
.dhw-tst-photo {
    display: block;
    width: calc(100% + 52px);
    max-width: none !important;
    height: auto;
    aspect-ratio: 4 / 3;
    margin: 0 -26px 24px;
    object-fit: cover;
    background: #f3ecf8;
    }

.dhw-tst-card--photo .dhw-tst-person { height: 84px; }

/* Photo at the top of the full-story dialog */
.dhw-tst-modal img.dhw-tst-photo {
    width: 100%;
    margin: 0 0 22px;
    border-radius: 14px;
    }

@media only screen and (max-width: 1100px) {
    .dhw-tst-grid--photos .dhw-tst-card--photo {
        flex-basis: calc((100% - 24px) / 2);
        max-width: calc((100% - 24px) / 2);
        }
    }

@media only screen and (max-width: 767px) {
    .dhw-tst-grid--photos .dhw-tst-card--photo {
        flex-basis: 100%;
        max-width: 100%;
        }
    }

/* Homepage H1 (Final SEO review, Sep 2026): the welcome heading is the page's
   H1, with a small location line above "Start Living Pain Free!". */
.dhw-welcome-text h1 { line-height: 1.15; }

.dhw-welcome-kicker {
    display: block;
    margin-bottom: 10px;
    font-family: "Roboto Condensed", sans-serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #5a6a3d;
    }

/* New Patients: the two form buttons (New Patient Form, Notice of Privacy Practices),
   one per line, left-aligned and as wide as the longer label. */
.dhw-intake-cta {
    display: grid;
    justify-content: start;
    gap: 12px;
    }

@media only screen and (max-width: 560px) {
    .dhw-intake-cta { justify-content: stretch; }
    .dhw-intake-cta a.office-btn { white-space: normal; }
    }

/* ------------------------------------------------------------------
   Final SEO ticket #48271 (Sep 2026)
   Headings re-levelled for SEO keep their previous look.
   ------------------------------------------------------------------ */
.dhw-welcome-point h2 {
    margin: 2px 0 4px;
    color: #5a6a3d;
    font-family: "Roboto Condensed", sans-serif;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    line-height: normal;
    }

.dhw-service h2 {
    color: #5f3a7a;
    font-family: "Questrial", sans-serif;
    font-size: 26px;
    font-weight: 700;
    margin: 28px 0 10px;
    }

.dhw-service > h2:first-child { margin-top: 0; }

h2.services-block-title,
h2.our-location-title { line-height: normal; }

/* Blog post pages: the banner repeats the section name; the post title is the H1. */
.inner-pages .page-header .dhw-page-title {
    font-family: "Questrial", sans-serif;
    font-size: 48px;
    color: #5f3a7a;
    text-align: center;
    font-weight: 400;
    position: relative;
    padding: 20px 0;
    margin: 0 auto 20px auto;
    line-height: 1.15;
    }

.inner-pages .page-header .dhw-page-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    margin-left: -35px;
    width: 70px;
    height: 2px;
    background-color: #d8c7e6;
    }

/* Office page: Directions button under the address. */
.dhw-directions { margin-top: 14px; }
.inner-pages a.dhw-directions-btn { display: inline-flex; align-items: center; gap: 8px; }

/* Footer: linked logo, Quick Links menu, click-to-call and social links. */
.logo-footer-link {
    display: inline-block;
    vertical-align: middle;
    }

.logo-footer-link .logo-footer { display: block; }

footer .quick-links-block {
    display: inline-block;
    padding: 30px;
    }

footer .footer-title {
    font-family: "Questrial", sans-serif;
    font-size: 18px;
    font-weight: 400;
    color: #ffffff;
    margin: 0 0 12px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    }

.quick-links-block ul.footer-quick-links {
    columns: 2;
    column-gap: 40px;
    }

.quick-links-block ul.footer-quick-links li a {
    font-size: 17px;
    line-height: 30px;
    }

.bottom-loc-block a.footer-phone { color: #ffffff; }
.bottom-loc-block a.footer-phone:hover { text-decoration: underline; }

.footer-socials {
    display: flex;
    gap: 12px;
    margin-top: 16px;
    }

.footer-socials a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: rgb(255 255 255 / 12%);
    color: #ffffff;
    font-size: 18px;
    transition: background 0.3s;
    }

.footer-socials a:hover,
.footer-socials a:focus-visible { background: #7a4f96; }

@media only screen and (max-width: 767px) {
    .inner-pages .page-header .dhw-page-title { font-size: 32px; }
    footer .quick-links-block,
    .bottom-loc-block { display: block; padding: 15px 20px; }
    .quick-links-block ul.footer-quick-links { column-gap: 24px; }
    .quick-links-block ul.footer-quick-links li a { font-size: 15px; line-height: 28px; }
    footer .footer-title { text-align: center; }
    .quick-links-block ul.footer-quick-links { max-width: 320px; margin: 0 auto; }
    .footer-socials { justify-content: center; }
    }

/* Footer columns: logo, Quick Links and Our Office share one top line. */
footer > .content:first-child {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 30px 70px;
    padding: 45px 15px 30px;
    text-align: left;
    }

footer > .content:first-child .logo-footer { padding: 0; }

footer > .content:first-child .quick-links-block,
footer > .content:first-child .bottom-loc-block {
    display: block;
    padding: 0;
    }

footer .footer-title { line-height: 1.2; margin: 0 0 14px; }

.bottom-loc-block .office {
    font-size: 17px;
    line-height: 30px;
    }

@media only screen and (max-width: 767px) {
    footer > .content:first-child {
        flex-direction: column;
        align-items: center;
        gap: 28px;
        padding: 30px 15px 20px;
        }
    footer > .content:first-child .bottom-loc-block { text-align: center; }
    .bottom-loc-block .office { font-size: 15px; line-height: 26px; }
    }

footer .bottom-loc-block .offices-block { display: block; }

/* Homepage slider box title: styled like the old H3, but not a heading, so the
   page outline starts with the H1 as in the SEO document. */
.overlay-upper-left .overlay-title {
    font-family: "Questrial", sans-serif;
    font-weight: 700;
    font-size: 32px;
    line-height: normal;
    margin: 0 0 15px;
    color: #fff;
    text-align: left;
    padding-top: 0;
    }

@media only screen and (max-width: 1400px) {
    .overlay-upper-left .overlay-title { font-size: 28px; }
    }

@media only screen and (max-width: 1000px) {
    .overlay-upper-left .overlay-title { font-size: 24px; }
    }
