/*====================================================

FOOTER

====================================================*/

.footer{

background:#2f453b;

color:white;

padding:var(--section-space) 7%;

}

.footer-grid{

display:grid;

grid-template-columns:2fr 1fr 1fr 1fr;

gap:35px;

margin-bottom:40px;

}

.footer h3{

color:white;

margin-bottom:18px;

}

.footer ul{

list-style:none;

padding:0;

}

.footer li{

margin-bottom:12px;

}

.footer a{

color:white;

text-decoration:none;

}

.footer hr{

border:none;

border-top:1px solid rgba(255,255,255,.15);

margin:40px 0 25px;

}

.copyright{

text-align:center;

opacity:.8;

}

@media(max-width:992px){

.footer-grid{

grid-template-columns:1fr;

text-align:center;

}

}


/*====================================================

section-devider

====================================================*/
.section-divider{
    width:100%;
    line-height:0;
    overflow:hidden;
}

.section-divider svg{
    display:block;
    width:100%;
    height:70px;
}

/*====================================================

HERO

====================================================*/

.hero{

padding:90px 7% 80px;
padding-top:140px;

background:linear-gradient(

180deg,

#ffffff,

#f8f6f2

);

overflow:hidden;

position:relative;

}

.hero::before{

content:"";

position:absolute;

right:-220px;

top:-150px;

width:700px;

height:700px;

border-radius:50%;

background:radial-gradient(

rgba(79,107,91,.15),

transparent 70%

);

}

.hero-container{

max-width:1400px;

margin:0 auto;

display:grid;

grid-template-columns:1.05fr .95fr;

gap:80px;

align-items:center;

position:relative;

z-index:2;

}

.hero-subtitle{

display:inline-block;

letter-spacing:3px;

font-size:13px;

font-weight:700;

color:var(--primary);

margin-bottom:20px;

}

.hero h1{

margin-bottom:30px;

max-width:650px;

font-size:clamp(2.8rem,6vw,4.8rem);

}

.hero p{

font-size:1.15rem;

max-width:620px;

margin-bottom:45px;

}

.hero-image{

display:flex;

justify-content:center;

align-items:center;

}

.hero-image img{

width:100%;

max-width:700px;

animation:float 7s ease-in-out infinite;

filter:drop-shadow(

0 45px 60px rgba(0,0,0,.14)

);

}

.hero-buttons{

display:flex;

flex-wrap:wrap;

gap:18px;

margin-bottom:45px;

}

.hero-trust{

display:flex;

gap:35px;

flex-wrap:wrap;

}


/* trust item */
.trust-item{

background:#fff;

padding:22px 28px;

border-radius:22px;

box-shadow:var(--shadow-sm);

min-width:170px;

}

.trust-item strong{

display:block;

font-size:2rem;

color:var(--primary);

margin-bottom:5px;

}

.trust-item span{

font-size:.95rem;

}

/*====================================================

soft section background alteration
====================================================*/

section:nth-of-type(even){
    background:var(--bg-soft);
}

section:nth-of-type(odd){
    background:var(--bg);
}

/*====================================================

TRUST STRIP

====================================================*/

.trust-strip{

padding:80px 7%;

background:#ffffff;

}

.trust-grid{

max-width:1400px;

margin:0 auto;

display:grid;

grid-template-columns:repeat(5,1fr);

gap:35px;

}

.trust-card{

display:flex;

flex-direction:column;

align-items:center;

justify-content:center;

text-align:center;

text-decoration:none;

color:inherit;

background:#fff;

border-radius:24px;

padding:35px 25px;

box-shadow:var(--shadow-sm);

border:1px solid rgba(79,107,91,.08);

transition:.35s ease;

position:relative;

overflow:hidden;

}

.trust-card:hover{

transform:translateY(-8px);

box-shadow:var(--shadow);

}

.trust-card img{

width:46px;

height:46px;

margin-bottom:22px;

}

.trust-card h3{

margin-bottom:10px;

font-size:1.5rem;

}

.trust-card p{

font-size:.95rem;

margin:0;

color:var(--muted);

}

/*====================================================

WHY CHOOSE US

====================================================*/

.why-us{

padding:var(--section-space) 7%;

position:relative;

}

.why-grid{

max-width:1400px;

margin:0 auto;

display:grid;

grid-template-columns:.95fr 1.05fr;

gap:80px;

align-items:center;

}

.why-image{

position:relative;

}

.why-image img{

width:100%;

border-radius:32px;

box-shadow:var(--shadow-lg);

}

.section-label{

display:inline-block;

font-size:13px;

font-weight:700;

letter-spacing:3px;

color:var(--primary);

margin-bottom:20px;

}
.section-subtitle{

    max-width:760px;

    margin:0 auto 55px;

    text-align:center;

}

.section-subtitle .section-label{

    display:block;

    margin-bottom:18px;

}

.section-subtitle h2{

    margin-bottom:22px;

}

.section-subtitle p{

    max-width:720px;

    margin:0 auto;

}

.why-content h2{

margin-bottom:30px;

max-width:700px;

}

.why-content p{

font-size:1.08rem;

margin-bottom:22px;

}

.why-features{

margin:45px 0;

display:grid;

grid-template-columns:1fr 1fr;

gap:18px;

}

.feature{

display:flex;

align-items:center;

gap:15px;

background:#fff;

padding:20px;
border-radius:20px;

box-shadow:var(--shadow-sm);

border:1px solid rgba(79,107,91,.08);

}

.feature img{

width:22px;

height:22px;

color:var(--primary);

flex-shrink:0;

}

.feature span{

font-weight:500;

}

.why-buttons{

display:flex;

gap:18px;

flex-wrap:wrap;

margin-top:40px;

}

.why-image::before{

content:"";

position:absolute;

width:220px;

height:220px;

background:rgba(79,107,91,.08);

border-radius:50%;

top:-40px;

left:-40px;

z-index:-1;

}

.why-image::after{

content:"";

position:absolute;

width:160px;

height:160px;

border:2px dashed rgba(79,107,91,.18);

border-radius:50%;

bottom:-30px;

right:-30px;

z-index:-1;

}

/*====================================================
ABOUT
====================================================*/

.about{

    padding:var(--section-space) 7%;
    background:#ffffff;

}

.about .container{

    max-width:1400px;
    margin:0 auto;

}

/*====================================================

CONDITIONS

====================================================*/

.conditions{

padding:var(--section-space) 7%;

background:var(--bg-soft);

}

.conditions-grid{

display:grid;

grid-template-columns:repeat(3,1fr);

gap:35px;

margin-top:55px;

}

.condition-card{

background:#fff;

padding:40px;

border-radius:24px;

box-shadow:var(--shadow-sm);

border:1px solid rgba(79,107,91,.08);

transition:.35s;

position:relative;

overflow:hidden;

}

.condition-card::before{

content:"";

position:absolute;

left:0;

top:0;

width:6px;

height:100%;

background:linear-gradient(

180deg,

var(--primary-light),

var(--primary)

);

}

.condition-card:hover{

transform:translateY(-6px);

box-shadow:var(--shadow);

}

.condition-card img{

width:56px;

height:56px;

margin-bottom:22px;

}

.condition-card h3{

margin-bottom:15px;

font-size:1.6rem;

}

.condition-card p{

margin:0;

color:var(--muted);

line-height:1.7;

}


/*====================================================

FAMILY CARE

====================================================*/

.family-care{

padding:var(--section-space) 7%;

background:#fff;

position:relative;

overflow:hidden;

}

.family-care::before{

content:"";

position:absolute;

left:-250px;

top:-100px;

width:550px;

height:550px;

border-radius:50%;

background:radial-gradient(

rgba(79,107,91,.08),

transparent 70%

);

}

.family-grid{

max-width:1400px;

margin:0 auto;

display:grid;

grid-template-columns:.95fr 1.05fr;

gap:80px;

align-items:center;

position:relative;

z-index:2;

}

.family-image img{

width:100%;

display:block;

border-radius:32px;

box-shadow:var(--shadow-lg);

transition:.5s;

}

.family-image img:hover{

transform:scale(1.02);

}

.family-content h2{

margin-bottom:30px;

}

.family-content p{

font-size:1.08rem;

line-height:1.9;

margin-bottom:20px;

}

.family-list{

margin:45px 0;

display:grid;

grid-template-columns:repeat(2,1fr);

gap:18px;

}

.family-list div{

display:flex;

align-items:center;

gap:15px;

padding:18px;

background:#fff;

border-radius:18px;

box-shadow:var(--shadow-sm);

transition:.35s;

}

.family-list div:hover{

transform:translateY(-4px);

box-shadow:var(--shadow);

}

.family-list img{

width:22px;

height:22px;

}

.family-buttons{

margin-top:45px;

}

/*====================================================

MEET YOUR CHIROPRACTOR

====================================================*/

.about-doctor{

padding:var(--section-space) 7%;

background:#FDFCF9;

}

.doctor-grid{

display:grid;

grid-template-columns:repeat(4,1fr);

gap:35px;

margin-top:70px;

}

.doctor-card{

background:#fff;

padding:40px;

border-radius:24px;

box-shadow:var(--shadow-sm);

transition:.35s;

border:1px solid rgba(79,107,91,.08);

}

.doctor-card:hover{

transform:translateY(-8px);

box-shadow:var(--shadow);

}

.doctor-icon{

width:80px;

height:80px;

background:rgba(79,107,91,.08);

border-radius:50%;

display:flex;

justify-content:center;

align-items:center;

margin-bottom:25px;

}

.doctor-icon img{

width:42px;

height:42px;

}

.doctor-card h3{

margin-bottom:18px;

}

.doctor-philosophy{

margin-top:90px;

text-align:center;

max-width:900px;

margin-left:auto;

margin-right:auto;

}

.doctor-philosophy blockquote{

font-family:'Cormorant Garamond',serif;

font-size:2.1rem;

line-height:1.4;

font-style:italic;

color:var(--heading);

margin-bottom:30px;

}

.doctor-philosophy p{

font-weight:700;

letter-spacing:2px;

color:var(--primary);

}

/*====================================================

PATIENT JOURNEY

====================================================*/

.patient-journey{

padding:var(--section-space) 7%;

background:#F8F6F2;

}

.journey-grid{

display:grid;

grid-template-columns:repeat(5,1fr);

gap:35px;

margin-top:80px;

}

/*====================================================

JOURNEY CARDS

====================================================*/

.journey-card{

display:block;

text-decoration:none;

color:inherit;

background:#fff;

border-radius:24px;

padding:50px 40px;

transition:.35s;

box-shadow:var(--shadow-sm);

cursor:pointer;

}

.journey-card:hover{

transform:translateY(-8px);

box-shadow:var(--shadow);

}



.journey-number{

position:absolute;

top:20px;

right:20px;

font-size:.8rem;

font-weight:700;

letter-spacing:2px;

color:rgba(79,107,91,.35);

}

.journey-card img{

width:52px;

height:52px;

margin:15px auto 25px;

}

.journey-card h3{

margin-bottom:15px;

}

.journey-card p{

font-size:.95rem;

line-height:1.8;

}

.journey-cta{

margin-top:90px;

padding:60px;

border-radius:30px;

background:linear-gradient(
135deg,
var(--primary),
var(--primary-dark)
);

text-align:center;

color:white;

}

.journey-cta h3{

color:white;

margin-bottom:30px;

font-size:2rem;

}

/*====================================================

LOCATIONS

====================================================*/

.locations{

padding:var(--section-space) 7%;

background:#ffffff;

}

.locations-grid{

display:grid;

grid-template-columns:repeat(3,1fr);

gap:35px;

margin-top:55px;

}

.location-card{

background:#fff;

border-radius:24px;

padding:35px;

box-shadow:var(--shadow-sm);

border:1px solid rgba(79,107,91,.08);

transition:.35s;

display:flex;

flex-direction:column;

}

.location-card:hover{

transform:translateY(-8px);

box-shadow:var(--shadow);

}

.featured{

grid-column:span 3;

display:grid;

grid-template-columns:1.2fr .8fr;

gap:35px;

background:linear-gradient(

135deg,

#ffffff,

#f7f4ee

);

}

.location-header{

display:flex;

align-items:center;

gap:15px;

margin-bottom:20px;

}

.location-header img{

width:38px;

height:38px;

}

.location-badge{

display:inline-block;

padding:8px 16px;

border-radius:999px;

background:var(--primary);

color:white;

font-size:.85rem;

font-weight:600;

margin-bottom:20px;

}

.location-details{

display:grid;

gap:15px;

margin:25px 0;

}

.location-details div{

display:flex;

align-items:center;

gap:15px;

}

.location-details img{

width:20px;

height:20px;

}

.location-buttons{

display:flex;

gap:15px;

margin-top:auto;

flex-wrap:wrap;

}

/*====================================================

REVIEWS + BOOKING

====================================================*/

.booking-review{

padding:var(--section-space) 7%;

background:#F8F6F2;

}

.booking-review-grid{

display:grid;

grid-template-columns:1fr 1fr;

gap:80px;

align-items:start;

}

.review-side,

.booking-side{

background:#fff;

padding:45px;

border-radius:32px;

box-shadow:var(--shadow);

}

.review-buttons{

margin-top:35px;

}

.booking-side form{

display:grid;

gap:18px;

margin-top:35px;

}

.booking-side input,

.booking-side select,

.booking-side textarea{

padding:18px;

border-radius:16px;

border:1px solid #ddd;

font-size:16px;

font-family:inherit;

transition:.3s;

}

.booking-side input:focus,

.booking-side select:focus,

.booking-side textarea:focus{

outline:none;

border-color:var(--primary);

box-shadow:var(--shadow-sm);

}

.booking-side button{

justify-content:center;

margin-top:10px;

}

/*====================================================

GOOGLE REVIEWS

====================================================*/

.google-review-widget{

margin-top:35px;

min-height:320px;

width:100%;

display:flex;

justify-content:center;

align-items:center;

overflow:hidden;

}



/*====================================================

FAQ

====================================================*/

.faq-section{

padding:var(--section-space) 7%;

background:#fff;

}

.faq{

max-width:900px;

margin:70px auto 0;

}

.faq-item{

margin-bottom:18px;

border-radius:22px;

overflow:hidden;

background:#fff;

box-shadow:var(--shadow-sm);

border:1px solid rgba(79,107,91,.08);

}

.faq-question{

width:100%;

padding:25px 30px;

display:flex;

justify-content:space-between;

align-items:center;

background:none;

border:none;

cursor:pointer;

font-size:1.05rem;

font-weight:600;

text-align:left;

}

.faq-question span{

font-size:1.8rem;

color:var(--primary);

transition:.3s;

}

.faq-answer{

display:none;

padding:0 30px 25px;

line-height:1.8;

color:var(--muted);

}

.faq-item.active .faq-answer{

display:block;

}

.faq-item.active .faq-question span{

transform:rotate(45deg);

}

/*====================================================

HEALTH RESOURCES

====================================================*/

.resources{

padding:var(--section-space) 7%;

background:#F8F6F2;

}

.resources-grid{

display:grid;

grid-template-columns:repeat(3,1fr);

gap:35px;

margin-top:70px;

}

.resource-card{

background:#fff;

padding:40px;

border-radius:24px;

box-shadow:var(--shadow-sm);

transition:.35s;

display:flex;

flex-direction:column;

}

.resource-card:hover{

transform:translateY(-6px);

box-shadow:var(--shadow);

}

.resource-card img{

width:55px;

height:55px;

margin-bottom:25px;

}

.resource-card h3{

margin-bottom:20px;

}

.resource-card p{

flex:1;

margin-bottom:25px;

line-height:1.8;

}

.resource-card a{

font-weight:700;

color:var(--primary);

text-decoration:none;

}

.resource-card a:hover{

color:var(--primary-dark);

}


/*====================================================

LOCATION MAPS

====================================================*/

.location-map{

margin:25px 0;

border-radius:20px;

overflow:hidden;

box-shadow:var(--shadow-sm);

}

.location-map iframe{

display:block;

width:100%;

height:220px;

border:0;

transition:.3s;

}

.location-card:hover .location-map iframe{

transform:scale(1.01);

}
/*====================================================

LOCATION INFO

====================================================*/

.location-info{

display:grid;

gap:15px;

margin:25px 0;

}

.location-info div{

display:flex;

align-items:center;

gap:15px;

font-weight:500;

}

.location-info img{

width:20px;

height:20px;

opacity:.9;

}

/*====================================================

LOCATION HEADER

====================================================*/

.location-header{

display:flex;

align-items:center;

gap:15px;

margin-bottom:18px;

}

.location-header img{

width:24px;

height:24px;

}

.location-header h3{

margin:0;

}

.location-badge{

display:inline-block;

padding:7px 16px;

background:rgba(74,106,90,.12);

color:var(--primary);

border-radius:999px;

font-weight:600;

margin-bottom:18px;

}

.location-description{

margin-bottom:25px;

color:var(--text);

}

/*====================================================

LOCATION INFO

====================================================*/

.location-info{

display:grid;

gap:15px;

margin:25px 0;

}

.location-info div{

display:flex;

align-items:center;

gap:15px;

}

.location-info img{

width:18px;

height:18px;

flex-shrink:0;

}

/*====================================================

GOOGLE REVIEWS

====================================================*/

.google-review-widget{

margin-top:40px;

min-height:360px;

display:flex;

justify-content:center;

align-items:center;

}

.review-actions{

margin-top:40px;

text-align:center;

}
.reviews-widget{

    width:100%;

    min-height:420px;

    margin:50px auto;

}



/*=========================================
Anchor offset
=========================================*/

section[id]{

    scroll-margin-top:80px;

}