/* Vaastu Mahajeevan — modern responsive landing page */

:root {
    --maroon:#68100f;
    --maroon-dark:#3f0808;
    --maroon-soft:#842b27;
    --gold:#d9bd8a;
    --gold-light:#f0dfbd;
    --ink:#24211f;
    --muted:#706b66;
    --cream:#fbf8f2;
    --line:#e8e0d5;
    --white:#fff;
    --heading:'Manrope',sans-serif;
    --body:'DM Sans',sans-serif;
    --serif:'Playfair Display',serif
}
* {
    box-sizing:border-box
}
html {
    scroll-behavior:smooth;
    scroll-padding-top:95px
}
body {
    margin:0;
    font-family:var(--body);
    color:var(--ink);
    font-size:15px;
    line-height:1.75;
    overflow-x:hidden
}
img {
    max-width:100%;
    display:block
}

a {
    text-decoration:none;
    color:inherit;
    transition:all .25s ease
}
button,input,select,textarea {
    font:inherit
}

.container {
    max-width:1190px
}

.top-strip {
    background:#2f0908;
    color:#f4e8d6;
    font-size:12px;
    padding:8px 0;
    letter-spacing:.01em
}

.top-contact,.socials {
    display:flex;
    align-items:center;
    gap:22px
}

.top-contact a,.socials a {
    opacity:.9
}

.top-contact a:hover,.socials a:hover {
    opacity:1;
    color:var(--gold)
}

.top-contact i {
    margin-right:7px;
    color:var(--gold)
}

.socials {
    gap:13px
}

.socials span {
    opacity:.7;
    margin-right:4px
}

.socials i {
    font-size:14px
}

.site-header {
    position:sticky;
    top:0;
    z-index:1000;
    background:rgba(255,255,255,.97);
    box-shadow:0 5px 25px #1b0c0c0b;
    transition:box-shadow .3s,background .3s
}

.site-header.scrolled {
    box-shadow:0 8px 30px #1b0c0c18;
    background:#fff
}

.navbar {
    padding:10px 0;
    min-height:76px
}

.navbar-brand img {
    width:165px;
    max-height:55px;
    object-fit:contain;
    object-position:left center
}

.nav-link {
    font-family:var(--heading);
    font-size:12px;
    font-weight:700;
    color:var(--ink)!important;
    padding:12px 11px!important;
    position:relative
}

.nav-link:after {
    content:"";
    position:absolute;
    left:11px;
    right:calc(100% - 11px);
    bottom:5px;
    height:2px;
    background:var(--maroon);
    transition:right .25s
}

.nav-link:hover:after,.nav-link.active:after {
    right:11px
}

.btn {
    border-radius:2px;
    padding:12px 22px;
    font-size:12px;
    letter-spacing:.035em;
    text-transform:uppercase;
    font-weight:800;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    transition:transform .25s,box-shadow .25s,background .25s
}

.btn:hover {
    transform:translateY(-3px);
    box-shadow:0 10px 25px #23060520
}

.btn-gold {
    background:var(--gold);
    color:#3e2119;
    border:1px solid var(--gold)
}

.btn-gold:hover {
    background:#ebd7b1;
    color:#3e2119;
    border-color:#ebd7b1
}

.btn-maroon {
    background:var(--maroon);
    color:#fff;
    border:1px solid var(--maroon)
}

.btn-maroon:hover {
    background:var(--maroon-dark);
    color:#fff;
    border-color:var(--maroon-dark)
}

.nav-cta {
    padding:11px 16px;
    font-size:10px
}

.hero-section {
    position:relative;
    isolation:isolate;
    overflow:hidden;
    background:radial-gradient(ellipse at 78% 35%,#8c3b1f 0,#59110e 40%,#320706 100%);
    color:#fff;
    min-height:620px;
    padding:76px 0 0
}

.homepage-hero-controls {
    position: absolute;
    z-index: 4;
    right: 10px;
    bottom: 10px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.homepage-hero-control {
    display: grid;
    width: 42px;
    height: 42px;
    padding: 0;
    place-items: center;
    border: 1px solid rgba(240, 223, 189, .78);
    border-radius: 50%;
    color: #f0dfbd;
    background: rgba(63, 8, 8, .82);
    box-shadow: 0 8px 24px rgba(25, 4, 4, .3);
    backdrop-filter: blur(8px);
    cursor: pointer;
    transition: color .2s ease, background .2s ease, border-color .2s ease, transform .2s ease;
}

.homepage-hero-control i {
    font-size: 15px;
    line-height: 1;
}

.homepage-hero-indicators {
    position: static;
    display: flex;
    align-items: center;
    gap: 6px;
    width: auto;
    margin: 0;
    padding: 0;
    z-index: auto;
}

.homepage-hero-indicators .homepage-hero-indicator {
    flex: 0 0 auto;
    width: 8px;
    height: 8px;
    margin: 0;
    padding: 0;
    border: 0;
    border-top: 0;
    border-bottom: 0;
    border-radius: 50%;
    background: rgba(240, 223, 189, .55);
    text-indent: 0;
    cursor: pointer;
    transition: background .2s ease, transform .2s ease;
}

.homepage-hero-indicators .homepage-hero-indicator.active {
    background: #f0dfbd;
    transform: scale(1.25);
}

.homepage-hero-control:hover {
    transform: translateY(-2px);
    border-color: #f0dfbd;
    color: #3f0808;
    background: #f0dfbd;
}

.homepage-hero-control:focus-visible {
    outline: 3px solid #fff;
    outline-offset: 3px;
}

.hero-pattern {
    position:absolute;
    inset:0;
    border-radius:5px;
    z-index:-1;
    opacity:.13;
    background-image:radial-gradient(circle at center,transparent 0 32%,#d8b16d 32.4% 33%,transparent 33.4% 43%,#d8b16d 43.4% 44%,transparent 44.4%),repeating-conic-gradient(from 0deg at 50% 50%,transparent 0deg 14deg,#d9bd8a 15deg 16deg,transparent 17deg 30deg);
    background-size:560px 560px,600px 600px;
    background-position:80% 40%;
    mask-image:linear-gradient(90deg,transparent,#000)
}

.hero-content {
    display:grid;
    grid-template-columns:1.05fr .8fr;
    gap:70px;
    align-items:center;
    padding-bottom:75px
}

.hero-copy {
    padding:10px 0 30px
}

.eyebrow {
    display:inline-flex;
    align-items:center;
    gap:10px;
    color:#8e4b3e;
    text-transform:uppercase;
    letter-spacing:.16em;
    font-size:10px;
    font-weight:800;
    margin-bottom:18px
}

.eyebrow span {
    width:25px;
    height:1px;
    background:currentColor
}

.eyebrow-light {
    color:var(--gold-light)
}
h1,h2,h3,h4,p {
    margin-top:0
}

.hero-section h1 {
    font-family:var(--serif);
    font-size:clamp(42px,5vw,67px);
    line-height:1.12;
    letter-spacing:-.03em;
    font-weight:600;
    max-width:640px;
    margin-bottom:22px
}

.hero-section h1 em {
    display:block;
    color:var(--gold);
    font-style:normal
}

.hero-copy>p {
    max-width:520px;
    font-size:17px;
    color:#f4e8e2;
    line-height:1.8;
    margin-bottom:30px
}

.hero-actions {
    display:flex;
    align-items:center;
    gap:25px;
    flex-wrap:wrap
}

.text-link-light {
    color:#fff;
    font-size:12px;
    font-weight:700;
    border-bottom:1px solid #ffffff60;
    padding-bottom:5px
}

.text-link-light i {
    margin-left:8px;
    color:var(--gold)
}

.hero-image-wrap {
    position:relative;
    display:grid;
    place-items:center;
    aspect-ratio:1;
    padding:28px;
    max-width:460px;
    justify-self:end;
    width:100%;
    perspective:1100px;
    transform-style:preserve-3d
}

.hero-orbit {
    position:absolute;
    inset:3px;
    border:1px solid #e8ca8b70;
    border-radius:50%;
    animation:hero-orbit-spin 34s linear infinite;
    pointer-events:none
}

.hero-orbit:before,.hero-orbit:after {
    content:"";
    position:absolute;
    width:9px;
    height:9px;
    border-radius:50%;
    background:var(--gold-light);
    box-shadow:0 0 18px #f0dfbd9c
}

.hero-orbit:before {
    top:17%;
    left:10%
}

.hero-orbit:after {
    right:7%;
    bottom:24%;
    width:6px;
    height:6px;
    background:#fff
}

.hero-orbit-planet {
    position:absolute;
    z-index:2;
    top:10%;
    right:9%;
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    border:1px solid #f0dfbd9c;
    border-radius:50%;
    background:linear-gradient(145deg,#f0dfbd,#c99c5a);
    color:var(--maroon-dark);
    box-shadow:0 8px 26px #2106054d;
    animation:hero-planet-float 4.5s ease-in-out infinite;
    pointer-events:none
}

.hero-image {
    position:relative;
    z-index:1;
    width:100%;
    height:auto;
    aspect-ratio:1;
    overflow:hidden;
    border-radius:50%;
    border:2px solid #e8ca8b9c;
    box-shadow:0 22px 60px #16040352;
    transform-style:preserve-3d;
    transition:transform .55s cubic-bezier(.2,.7,.2,1),box-shadow .45s ease
}

.hero-image:after {
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(0deg,#31080735,transparent 60%)
}

.hero-image img {
    height:100%;
    width:100%;
    object-fit:cover;
    object-position:center 22%;
    transition:transform .7s cubic-bezier(.2,.7,.2,1)
}

@keyframes hero-orbit-spin {
    to {
        transform:rotate(360deg)
    }
}

@keyframes hero-planet-float {
    0%,100% {
        transform:translate3d(0,0,18px)
    }
    50% {
        transform:translate3d(0,-10px,30px)
    }
}

@media(hover:hover) {
    .hero-image-wrap:hover .hero-image {
        transform:rotateY(-7deg) rotateX(4deg) scale(1.025);
        box-shadow:0 30px 75px #16040370
    }

    .hero-image-wrap:hover .hero-image img {
        transform:scale(1.06)
    }

    .hero-image-wrap:hover .hero-stamp {
        transform:translateY(-5px)
    }
}

.hero-stamp {
    position:absolute;
    z-index:3;
    bottom:7%;
    left:0;
    background:var(--gold);
    color:#3d2118;
    display:flex;
    align-items:center;
    gap:13px;
    padding:17px 23px;
    border:1px solid #fff4dc;
    border-radius:8px;
    box-shadow:0 12px 35px #18050445;
    transition:transform .35s ease
}

.stamp-icon {
    font-size:28px
}

.hero-stamp strong,.hero-stamp small {
    display:block;
    line-height:1.4
}

.hero-stamp strong {
    font-family:var(--heading);
    font-size:16px
}

.hero-stamp small {
    font-size:11px
}

.hero-bottom {
    background:#270706a6;
    border-top:1px solid #d9bd8a75
}

.hero-feature {
    display:flex;
    align-items:center;
    gap:17px;
    padding:23px 22px;
    border-right:1px solid #ffffff17
}

.hero-feature:last-child {
    border:0
}

.hero-feature>i {
    font-size:25px;
    color:var(--gold)
}

.hero-feature strong,.hero-feature span {
    display:block
}

.hero-feature strong {
    font-family:var(--heading);
    font-size:12px;
    margin-bottom:2px
}

.hero-feature span {
    font-size:11px;
    color:#d7c5bc
}

.section-pad {
    padding:100px 0
}

.section-pad-sm {
    padding:72px 0
}

.about-section {
    background:#fff
}

.about-section h2,.intro-section h2,.section-heading h2,.expert-section h2,.video-section h2 {
    font-family:var(--serif);
    font-size:clamp(34px,3.8vw,49px);
    line-height:1.2;
    letter-spacing:-.025em;
    margin-bottom:24px
}

.about-section h2 span,.intro-section h2 span,.section-heading h2 span,.expert-section h2 span,.video-section h2 span {
    color:var(--maroon)
}

.lead-copy {
    font-size:18px;
    line-height:1.7;
    color:var(--muted)
}

.about-section p:not(.lead-copy),.intro-section p,.expert-section p,.video-section p {
    color:var(--muted);
    font-size:14px;
    line-height:1.9
}

.about-visual {
    position:relative;
    max-width:490px;
    margin-left:auto;
    padding:0 24px 28px 0
}

.about-visual>img {
    width:100%;
    height:480px;
    object-fit:cover;
    object-position:center 20%;
    border-radius:3px
}

.about-note {
    position:absolute;
    left:-55px;
    bottom:0;
    width:250px;
    padding:22px 25px;
    background:var(--maroon);
    color:#fff;
    box-shadow:0 15px 45px #3d08082b
}

.about-note i {
    color:var(--gold);
    font-size:26px
}

.about-note p {
    font-family:var(--serif);
    font-size:18px!important;
    line-height:1.5!important;
    color:#fff!important;
    margin:6px 0 10px!important
}

.about-note span {
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.12em;
    color:var(--gold)
}

.decor-ring {
    position:absolute;
    width:120px;
    height:120px;
    border:1px solid var(--gold);
    border-radius:50%;
    right:-25px;
    top:-25px;
    z-index:-1
}

.intro-section {
    background:var(--cream)
}

.image-frame {
    position:relative;
    padding:0 35px 35px 0
}

.image-frame:after {
    content:"";
    position:absolute;
    right:0;
    bottom:0;
    width:60%;
    height:70%;
    background:#e8d4b0;
    z-index:0
}

.image-frame img {
    position:relative;
    z-index:1;
    width:100%;
    height:380px;
    object-fit:cover
}

.image-caption {
    position:absolute;
    z-index:2;
    right:0;
    bottom:0;
    background:var(--maroon);
    color:#fff;
    padding:17px 22px;
    font-family:var(--serif);
    font-size:14px;
    max-width:230px
}

.text-link {
    display:inline-flex;
    align-items:center;
    gap:10px;
    color:var(--maroon);
    font-size:12px;
    text-transform:uppercase;
    font-weight:800;
    letter-spacing:.06em;
    border-bottom:1px solid #68100f55;
    padding-bottom:7px;
    margin-top:8px
}

.text-link:hover {
    gap:17px
}

.services-section {
    background:#fff
}

.section-heading {
    max-width:690px;
    margin:0 auto 45px
}

.section-heading .eyebrow {
    margin-bottom:12px
}

.section-heading h2 {
    margin-bottom:12px
}

.section-heading p {
    font-size:14px;
    color:var(--muted);
    margin-bottom:0
}

.service-card {
    height:100%;
    position:relative;
    padding:30px 28px;
    background:#f4e7ce;
    border:1px solid #e8d6b6;
    transition:transform .3s,box-shadow .3s,background .3s;
    overflow:hidden
}

.service-card:before {
    content:"";
    position:absolute;
    left:0;
    top:0;
    width:3px;
    height:0;
    background:var(--maroon);
    transition:height .3s
}

.service-card:hover {
    transform:translateY(-7px);
    box-shadow:0 18px 45px #4b170e14;
    background:#fbf5e9
}

.service-card:hover:before {
    height:100%
}

.service-icon {
    width:48px;
    height:48px;
    border:1px solid #9e785b50;
    display:grid;
    place-items:center;
    color:var(--maroon);
    font-size:23px;
    margin-bottom:22px
}

.service-card h3 {
    font-family:var(--heading);
    font-size:17px;
    font-weight:800;
    margin-bottom:10px
}

.service-card p {
    font-size:13px;
    color:var(--muted);
    line-height:1.8;
    min-height:70px;
    margin-bottom:20px
}

.service-card a,.expertise-card a,.review-card>a {
    display:inline-flex;
    align-items:center;
    gap:8px;
    color:var(--maroon);
    font-size:11px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.04em
}

.service-card a:hover,.expertise-card a:hover,.review-card>a:hover {
    gap:13px
}

.stats-section {
    background:var(--cream);
    padding:35px 0 42px;
    border-top:1px solid #f0e9df;
    border-bottom:1px solid #f0e9df
}

.stat-item {
    border-right:1px solid #e3d8c8
}

.stat-item:last-child {
    border:0
}

.stat-item strong {
    font-family:var(--serif);
    display:block;
    font-size:53px;
    line-height:1.1;
    color:var(--maroon);
    font-weight:600
}

.stat-item sup {
    font-family:var(--heading);
    font-size:20px;
    top:-1.1em
}

.stat-item>span,.stat-item small {
    display:block
}

.stat-item>span {
    font-family:var(--heading);
    font-weight:800;
    font-size:12px;
    margin-top:9px
}

.stat-item small {
    font-size:11px;
    color:var(--muted);
    margin-top:2px
}

.clients-section {
    background:#fff
}

.client-logos {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:18px
}

.client-logo {
    height:92px;
    padding:20px 25px;
    border:1px solid #eee8df;
    background:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    transition:transform .25s,box-shadow .25s
}

.client-logo:hover {
    transform:translateY(-4px);
    box-shadow:0 12px 28px #2b100b0d
}

.client-logo img {
    max-width:100%;
    max-height:55px;
    object-fit:contain
}

.wide-banner {
    position:relative;
    min-height:450px;
    display:flex;
    align-items:center;
    color:#fff;
    overflow:hidden
}

.wide-banner-bg,.wide-banner-overlay {
    position:absolute;
    inset:0
}

.wide-banner-bg {
    background-position:center;
    background-size:cover;
    transform:scale(1.02)
}

.wide-banner-overlay {
    background:linear-gradient(90deg,#210807df 0%,#32100db5 48%,#260c0870 100%)
}

.wide-banner-content {
    position:relative;
    padding-top:80px;
    padding-bottom:80px
}

.wide-banner h2 {
    font-family:var(--serif);
    font-size:clamp(38px,5vw,60px);
    line-height:1.12;
    margin-bottom:18px
}

.wide-banner p {
    color:#f2e5dc;
    max-width:510px;
    margin-bottom:27px
}

.expertise-section {
    background:var(--cream)
}

.expertise-card {
    height:100%;
    padding:27px 22px;
    background:#fff;
    border:1px solid #eee5d9;
    border-radius:5px;
    position:relative;
    overflow:hidden;
    isolation:isolate;
    transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease
}

.expertise-card:before {
    content:"";
    position:absolute;
    z-index:-1;
    inset:0;
    border-radius:5px;
    background-position:center;
    background-size:cover;
    opacity:0;
    transform:scale(1.04);
    transition:opacity .4s ease,transform .7s cubic-bezier(.2,.7,.2,1)
}

.expertise-grid>div:nth-child(1) .expertise-card:before {
    background-image:linear-gradient(180deg,#210b0870,#210b08d9),url('../images/5912921_34661-scaled.jpg.jpeg')
}

.expertise-grid>div:nth-child(2) .expertise-card:before {
    background-image:linear-gradient(180deg,#210b0870,#210b08d9),url('../images/stylish-living-room-with-comfortable-furniture-e1697706242583.jpg.jpeg')
}

.expertise-grid>div:nth-child(3) .expertise-card:before {
    background-image:linear-gradient(180deg,#210b0870,#210b08d9),url('../images/Luxury-office-trends.jpg.jpeg')
}

.expertise-grid>div:nth-child(4) .expertise-card:before {
    background-image:linear-gradient(180deg,#210b0870,#210b08d9),url('../images/interior-design-of-a-dining-room-e1697703035574.jpg.jpeg')
}

.expertise-grid>div:nth-child(5) .expertise-card:before {
    background-image:linear-gradient(180deg,#210b0870,#210b08d9),url('../images/NAV9006-scaled.jpg.jpeg')
}

.expertise-grid>div:nth-child(6) .expertise-card:before {
    background-image:linear-gradient(180deg,#210b0870,#210b08d9),url('../images/poster-frames-in-room-interior-with-light-neutral-wall-with-sunlight-and-wooden-furniture-e1697706181964.jpg.jpeg')
}

.expertise-grid>div:nth-child(7) .expertise-card:before {
    background-image:linear-gradient(180deg,#210b0870,#210b08d9),url('../images/stylish-living-room-with-comfortable-furniture-1-e1697706231189.jpg.jpeg')
}

.expertise-grid>div:nth-child(8) .expertise-card:before {
    background-image:linear-gradient(180deg,#210b0870,#210b08d9),url('../images/5912921_34661-scaled.jpg.jpeg')
}

.expertise-card:after {
    content:"";
    position:absolute;
    z-index:-1;
    top:18px;
    right:18px;
    width:42px;
    height:42px;
    border:1px solid var(--gold);
    border-radius:50%;
    background:radial-gradient(circle,transparent 37%,#d9bd8a55 39%,transparent 42%);
    opacity:0;
    transform:rotate(-25deg) scale(.8);
    transition:opacity .35s ease,transform .5s ease
}

.expertise-card:hover {
    border-color:#d7bd91;
    transform:translateY(-7px);
    box-shadow:0 20px 45px #35100c24
}

.expertise-number {
    position:relative;
    z-index:1;
    font-family:var(--serif);
    font-size:13px;
    color:#b7a183;
    margin-bottom:24px;
    transition:color .3s ease
}

.expertise-card>i {
    position:relative;
    z-index:1;
    font-size:27px;
    color:var(--maroon);
    display:block;
    margin-bottom:17px;
    transition:color .3s ease,transform .4s ease
}

.expertise-card h3 {
    position:relative;
    z-index:1;
    font-family:var(--heading);
    font-size:15px;
    font-weight:800;
    transition:color .3s ease
}

.expertise-card p {
    position:relative;
    z-index:1;
    font-size:12px;
    color:var(--muted);
    line-height:1.8;
    min-height:88px;
    transition:color .3s ease
}

.expertise-card a {
    position:relative;
    z-index:1;
    font-size:10px;
    transition:color .3s ease,gap .25s ease
}

.expertise-card:focus-within {
    outline:2px solid var(--gold);
    outline-offset:3px
}

@media(hover:hover) {
    .expertise-card:hover:before,.expertise-card:focus-within:before {
        opacity:1;
        transform:scale(1)
    }

    .expertise-card:hover:after,.expertise-card:focus-within:after {
        opacity:.9;
        transform:rotate(25deg) scale(1)
    }

    .expertise-card:hover .expertise-number,.expertise-card:focus-within .expertise-number,
    .expertise-card:hover>i,.expertise-card:focus-within>i,
    .expertise-card:hover h3,.expertise-card:focus-within h3,
    .expertise-card:hover p,.expertise-card:focus-within p {
        color:#fff
    }

    .expertise-card:hover>i,.expertise-card:focus-within>i {
        transform:translateY(-3px) scale(1.08)
    }

    .expertise-card:hover a,.expertise-card:focus-within a {
        color:var(--gold-light)
    }
}

.why-section {
    background:var(--maroon-dark);
    color:#fff;
    overflow:hidden
}

.why-image {
    position:relative;
    padding:0 30px 30px 0
}

.why-image>img {
    height:500px;
    width:100%;
    object-fit:cover
}

.why-image:after {
    content:"";
    position:absolute;
    right:0;
    bottom:0;
    width:45%;
    height:70%;
    border:1px solid var(--gold);
    z-index:0
}

.why-image-label {
    position:absolute;
    z-index:2;
    bottom:0;
    left:0;
    background:var(--gold);
    color:#3e2119;
    display:flex;
    gap:14px;
    align-items:center;
    padding:16px 20px
}

.why-image-label i {
    font-size:26px
}

.why-image-label span {
    font-size:10px;
    line-height:1.5
}

.why-image-label strong {
    font-size:13px
}

.why-section h2 {
    font-family:var(--serif);
    font-size:clamp(35px,4vw,51px);
    line-height:1.15;
    margin-bottom:20px
}

.why-section h2 span {
    color:var(--gold)
}

.why-intro {
    color:#e5d3cc;
    line-height:1.8;
    font-size:14px
}

.why-points {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:24px 20px;
    margin-top:30px
}

.why-points>div {
    display:flex;
    gap:12px
}

.why-points i {
    color:var(--gold);
    font-size:23px
}

.why-points strong,.why-points small {
    display:block
}

.why-points strong {
    font-size:12px;
    font-family:var(--heading);
    margin-bottom:5px
}

.why-points small {
    font-size:11px;
    line-height:1.7;
    color:#d5bfb8
}

.expert-section {
    background:#fff
}

.expert-photo {
    position:relative;
    padding:0 0 28px 28px
}

.expert-photo>img {
    width:100%;
    height:420px;
    object-fit:cover;
    border-radius:5px
}

.photo-badge {
    position:absolute;
    z-index:2;
    right:-5px;
    bottom:0;
    background:var(--maroon);
    color:#fff;
    display:flex;
    align-items:center;
    gap:12px;
    padding:16px 20px
}

.photo-badge i {
    font-size:25px;
    color:var(--gold)
}

.photo-badge span {
    font-size:10px;
    line-height:1.5
}

.photo-badge strong {
    font-size:13px
}

.muted-note {
    font-size:11px!important;
    color:#8b817b!important;
    border-left:2px solid var(--gold);
    padding-left:12px
}

.testimonials-section {
    background:#f8f7f5
}

.review-card {
    height:100%;
    background:#fff;
    padding:25px;
    border:1px solid #eee9e2;
    transition:transform .25s,box-shadow .25s
}

.review-card:hover {
    transform:translateY(-5px);
    box-shadow:0 15px 35px #21100a0b
}

.review-top {
    display:grid;
    grid-template-columns:35px 1fr auto;
    align-items:center;
    gap:10px;
    margin-bottom:20px
}

.google-mark {
    width:34px;
    height:34px;
    border-radius:50%;
    background:#f7f5f2;
    display:grid;
    place-items:center;
    color:#4285f4;
    font-size:16px
}

.review-top strong,.review-top small {
    display:block
}

.review-top strong {
    font-family:var(--heading);
    font-size:12px
}

.review-top small {
    font-size:10px;
    color:#8b8580
}

.stars {
    color:#e8a629;
    font-size:12px;
    letter-spacing:1px
}

.review-card p {
    font-size:13px;
    line-height:1.85;
    color:var(--muted);
    min-height:100px
}

.review-card>a {
    font-size:10px
}

.video-section {
    background:#fff
}

.video-thumb {
    display:block;
    position:relative;
    overflow:hidden;
    min-height:300px;
    background:#1e100f
}

.video-thumb:after {
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(0deg,#1b080a85,transparent 70%)
}

.video-thumb img {
    width:100%;
    height:370px;
    object-fit:cover;
    transition:transform .6s
}

.video-thumb:hover img {
    transform:scale(1.04)
}

.play-button {
    position:absolute;
    z-index:2;
    top:50%;
    left:50%;
    transform:translate(-50%,-50%);
    width:70px;
    height:70px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:var(--gold);
    color:var(--maroon);
    font-size:32px;
    box-shadow:0 0 0 12px #d9bd8a35;
    transition:transform .3s
}

.video-thumb:hover .play-button {
    transform:translate(-50%,-50%) scale(1.1)
}

.video-label {
    position:absolute;
    z-index:2;
    bottom:20px;
    left:22px;
    color:#fff;
    font-size:12px;
    font-weight:700;
    letter-spacing:.06em;
    text-transform:uppercase
}

.appointment-section {
    background:var(--cream)
}

.appointment-panel {
    display:grid;
    grid-template-columns:.85fr 1fr;
    background:var(--maroon);
    box-shadow:0 25px 70px #35100c15
}

.appointment-copy {
    padding:55px 48px;
    color:#fff;
    position:relative;
    overflow:hidden
}

.appointment-copy:after {
    content:"✳";
    position:absolute;
    right:-10px;
    bottom:-80px;
    font-size:230px;
    line-height:1;
    color:#ffffff09
}

.appointment-copy h2 {
    font-family:var(--serif);
    font-size:clamp(32px,3.4vw,45px);
    line-height:1.2;
    margin-bottom:18px;
    position:relative;
    z-index:1
}

.appointment-copy h2 em {
    color:var(--gold);
    font-style:normal
}

.appointment-copy p {
    font-size:13px;
    color:#e7d4ce;
    line-height:1.9
}

.appointment-contact {
    display:grid;
    gap:12px;
    margin-top:30px;
    font-size:12px;
    color:#f2e7e0
}

.appointment-contact i {
    color:var(--gold);
    margin-right:9px
}

.appointment-form {
    padding:45px;
    background:#fff
}

.appointment-form h3 {
    font-family:var(--serif);
    font-size:27px;
    margin-bottom:24px
}

.appointment-form label {
    font-size:11px;
    font-weight:800;
    margin-bottom:6px;
    color:var(--muted)
}

.appointment-form label span {
    font-weight:400;
    color:#999
}

.form-control,.form-select {
    border-radius:0;
    border:1px solid #e7dfd7;
    padding:12px 13px;
    font-size:12px;
    background:#fff
}

.form-control:focus,.form-select:focus {
    border-color:#a96b55;
    box-shadow:0 0 0 .2rem #68100f12
}

.form-note {
    display:block;
    color:#938983;
    font-size:10px;
    line-height:1.6;
    margin-top:10px
}

.form-status {
    font-size:12px;
    color:var(--maroon);
    margin-top:7px
}

.site-footer {
    background:#300807;
    color:#f6e9e0;
    padding:70px 0 0
}

.footer-brand img {
    width:170px;
    max-height:65px;
    object-fit:contain;
    object-position:left center;
    filter:brightness(0) invert(1)
}

.footer-main p {
    color:#cbb8af;
    font-size:12px;
    line-height:1.9;
    margin:22px 0
}

.footer-social {
    display:flex;
    gap:10px
}

.footer-social a {
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    border:1px solid #ffffff28;
    color:var(--gold)
}

.footer-social a:hover {
    background:var(--gold);
    color:var(--maroon)
}

.site-footer h3 {
    font-family:var(--heading);
    font-size:13px;
    font-weight:800;
    margin:6px 0 22px;
    color:#fff
}

.footer-main>div>a:not(.footer-brand):not(.footer-contact) {
    display:block;
    color:#cbb8af;
    font-size:12px;
    margin:11px 0
}

.footer-main>div>a:hover {
    color:var(--gold)
}

.footer-contact {
    display:flex;
    gap:13px;
    align-items:flex-start;
    color:#d9c8c0;
    margin-bottom:18px;
    font-size:12px
}

.footer-contact>i {
    color:var(--gold);
    font-size:17px
}

.footer-contact span,.footer-contact strong {
    display:block
}

.footer-contact strong {
    font-weight:600;
    color:#fff;
    margin-top:3px;
    overflow-wrap:anywhere
}

.footer-bottom {
    margin-top:50px;
    border-top:1px solid #ffffff20;
    padding:18px 0;
    display:flex;
    justify-content:space-between;
    gap:15px;
    flex-wrap:wrap;
    color:#bca59b;
    font-size:10px
}

.floating-actions {
    position:fixed;
    left:18px;
    bottom:22px;
    z-index:900;
    display:flex;
    flex-direction:column;
    gap:10px
}

.float-btn {
    width:46px;
    height:46px;
    border-radius:50%;
    display:grid;
    place-items:center;
    color:#fff;
    font-size:20px;
    box-shadow:0 5px 18px #0002;
    transition:transform .25s,box-shadow .25s
}

.float-btn:hover {
    transform:translateX(4px) scale(1.05);
    color:#fff;
    box-shadow:0 8px 22px #0003
}

.float-whatsapp {
    background:#168b4d
}

.float-call {
    background:#68100f
}

.float-chat {
    background:#b89459
}

.back-to-top {
    position:fixed;
    right:22px;
    bottom:22px;
    width:43px;
    height:43px;
    border:0;
    background:var(--maroon);
    color:#fff;
    z-index:900;
    opacity:0;
    visibility:hidden;
    transform:translateY(10px);
    transition:all .25s;
    box-shadow:0 6px 18px #0002
}

.back-to-top.visible {
    opacity:1;
    visibility:visible;
    transform:translateY(0)
}

.back-to-top:hover {
    background:var(--gold);
    color:var(--maroon)
}

.reveal {
    opacity:0;
    transform:translateY(22px);
    transition:opacity .7s ease,transform .7s ease
}

.reveal.is-visible {
    opacity:1;
    transform:translateY(0)
}

@media(max-width:991px) {
    .navbar {
        padding:8px 0
    }
    .navbar-brand img {
        width:145px
    }
    .navbar-collapse {
        padding:15px 0 8px
    }
    .navbar-nav {
        align-items:stretch!important
    }
    .nav-link {
        padding:10px 2px!important
    }
    .nav-link:after {
        left:2px
    }
    .nav-link:hover:after,.nav-link.active:after {
        right:85%
    }
    .nav-cta {
        margin-top:10px
    }
    .hero-section {
        padding-top:55px
    }
    .hero-content {
        grid-template-columns:1fr .72fr;
        gap:35px
    }
    .hero-image-wrap {
        max-width:380px
    }
    .hero-section h1 {
        font-size:48px
    }
    .hero-bottom .container {
        max-width:100%
    }
    .hero-feature {
        padding:20px 12px;
        gap:10px
    }
    .hero-feature strong {
        font-size:11px
    }
    .hero-feature span {
        font-size:10px
    }
    .section-pad {
        padding:75px 0
    }
    .about-note {
        left:-25px
    }
    .appointment-copy,.appointment-form {
        padding:38px 30px
    }
}

@media(max-width:767px) {
    .top-strip .container {
        justify-content:center!important
    }
    .top-contact {
        gap:14px;
        flex-wrap:wrap;
        justify-content:center
    }
    .socials {
        display:none
    }
    .hero-section {
        padding-top:48px
    }
    .homepage-hero-controls {
        right: 7px;
        bottom: 7px;
        gap: 7px;
    }
    .homepage-hero-control {
        width: 38px;
        height: 38px;
    }
    .hero-content {
        display:flex;
        flex-direction:column;
        align-items:stretch;
        gap:30px;
        padding-bottom:50px
    }
    .hero-copy {
        padding:0
    }
    .hero-section h1 {
        font-size:clamp(39px,10vw,56px)
    }
    .hero-copy>p {
        font-size:15px
    }
    .hero-image-wrap {
        justify-self:auto;
        align-self:center;
        width:min(100%,390px);
        padding:22px;
        padding-bottom:46px;
    }
    .hero-stamp {
        left:0
    }
    .hero-bottom .row {
        padding:8px 0
    }
    .hero-feature {
        border-right:0;
        border-bottom:1px solid #ffffff17;
        padding:14px 8px
    }
    .hero-feature:last-child {
        border-bottom:0
    }
    .about-visual {
        max-width:430px;
        margin:0 auto;
        padding-left:15px
    }
    .about-visual>img {
        height:410px
    }
    .about-note {
        left:0;
        width:225px;
        padding:18px
    }
    .intro-section .row {
        gap:20px!important
    }
    .image-frame img {
        height:300px
    }
    .section-pad {
        padding:65px 0
    }
    .section-pad-sm {
        padding:52px 0
    }
    .section-heading {
        margin-bottom:32px
    }
    .service-card {
        padding:25px 23px
    }
    .service-card p {
        min-height:auto
    }
    .stat-item strong {
        font-size:40px
    }
    .stat-item sup {
        font-size:15px
    }
    .stat-item>span {
        font-size:10px
    }
    .stat-item small {
        font-size:9px
    }
    .client-logos {
        grid-template-columns:repeat(2,1fr);
        gap:10px
    }
    .client-logo {
        height:78px;
        padding:15px
    }
    .wide-banner {
        min-height:390px
    }
    .wide-banner-content {
        padding-top:65px;
        padding-bottom:65px
    }
    .expertise-card p {
        min-height:auto
    }
    .why-image>img {
        height:380px
    }
    .why-points {
        gap:20px 12px
    }
    .why-points strong {
        font-size:11px
    }
    .why-points small {
        font-size:10px
    }
    .expert-photo>img {
        height:340px
    }
    .review-card p {
        min-height:auto
    }
    .video-thumb img {
        height:290px
    }
    .appointment-panel {
        grid-template-columns:1fr
    }
    .appointment-copy,.appointment-form {
        padding:35px 25px
    }
    .footer-main {
        row-gap:35px!important
    }
    .footer-bottom {
        margin-top:35px
    }
    .floating-actions {
        left:10px;
        bottom:14px;
        gap:8px
    }
    .float-btn {
        width:42px;
        height:42px;
        font-size:18px
    }
    .back-to-top {
        right:12px;
        bottom:14px;
        width:40px;
        height:40px
    }
}

@media(max-width:420px) {
    .top-contact {
        font-size:10px;
        gap:10px
    }
    .hero-section h1 {
        font-size:39px
    }
    .hero-actions {
        align-items:flex-start;
        flex-direction:column;
        gap:18px
    }
    .about-visual>img {
        height:350px
    }
    .about-note {
        width:205px
    }
    .why-points {
        grid-template-columns:1fr
    }
    .stat-item strong {
        font-size:34px
    }
    .stat-item>span {
        font-size:9px
    }
    .stat-item small {
        font-size:8px
    }
    .appointment-copy,.appointment-form {
        padding:30px 20px
    }
}

@media(prefers-reduced-motion:reduce) {
    *,*::before,*::after {
        scroll-behavior:auto!important;
        animation-duration:.01ms!important;
        transition-duration:.01ms!important
    }
    .hero-orbit,.hero-orbit-planet {
        animation:none!important
    }
    .reveal {
        opacity:1;
        transform:none
    }
}
/* Additional multi-page polish */

.navbar-brand img {
    width:190px;
    height:64px;
    object-fit:contain;
    object-position:left center
}

.footer-brand img {
    width:190px;
    height:78px;
    object-fit:contain;
    object-position:left center;
    filter:none!important
}

.socials a,.footer-social a {
    transition:transform .25s,color .25s,background .25s
}

.socials a:hover,.footer-social a:hover {
    transform:translateY(-3px)
}

.float-chat {
    display:none!important
}

.btn-outline-light {
    border:1px solid #ffffff9c;
    color:#fff;
    background:transparent
}

.btn-outline-light:hover {
    background:#fff;
    color:var(--maroon)
}

.inner-hero {
    position:relative;
    isolation:isolate;
    overflow:hidden;
    background:#1d0a08;
    color:#fff;
    min-height:390px;
    display:flex;
    align-items:center;
    padding:52px 0
}

.inner-hero:before {
    content:"";
    position:absolute;
    z-index:-2;
    inset:0;
    background-image:var(--inner-image);
    background-size:cover;
    background-position:center 48%;
    transform:scale(1.02)
}

.inner-hero:after {
    content:"";
    position:absolute;
    z-index:-1;
    inset:0;
    background:linear-gradient(90deg,#100807 0%,#170907f2 31%,#210b08bd 58%,#1b080830 100%)
}

.inner-hero-content {
    position:relative
}

.breadcrumb-line {
    display:flex;
    align-items:center;
    gap:10px;
    color:#eadbc7;
    font-size:11px;
    margin-bottom:28px
}

.breadcrumb-line a {
    color:#fff
}

.breadcrumb-line a:hover {
    color:var(--gold)
}

.breadcrumb-line i {
    font-size:9px;
    color:var(--gold)
}

.inner-hero h1 {
    font-family:var(--serif);
    font-size:clamp(42px,5vw,64px);
    line-height:1.1;
    max-width:720px;
    margin-bottom:16px
}

.inner-hero p {
    font-size:15px;
    color:#eee0d8;
    max-width:590px;
    line-height:1.8;
    margin-bottom:26px
}

.page-heading {
    font-family:var(--serif);
    font-size:clamp(34px,4vw,49px);
    line-height:1.2;
    margin-bottom:20px
}

.page-heading span {
    color:var(--maroon)
}

.section-intro {
    max-width:600px;
    color:var(--muted);
    margin-bottom:25px
}

.service-image-card {
    padding:0 0 25px;
    overflow:hidden
}

.service-card-image {
    width:100%;
    height:190px;
    object-fit:cover;
    border-radius:0;
    transition:transform .5s
}

.service-image-card:hover .service-card-image {
    transform:scale(1.035)
}

.service-image-card .service-icon,.service-image-card .service-kicker,.service-image-card h3,.service-image-card p,.service-image-card>a {
    margin-left:24px;
    margin-right:24px
}

.service-image-card .service-icon {
    margin-top:22px;
    margin-bottom:12px
}

.service-kicker {
    display:block;
    color:#98724d;
    font-size:9px;
    letter-spacing:.13em;
    text-transform:uppercase;
    font-weight:800;
    margin-bottom:8px
}

.service-image-card p {
    min-height:72px
}

.testimonial-slider {
    position:relative;
    padding:0 45px
}

.testimonial-track {
    display:grid;
    grid-auto-flow:column;
    grid-auto-columns:calc((100% - 48px)/3);
    gap:24px;
    overflow:hidden;
    scroll-behavior:smooth
}

.testimonial-slide {
    min-width:0
}

.testimonial-arrow {
    position:absolute;
    top:45%;
    transform:translateY(-50%);
    width:36px;
    height:36px;
    border:1px solid #d8c7ae;
    background:#fff;
    color:var(--maroon);
    z-index:2;
    transition:all .2s
}

.testimonial-arrow:hover {
    background:var(--maroon);
    color:#fff
}

.testimonial-arrow.prev {
    left:0
}

.testimonial-arrow.next {
    right:0
}

.testimonial-dots {
    display:flex;
    justify-content:center;
    gap:8px;
    margin-top:26px
}

.testimonial-dots button {
    border:0;
    width:7px;
    height:7px;
    border-radius:50%;
    padding:0;
    background:#d6c8b8
}

.testimonial-dots button.active {
    width:22px;
    border-radius:5px;
    background:var(--maroon)
}

.contact-page-section {
    background:#fbf8f2
}

.contact-info-card {
    height:100%;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    background:#fff;
    border:1px solid #eee5d9;
    padding:25px 22px;
    transition:transform .25s,box-shadow .25s
}

.contact-info-card:hover {
    transform:translateY(-5px);
    box-shadow:0 15px 35px #27110d0c
}

.contact-info-card>i {
    width:44px;
    height:44px;
    display:grid;
    place-items:center;
    background:#f2e5cf;
    color:var(--maroon);
    font-size:21px;
    margin-bottom:18px;
    border-radius:10px
}

.contact-info-card span {
    font-size:11px;
    color:var(--muted);
    text-transform:uppercase;
    letter-spacing:.08em;
    font-weight:800
}

.contact-info-card strong {
    font-size:13px;
    color:var(--maroon);
    margin:5px 0;
    overflow-wrap:anywhere
}

.contact-info-card small {
    font-size:11px;
    color:var(--muted)
}

.contact-side-panel {
    height:100%;
    padding:42px 35px;
    background:var(--maroon);
    color:#fff
}

.contact-side-panel h2 {
    font-family:var(--serif);
    font-size:37px;
    line-height:1.2;
    margin-bottom:15px
}

.contact-side-panel>p {
    font-size:13px;
    color:#e4d2cb;
    line-height:1.8;
    margin-bottom:30px
}

.contact-side-detail {
    display:flex;
    gap:13px;
    align-items:flex-start;
    margin:18px 0
}

.contact-side-detail>i {
    font-size:19px;
    color:var(--gold)
}

.contact-side-detail span,.contact-side-detail strong {
    display:block
}

.contact-side-detail span {
    font-size:11px;
    color:#e6d4ca
}

.contact-side-detail strong {
    font-size:13px;
    color:#fff;
    margin-top:3px;
    overflow-wrap:anywhere
}

.contact-social {
    display:flex;
    align-items:center;
    gap:13px;
    margin-top:30px;
    padding-top:20px;
    border-top:1px solid #ffffff30
}

.contact-social>span {
    font-size:11px;
    color:#e6d4ca;
    margin-right:5px
}

.contact-social a {
    color:var(--gold);
    font-size:17px;
    transition:transform .2s
}

.contact-social a:hover {
    transform:translateY(-3px);
    color:#fff
}

.contact-form {
    height:100%;
    box-shadow:0 10px 35px #3a160b08
}

.map-section {
    padding:0 0 80px;
    background:#fbf8f2
}

.map-placeholder {
    min-height:260px;
    border-radius:10px;
    overflow:hidden;
    background:linear-gradient(120deg,#e7ddca,#f6f0e6 50%,#dfd0b6);
    display:grid;
    place-items:center;
    text-align:center;
    padding:35px;
    position:relative
}

.map-placeholder:before,.map-placeholder:after {
    content:"";
    position:absolute;
    width:130%;
    height:1px;
    background:#c8b99e;
    transform:rotate(-13deg);
    top:40%;
    left:-15%;
    box-shadow:0 35px #c8b99e,0 70px #c8b99e,0 105px #c8b99e
}

.map-placeholder:after {
    transform:rotate(17deg);
    opacity:.7
}

.map-placeholder>div {
    position:relative;
    z-index:1;
    max-width:480px;
    padding:25px;
    background:#ffffffeb;
    border-radius:10px;
    box-shadow:0 10px 30px #2a160d12
}

.map-placeholder i {
    font-size:25px;
    color:var(--maroon)
}

.map-placeholder h3 {
    font-family:var(--serif);
    font-size:27px;
    margin:7px 0
}

.map-placeholder p {
    font-size:12px;
    color:var(--muted)
}

@media(max-width:991px) {
    .navbar-brand img {
        width:165px;
        height:58px
    }
    .inner-hero {
        min-height:350px
    }
    .testimonial-track {
        grid-auto-columns:calc((100% - 24px)/2)
    }
}

@media(max-width:767px) {
    .navbar-brand img {
        width:150px;
        height:52px
    }
    .inner-hero {
        min-height:360px;
        padding:42px 0
    }
    .inner-hero:after {
        background:linear-gradient(90deg,#100807f2,#170907d9 70%,#210b0870)
    }
    .inner-hero h1 {
        font-size:42px
    }
    .inner-hero p {
        font-size:13px
    }
    .inner-hero .hero-actions {
        flex-direction:row;
        gap:10px
    }
    .inner-hero .btn {
        padding:11px 13px;
        font-size:10px
    }
    .testimonial-slider {
        padding:0 32px
    }
    .testimonial-track {
        grid-auto-columns:100%;
        gap:16px
    }
    .contact-side-panel {
        padding:32px 25px
    }
    .map-placeholder {
        min-height:300px
    }
    .contact-info-card {
        padding:22px 18px
    }
}
/* YouTube video library */

.video-section {
    background:linear-gradient(180deg,#fff 0%,#fbf7ef 100%)
}

.video-slider {
    position:relative;
    padding:0 28px
}

.video-track {
    display:grid;
    grid-auto-flow:column;
    grid-auto-columns:calc((100% - 40px)/3);
    gap:20px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scroll-behavior:smooth;
    scrollbar-width:none;
    padding:4px 2px 14px
}

.video-track::-webkit-scrollbar {
    display:none
}

.video-card {
    min-width:0;
    scroll-snap-align:start;
    background:#fff;
    border:1px solid #eee2d3;
    border-radius:10px;
    overflow:hidden;
    box-shadow:0 12px 35px #32100a0b;
    transition:transform .3s,box-shadow .3s
}

.video-card:hover {
    transform:translateY(-6px);
    box-shadow:0 18px 40px #32100a18
}

.video-frame {
    aspect-ratio:16/9;
    background:#210908;
    overflow:hidden
}

.video-frame iframe {
    width:100%;
    height:100%;
    display:block;
    border:0
}

.video-card-copy {
    padding:22px 22px 24px
}

.video-kicker {
    display:inline-flex;
    align-items:center;
    gap:7px;
    color:#986e35;
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.12em;
    font-weight:800;
    margin-bottom:10px
}

.video-card-copy h3 {
    font-family:var(--heading);
    font-size:16px;
    font-weight:800;
    line-height:1.45;
    margin-bottom:9px;
    color:#332522
}

.video-card-copy p {
    font-size:12px;
    line-height:1.8;
    color:var(--muted);
    margin-bottom:16px
}

.video-card-copy>a {
    display:inline-flex;
    align-items:center;
    gap:8px;
    color:var(--maroon);
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.06em;
    font-weight:800
}

.video-card-copy>a:hover {
    gap:13px
}

.video-arrow {
    position:absolute;
    z-index:2;
    top:37%;
    width:42px;
    height:42px;
    border:1px solid #dfcba9;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:#fff;
    color:var(--maroon);
    box-shadow:0 6px 18px #23060512;
    transition:all .25s
}

.video-arrow:hover {
    background:var(--maroon);
    color:#fff;
    border-color:var(--maroon)
}

.video-prev {
    left:-1px
}

.video-next {
    right:-1px
}

.video-dots {
    display:flex;
    justify-content:center;
    gap:8px;
    margin-top:16px
}

.video-dots button {
    width:7px;
    height:7px;
    padding:0;
    border:0;
    border-radius:20px;
    background:#d7c7b2;
    transition:all .25s
}

.video-dots button.active {
    width:24px;
    background:var(--maroon)
}

@media(max-width:991px) {
    .video-track {
        grid-auto-columns:calc((100% - 20px)/2)
    }
}

@media(max-width:767px) {
    .video-slider {
        padding:0 18px
    }
    .video-track {
        grid-auto-columns:100%;
        gap:14px
    }
    .video-arrow {
        top:27%;
        width:36px;
        height:36px
    }
    .video-prev {
        left:-5px
    }
    .video-next {
        right:-5px
    }
    .video-card-copy {
        padding:18px
    }
    .video-card-copy h3 {
        font-size:15px
    }
}
/* October 2026 refinements: compact image-led services, playable video thumbnails and contact panel */

.home-services-grid {
    row-gap:16px!important
}

.home-service-card {
    padding:0!important;
    height:100%;
    border-radius:10px;
    overflow:hidden;
    background:#fff;
    display:flex;
    flex-direction:column;
    border:1px solid #eadcc7;
    box-shadow:0 6px 20px #35100c08;
    transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease
}

.home-service-card:before {
    top:auto;
    bottom:0;
    width:100%;
    height:3px;
    transform:scaleX(0);
    transform-origin:left;
    transition:transform .4s ease
}

.home-service-card>a:first-child {
    position:relative;
    display:block;
    overflow:hidden;
    flex:0 0 auto;
    margin:0
}

.home-service-card>a:first-child:after {
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(180deg,transparent 55%,#210b0840);
    opacity:.35;
    pointer-events:none;
    transition:opacity .35s ease
}

.home-service-card .service-card-image {
    height:165px;
    min-height:165px;
    width:100%;
    object-fit:cover;
    display:block;
    border-radius:5px;
    transition:transform .7s cubic-bezier(.2,.7,.2,1),filter .4s ease
}

.home-service-card:hover,.home-service-card:focus-within {
    transform:translateY(-7px);
    border-color:#d9bd8a;
    background:#fff;
    box-shadow:0 20px 42px #35100c1c
}

.home-service-card:hover:before,.home-service-card:focus-within:before {
    height:3px;
    transform:scaleX(1)
}

.home-service-card:hover>a:first-child:after,.home-service-card:focus-within>a:first-child:after {
    opacity:.7
}

.home-service-card:hover .service-card-image,.home-service-card:focus-within .service-card-image {
    transform:scale(1.07);
    filter:saturate(1.08)
}

.home-service-card:focus-within {
    outline:2px solid var(--gold);
    outline-offset:3px
}

.home-service-copy {
    padding:14px 16px 16px;
    display:flex;
    flex-direction:column;
    flex:1
}

.home-service-copy .service-kicker {
    font-size:8px;
    margin:0 0 5px;
    letter-spacing:.1em
}

.home-service-copy h3 {
    font-size:15px;
    line-height:1.3;
    margin:0 0 7px;
    transition:color .25s ease
}

.home-service-card:hover .home-service-copy h3,.home-service-card:focus-within .home-service-copy h3 {
    color:var(--maroon)
}

.home-service-copy p {
    font-size:11px;
    line-height:1.55;
    margin:0 0 10px;
    min-height:0;
    flex:1
}

.home-service-copy>a {
    font-size:9px;
    margin:0;
    color:var(--maroon);
    text-transform:uppercase;
    letter-spacing:.04em;
    font-weight:800;
    transition:gap .25s ease,color .25s ease
}

.home-service-copy>a i {
    transition:transform .25s ease
}

.home-service-copy>a:hover i,.home-service-card:hover .home-service-copy>a i,.home-service-card:focus-within .home-service-copy>a i {
    transform:translate(2px,-2px)
}

.home-contact-section {
    background:#fbf8f2
}

.home-contact-heading {
    margin-bottom:28px
}

.home-contact-heading p {
    font-size:13px
}

.home-contact-section .appointment-panel {
    grid-template-columns:.78fr 1fr;
    border-radius:10px;
    overflow:hidden;
    box-shadow:0 18px 50px #35100c12
}

.home-contact-section .appointment-copy {
    padding:34px 32px
}

.home-contact-section .appointment-copy h2 {
    font-size:clamp(30px,3vw,39px)
}

.home-contact-section .appointment-copy>p {
    font-size:12px;
    line-height:1.75
}

.home-contact-section .appointment-contact {
    gap:13px;
    margin-top:22px
}

.home-contact-section .appointment-contact span {
    display:block;
    font-size:11px;
    color:#ead8d0
}

.home-contact-section .appointment-contact strong {
    display:block;
    color:#fff;
    font-size:12px;
    margin:3px 0 0 25px;
    overflow-wrap:anywhere
}

.home-contact-section .appointment-form {
    padding:30px;
    border-radius:0
}

.home-contact-section .appointment-form h3 {
    font-size:25px;
    margin-bottom:18px
}

.home-contact-section .form-control,.home-contact-section .form-select {
    border-radius:5px;
    padding:10px 12px;
    font-size:12px
}

.home-contact-section .contact-social {
    margin-top:22px;
    padding-top:15px
}

.home-faq-section {
    background:var(--cream)
}

.home-faq-accordion {
    max-width:900px;
    margin:0 auto
}

.home-faq-accordion .accordion-item {
    margin-bottom:12px;
    border:1px solid var(--line);
    border-radius:8px;
    overflow:hidden
}

.home-faq-accordion .accordion-button {
    color:var(--ink);
    font-family:var(--heading);
    font-weight:700;
    box-shadow:none
}

.home-faq-accordion .accordion-button:not(.collapsed) {
    color:var(--maroon);
    background:#fff
}

.home-faq-accordion .accordion-body {
    color:var(--muted)
}

.video-frame.video-thumb-link {
    display:block;
    position:relative;
    aspect-ratio:16/9;
    background:#210908;
    overflow:hidden
}

.video-thumb-link img {
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:transform .35s
}

.video-thumb-link:hover img {
    transform:scale(1.04)
}

.video-play-button {
    position:absolute;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%);
    width:58px;
    height:42px;
    border-radius:12px;
    background:#d90000;
    color:white;
    display:grid;
    place-items:center;
    font-size:28px;
    box-shadow:0 5px 20px #0004
}

.video-youtube-label {
    position:absolute;
    left:12px;
    bottom:10px;
    background:#000b;
    color:#fff;
    border-radius:4px;
    padding:5px 8px;
    font-size:10px;
    font-weight:700
}

.video-youtube-label i {
    color:#ff2929;
    margin-right:4px
}

@media(min-width:992px) {
    .home-services-grid .service-card {
        min-height:285px
    }
    .home-services-grid .service-card-image {
        height:165px;
        min-height:165px
    }
    .home-services-grid .home-service-copy p {
        max-width:330px
    }
}

@media(max-width:767px) {
    .home-service-card .service-card-image {
        height:120px;
        min-height:120px
    }
    .home-service-copy {
        padding:11px
    }
    .home-service-copy h3 {
        font-size:13px
    }
    .home-service-copy p {
        font-size:10px
    }
    .home-contact-section .appointment-panel {
        grid-template-columns:1fr
    }
    .home-contact-section .appointment-copy,.home-contact-section .appointment-form {
        padding:25px 22px
    }
    .home-contact-heading {
        margin-bottom:22px
    }
}

.home-page .section-pad {
    padding-block:68px
}

.home-page .section-pad-sm {
    padding-block:50px
}

.home-page p,.home-page li {
    font-size:13px!important;
    line-height:1.75
}

.home-page .section-heading {
    margin-bottom:32px
}

.home-page .section-heading h2 {
    letter-spacing:-.025em
}

.home-page .section-heading p {
    max-width:620px;
    margin-inline:auto;
    color:var(--muted)
}

.home-page .home-contact-section .appointment-copy>p {
    font-size:13px
}

.testimonial-slider {
    padding:0 48px
}

.testimonial-track {
    grid-auto-columns:calc((100% - 40px)/3);
    gap:20px;
    overflow-x:auto;
    overflow-y:hidden;
    padding:3px 3px 14px;
    margin:-3px -3px -14px;
    scrollbar-width:none;
    scroll-snap-type:x mandatory;
    scroll-padding-inline:3px;
    overscroll-behavior-x:contain;
    -webkit-overflow-scrolling:touch
}

.testimonial-track::-webkit-scrollbar {
    display:none
}

.testimonial-slide {
    height:100%;
    scroll-snap-align:start
}

.testimonial-arrow {
    top:50%;
    display:grid;
    place-items:center;
    width:42px;
    height:42px;
    padding:0;
    border:1px solid #d8c7ae;
    border-radius:50%;
    background:#fff;
    box-shadow:0 5px 16px #35100c12;
    font-size:15px;
    cursor:pointer
}

.testimonial-arrow:hover:not(:disabled) {
    transform:translateY(-50%) scale(1.06);
    border-color:var(--maroon);
    background:var(--maroon);
    color:#fff;
    box-shadow:0 8px 20px #68100f30
}

.testimonial-arrow:focus-visible,.testimonial-dots button:focus-visible {
    outline:3px solid var(--gold);
    outline-offset:3px
}

.testimonial-arrow:disabled {
    opacity:.45;
    cursor:not-allowed
}

.testimonial-dots {
    gap:9px;
    margin-top:20px
}

.testimonial-dots button {
    width:8px;
    height:8px;
    border-radius:8px;
    background:#c9b9a5;
    transition:width .25s ease,background-color .25s ease,transform .25s ease
}

.testimonial-dots button.active {
    width:24px;
    background:var(--maroon)
}

@media(max-width:991px) {
    .home-page .section-pad {
        padding-block:54px
    }

    .home-page .section-pad-sm {
        padding-block:42px
    }

    .testimonial-track {
        grid-auto-columns:calc((100% - 18px)/2);
        gap:18px
    }
}

@media(max-width:767px) {
    .home-page .section-pad {
        padding-block:44px
    }

    .home-page .section-pad-sm {
        padding-block:34px
    }

    .home-page .section-heading {
        margin-bottom:24px
    }

    .testimonial-slider {
        padding:0 34px
    }

    .testimonial-track {
        grid-auto-columns:100%;
        gap:14px
    }

    .testimonial-arrow {
        width:34px;
        height:34px;
        font-size:13px
    }
}

@media(max-width:380px) {
    .testimonial-slider {
        padding:0 30px
    }

    .testimonial-arrow {
        width:30px;
        height:30px
    }
}
