/********** Template CSS **********/
:root {
    --primary: #f2b705;
    --secondary: #1b1b1d;
    --light: #f4f3ef;
    --dark: #0b0b0c;
}

html { scroll-behavior: smooth; scroll-padding-top: 84px; }
body { font-family: "Inter", sans-serif; color: #454549; background: #fff; }
h1, h2, h3, h4, h5, h6, .btn, .navbar { font-family: "Barlow", sans-serif; }
a { text-decoration: none; }
.text-primary { color: var(--primary) !important; }
.bg-primary, .btn-primary { background-color: var(--primary) !important; }
.btn-primary { border-color: var(--primary) !important; color: #0b0b0c !important; }
.btn-primary:hover { background: #ffd044 !important; border-color: #ffd044 !important; transform: translateY(-2px); }
.btn { border-radius: 0; padding: .85rem 1.35rem; font-weight: 700; letter-spacing: .03em; }

.top-strip { background: #050506; color: #aaa; font-size: .78rem; }
.top-strip a { color: #ddd; }
.navbar { min-height: 78px; background: rgba(13,13,14,.98); border-bottom: 1px solid #29292b; }
.navbar-brand img { width: 230px; height: 60px; object-fit: contain; }
.navbar-dark .navbar-nav .nav-link { color: #d8d8d8; padding: 1.8rem .85rem; font-size: .9rem; letter-spacing: .04em; }
.navbar-dark .navbar-nav .nav-link:hover { color: var(--primary); }

.hero { min-height: 670px; position: relative; color: #fff; background: linear-gradient(90deg,rgba(5,5,6,.96) 0%,rgba(5,5,6,.83) 45%,rgba(5,5,6,.28) 100%), url('../img/carousel-bg-1.jpg') center/cover; overflow: hidden; }
.hero::after { content:""; position:absolute; right:-8%; bottom:-38%; width:52%; height:90%; border:1px solid rgba(242,183,5,.2); transform:rotate(-24deg); }
.min-vh-75 { min-height: 670px; }
.eyebrow, .section-label { display:flex; align-items:center; gap:.7rem; color:var(--primary); text-transform:uppercase; letter-spacing:.15em; font:700 .78rem "Barlow",sans-serif; margin-bottom:1.15rem; }
.eyebrow span { display:inline-block; width:34px; height:2px; background:var(--primary); }
.hero h1 { color:#fff; font-size:clamp(3.3rem,7vw,6.6rem); text-transform:uppercase; line-height:.88; letter-spacing:-.035em; max-width:850px; }
.hero h1 em { color:var(--primary); font-style:normal; }
.hero .lead { max-width:650px; color:#d5d5d7; font-size:1.12rem; line-height:1.8; }
.hero-trust { display:flex; align-items:center; gap:1.5rem; }
.hero-trust > div { display:flex; align-items:center; gap:.7rem; }
.hero-trust strong { font:800 2rem "Barlow"; color:#fff; }
.stars { color:var(--primary); letter-spacing:.08em; }
.hero-trust small { color:#bbb; line-height:1.3; }
.hero-trust i { font-size:1.8rem; color:var(--primary); }
.hero-trust .vr { opacity:.25; height:38px; }

.promise { background:var(--primary); color:#111; }
.promise-item { display:flex; align-items:center; gap:1rem; padding:1.25rem 2rem; border-right:1px solid rgba(0,0,0,.18); }
.promise-item:last-child { border:0; }
.promise-item i { font-size:1.8rem; }
.promise-item strong, .promise-item span { display:block; }
.promise-item strong { font:700 1rem "Barlow"; text-transform:uppercase; }
.promise-item span { font-size:.78rem; }

.section-pad { padding:7rem 0; }
.section-label::before { content:""; width:27px; height:2px; background:var(--primary); }
h2 { color:#111; font-size:clamp(2.4rem,4.5vw,4rem); text-transform:uppercase; line-height:.98; letter-spacing:-.025em; }
h2 span { color:#9a9a9d; }
.intro { font-size:1.04rem; line-height:1.85; color:#69696d; }
.photo-stack { position:relative; padding:0 3rem 3rem 0; }
.photo-stack>img { width:100%; height:540px; object-fit:cover; filter:saturate(.7); }
.photo-stack::before { content:""; position:absolute; inset:3rem 0 0 3rem; border:8px solid var(--primary); z-index:-1; }
.rating-card { position:absolute; right:0; bottom:0; width:270px; padding:1.4rem; background:#101011; color:#fff; box-shadow:0 12px 40px rgba(0,0,0,.2); }
.rating-card strong,.rating-card small { display:block; margin-top:.3rem; }
.rating-card small { color:#aaa; }
.check-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin:2rem 0; }
.check-grid i { display:inline-grid; place-items:center; width:24px; height:24px; margin-right:.5rem; color:#111; background:var(--primary); font-size:.7rem; }
.text-link { color:#111; text-transform:uppercase; font:700 .9rem "Barlow"; border-bottom:2px solid var(--primary); padding-bottom:.3rem; }
.text-link i { margin-left:.5rem; }

.services { background:#111113; }
.services h2 { color:#fff; }
.services .intro { color:#a4a4a8; }
.service-card { position:relative; height:100%; padding:2rem; background:#1b1b1d; border:1px solid #2b2b2e; transition:.3s; overflow:hidden; }
.service-card:hover { transform:translateY(-8px); border-color:var(--primary); }
.service-card>span { position:absolute; top:1rem; right:1.2rem; color:#3b3b3e; font:800 3rem "Barlow"; }
.service-card i { position:relative; color:var(--primary); font-size:2.2rem; margin:1rem 0 2.5rem; }
.service-card h3 { color:#fff; text-transform:uppercase; font-size:1.45rem; }
.service-card p { color:#aaa; line-height:1.7; min-height:110px; }
.service-card a { color:var(--primary); text-transform:uppercase; font:700 .75rem "Barlow"; }
.service-note { color:#9b9b9e; margin:2rem 0 0; }
.service-note i { color:var(--primary); }

.reviews { background:#f5f4f0; }
.google-score { display:flex; justify-content:center; align-items:center; gap:.8rem; margin-top:1.5rem; }
.google-score b { font:800 2rem "Barlow"; color:#111; }
.google-score small { color:#777; }
blockquote { height:100%; margin:0; padding:2rem; background:#fff; border-bottom:4px solid transparent; transition:.3s; }
blockquote:hover { border-color:var(--primary); transform:translateY(-5px); }
blockquote p { color:#4f4f53; font-size:.98rem; line-height:1.8; margin:1.2rem 0 2rem; }
blockquote footer { display:flex; flex-direction:column; }
blockquote footer strong { color:#111; font-family:"Barlow"; text-transform:uppercase; }
blockquote footer span { color:#999; font-size:.8rem; }

.appointment { background:linear-gradient(110deg,#e1a800 0%,var(--primary) 48%,#f8c92c 100%); }
.appointment-copy { padding:5rem 3.5rem; background:#171719; color:#bbb; }
.appointment-copy h2 { color:#fff; }
.appointment-copy p { line-height:1.8; }
.appointment-copy a { color:var(--primary); overflow-wrap:anywhere; }
.appointment-form { padding:5rem 4rem; }
.appointment-form label { color:#111; margin-bottom:.4rem; font:700 .8rem "Barlow"; text-transform:uppercase; }
.appointment-form .form-control,.appointment-form .form-select { border:0; border-bottom:2px solid rgba(0,0,0,.3); border-radius:0; background:rgba(255,255,255,.55); min-height:52px; }
.appointment-form textarea.form-control { min-height:120px; }
.appointment-form small { color:#4f3c00; }

.contact-list { margin-top:2rem; }
.contact-list>a,.contact-list>div { display:flex; gap:1rem; align-items:flex-start; padding:1.2rem 0; border-bottom:1px solid #ddd; color:#222; }
.contact-list i { display:grid; place-items:center; width:42px; height:42px; flex:0 0 auto; background:var(--primary); }
.contact-list small { display:block; color:#999; text-transform:uppercase; font-size:.68rem; letter-spacing:.12em; margin-bottom:.15rem; }
.map-card { height:470px; position:relative; background:#ddd; }
.map-card iframe { width:100%; height:100%; border:0; filter:grayscale(1) contrast(1.05); }
.map-card .btn { position:absolute; right:1rem; bottom:1rem; }

.site-footer { background:#0b0b0c; color:#89898d; }
.site-footer img { width:270px; height:95px; object-fit:contain; margin-bottom:1rem; }
.site-footer strong { color:#eee; }
.site-footer p { font-size:.85rem; line-height:1.7; }
.site-footer .col-lg-4>a { color:#ccc; margin-left:1.2rem; font:600 .8rem "Barlow"; text-transform:uppercase; }
.site-footer .col-lg-4>a:hover { color:var(--primary); }
.footer-bottom { border-top:1px solid #252527; padding:1rem 0; font-size:.72rem; }
.footer-bottom a { color:#aaa; }
.back-to-top { display:none; position:fixed; right:24px; bottom:24px; width:48px; height:48px; padding:0; align-items:center; justify-content:center; z-index:99; }

@media(max-width:991.98px){
  .navbar-dark .navbar-nav .nav-link { padding:.7rem 0; }
  .navbar-collapse { padding:1rem 0 1.5rem; }
  .hero,.min-vh-75 { min-height:610px; }
  .promise-item { border-right:0; border-bottom:1px solid rgba(0,0,0,.18); }
  .section-pad { padding:5rem 0; }
  .appointment-copy,.appointment-form { padding:3.5rem 2rem; }
}
@media(max-width:575.98px){
  .top-strip .container { justify-content:center!important; }
  .navbar-brand img { width:160px; }
  .hero h1 { font-size:3.35rem; }
  .hero .lead { font-size:1rem; }
  .hero-trust { align-items:flex-start; gap:.8rem; }
  .hero-trust>div { flex-wrap:wrap; }
  .section-pad { padding:4rem 0; }
  .photo-stack { padding:0 1.5rem 1.5rem 0; }
  .photo-stack>img { height:390px; }
  .rating-card { width:245px; }
  .check-grid { grid-template-columns:1fr; }
  .google-score { flex-wrap:wrap; }
  .appointment-form { padding:3rem 1.25rem; }
  .map-card { height:390px; }
  .site-footer .col-lg-4>a { display:block; margin:.4rem 0; }
}

.fw-medium {
    font-weight: 600 !important;
}

.back-to-top {
    position: fixed;
    display: none;
    right: 45px;
    bottom: 45px;
    z-index: 99;
}


/*** Spinner ***/
#spinner {
    opacity: 0;
    visibility: hidden;
    transition: opacity .5s ease-out, visibility 0s linear .5s;
    z-index: 99999;
}

#spinner.show {
    transition: opacity .5s ease-out, visibility 0s linear 0s;
    visibility: visible;
    opacity: 1;
}


/*** Button ***/
.btn {
    font-weight: 500;
    text-transform: uppercase;
    transition: .5s;
}

.btn.btn-primary,
.btn.btn-secondary {
    color: #FFFFFF;
}

.btn-square {
    width: 38px;
    height: 38px;
}

.btn-sm-square {
    width: 32px;
    height: 32px;
}

.btn-lg-square {
    width: 48px;
    height: 48px;
}

.btn-square,
.btn-sm-square,
.btn-lg-square {
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: normal;
    border-radius: 2px;
}


/*** Navbar ***/
.navbar .dropdown-toggle::after {
    border: none;
    content: "\f107";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    vertical-align: middle;
    margin-left: 8px;
}

.navbar-light .navbar-nav .nav-link {
    margin-right: 30px;
    padding: 25px 0;
    color: #FFFFFF;
    font-size: 15px;
    text-transform: uppercase;
    outline: none;
}

.navbar-light .navbar-nav .nav-link:hover,
.navbar-light .navbar-nav .nav-link.active {
    color: var(--primary);
}

@media (max-width: 991.98px) {
    .navbar-light .navbar-nav .nav-link  {
        margin-right: 0;
        padding: 10px 0;
    }

    .navbar-light .navbar-nav {
        border-top: 1px solid #EEEEEE;
    }
}

.navbar-light .navbar-brand,
.navbar-light a.btn {
    height: 75px;
}

.navbar-light .navbar-nav .nav-link {
    color: var(--dark);
    font-weight: 500;
}

.navbar-light.sticky-top {
    top: -100px;
    transition: .5s;
}

@media (min-width: 992px) {
    .navbar .nav-item .dropdown-menu {
        display: block;
        border: none;
        margin-top: 0;
        top: 150%;
        opacity: 0;
        visibility: hidden;
        transition: .5s;
    }

    .navbar .nav-item:hover .dropdown-menu {
        top: 100%;
        visibility: visible;
        transition: .5s;
        opacity: 1;
    }
}


/*** Header ***/
.carousel-caption {
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, .7);
    z-index: 1;
}

.carousel-control-prev,
.carousel-control-next {
    width: 10%;
}

.carousel-control-prev-icon,
.carousel-control-next-icon {
    width: 3rem;
    height: 3rem;
}

@media (max-width: 768px) {
    #header-carousel .carousel-item {
        position: relative;
        min-height: 450px;
    }
    
    #header-carousel .carousel-item img {
        position: absolute;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
}

.page-header {
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
}

.page-header-inner {
    background: rgba(0, 0, 0, .7);
}

.breadcrumb-item + .breadcrumb-item::before {
    color: var(--light);
}


/*** Facts ***/
.fact {
    background: linear-gradient(rgba(0, 0, 0, .7), rgba(0, 0, 0, .7)), url(../img/carousel-bg-1.jpg);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
}


/*** Service ***/
.service .nav .nav-link {
    background: var(--light);
    transition: .5s;
}

.service .nav .nav-link.active {
    background: var(--primary);
}

.service .nav .nav-link.active h4 {
    color: #FFFFFF !important;
}


/*** Booking ***/
.booking {
    background: linear-gradient(rgba(0, 0, 0, .7), rgba(0, 0, 0, .7)), url(../img/carousel-bg-2.jpg) center center no-repeat;
    background-size: cover;
}

.bootstrap-datetimepicker-widget.bottom {
    top: auto !important;
}

.bootstrap-datetimepicker-widget .table * {
    border-bottom-width: 0px;
}

.bootstrap-datetimepicker-widget .table th {
    font-weight: 500;
}

.bootstrap-datetimepicker-widget.dropdown-menu {
    padding: 10px;
    border-radius: 2px;
}

.bootstrap-datetimepicker-widget table td.active,
.bootstrap-datetimepicker-widget table td.active:hover {
    background: var(--primary);
}

.bootstrap-datetimepicker-widget table td.today::before {
    border-bottom-color: var(--primary);
}


/*** Team ***/
.team-item .team-overlay {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--primary);
    transform: scale(0);
    transition: .5s;
}

.team-item:hover .team-overlay {
    transform: scale(1);
}

.team-item .team-overlay .btn {
    color: var(--primary);
    background: #FFFFFF;
}

.team-item .team-overlay .btn:hover {
    color: #FFFFFF;
    background: var(--secondary)
}


/*** Testimonial ***/
.testimonial-carousel .owl-item .testimonial-text,
.testimonial-carousel .owl-item.center .testimonial-text * {
    transition: .5s;
}

.testimonial-carousel .owl-item.center .testimonial-text {
    background: var(--primary) !important;
}

.testimonial-carousel .owl-item.center .testimonial-text * {
    color: #FFFFFF !important;
}

.testimonial-carousel .owl-dots {
    margin-top: 24px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
}

.testimonial-carousel .owl-dot {
    position: relative;
    display: inline-block;
    margin: 0 5px;
    width: 15px;
    height: 15px;
    border: 1px solid #CCCCCC;
    transition: .5s;
}

.testimonial-carousel .owl-dot.active {
    background: var(--primary);
    border-color: var(--primary);
}


/*** Footer ***/
.footer {
    background: linear-gradient(rgba(0, 0, 0, .9), rgba(0, 0, 0, .9)), url(../img/carousel-bg-1.jpg) center center no-repeat;
    background-size: cover;
}

.footer .btn.btn-social {
    margin-right: 5px;
    width: 35px;
    height: 35px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--light);
    border: 1px solid #FFFFFF;
    border-radius: 35px;
    transition: .3s;
}

.footer .btn.btn-social:hover {
    color: var(--primary);
}

.footer .btn.btn-link {
    display: block;
    margin-bottom: 5px;
    padding: 0;
    text-align: left;
    color: #FFFFFF;
    font-size: 15px;
    font-weight: normal;
    text-transform: capitalize;
    transition: .3s;
}

.footer .btn.btn-link::before {
    position: relative;
    content: "\f105";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    margin-right: 10px;
}

.footer .btn.btn-link:hover {
    letter-spacing: 1px;
    box-shadow: none;
}

.footer .copyright {
    padding: 25px 0;
    font-size: 15px;
    border-top: 1px solid rgba(256, 256, 256, .1);
}

.footer .copyright a {
    color: var(--light);
}

.footer .footer-menu a {
    margin-right: 15px;
    padding-right: 15px;
    border-right: 1px solid rgba(255, 255, 255, .3);
}

.footer .footer-menu a:last-child {
    margin-right: 0;
    padding-right: 0;
    border-right: none;
}
