*, :after, :before {
    --tw-border-spacing-x: 0;
    --tw-border-spacing-y: 0;
    --tw-translate-x: 0;
    --tw-translate-y: 0;
    --tw-rotate: 0;
    --tw-skew-x: 0;
    --tw-skew-y: 0;
    --tw-scale-x: 1;
    --tw-scale-y: 1;
    --tw-pan-x:;
    --tw-pan-y:;
    --tw-pinch-zoom:;
    --tw-scroll-snap-strictness: proximity;
    --tw-gradient-from-position:;
    --tw-gradient-via-position:;
    --tw-gradient-to-position:;
    --tw-ordinal:;
    --tw-slashed-zero:;
    --tw-numeric-figure:;
    --tw-numeric-spacing:;
    --tw-numeric-fraction:;
    --tw-ring-inset:;
    --tw-ring-offset-width: 0px;
    --tw-ring-offset-color: #fff;
    --tw-ring-color: rgba(59,130,246,.5);
    --tw-ring-offset-shadow: 0 0 #0000;
    --tw-ring-shadow: 0 0 #0000;
    --tw-shadow: 0 0 #0000;
    --tw-shadow-colored: 0 0 #0000;
    --tw-blur:;
    --tw-brightness:;
    --tw-contrast:;
    --tw-grayscale:;
    --tw-hue-rotate:;
    --tw-invert:;
    --tw-saturate:;
    --tw-sepia:;
    --tw-drop-shadow:;
    --tw-backdrop-blur:;
    --tw-backdrop-brightness:;
    --tw-backdrop-contrast:;
    --tw-backdrop-grayscale:;
    --tw-backdrop-hue-rotate:;
    --tw-backdrop-invert:;
    --tw-backdrop-opacity:;
    --tw-backdrop-saturate:;
    --tw-backdrop-sepia:;
    --tw-contain-size:;
    --tw-contain-layout:;
    --tw-contain-paint:;
    --tw-contain-style:
}

::backdrop {
    --tw-border-spacing-x: 0;
    --tw-border-spacing-y: 0;
    --tw-translate-x: 0;
    --tw-translate-y: 0;
    --tw-rotate: 0;
    --tw-skew-x: 0;
    --tw-skew-y: 0;
    --tw-scale-x: 1;
    --tw-scale-y: 1;
    --tw-pan-x:;
    --tw-pan-y:;
    --tw-pinch-zoom:;
    --tw-scroll-snap-strictness: proximity;
    --tw-gradient-from-position:;
    --tw-gradient-via-position:;
    --tw-gradient-to-position:;
    --tw-ordinal:;
    --tw-slashed-zero:;
    --tw-numeric-figure:;
    --tw-numeric-spacing:;
    --tw-numeric-fraction:;
    --tw-ring-inset:;
    --tw-ring-offset-width: 0px;
    --tw-ring-offset-color: #fff;
    --tw-ring-color: rgba(59,130,246,.5);
    --tw-ring-offset-shadow: 0 0 #0000;
    --tw-ring-shadow: 0 0 #0000;
    --tw-shadow: 0 0 #0000;
    --tw-shadow-colored: 0 0 #0000;
    --tw-blur:;
    --tw-brightness:;
    --tw-contrast:;
    --tw-grayscale:;
    --tw-hue-rotate:;
    --tw-invert:;
    --tw-saturate:;
    --tw-sepia:;
    --tw-drop-shadow:;
    --tw-backdrop-blur:;
    --tw-backdrop-brightness:;
    --tw-backdrop-contrast:;
    --tw-backdrop-grayscale:;
    --tw-backdrop-hue-rotate:;
    --tw-backdrop-invert:;
    --tw-backdrop-opacity:;
    --tw-backdrop-saturate:;
    --tw-backdrop-sepia:;
    --tw-contain-size:;
    --tw-contain-layout:;
    --tw-contain-paint:;
    --tw-contain-style:
}
/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/

*, :after, :before {
    box-sizing: border-box;
    border: 0 solid #e5e7eb
}

:after, :before {
    --tw-content: ""
}

:host, html {
    line-height: 1.5;
    -webkit-text-size-adjust: 100%;
    -moz-tab-size: 4;
    -o-tab-size: 4;
    tab-size: 4;
    font-family: Vazirmatn,Inter,system-ui,sans-serif;
    font-feature-settings: normal;
    font-variation-settings: normal;
    -webkit-tap-highlight-color: transparent
}

body {
    margin: 0;
    line-height: inherit
}

hr {
    height: 0;
    color: inherit;
    border-top-width: 1px
}

abbr:where([title]) {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted
}

h1, h2, h3, h4, h5, h6 {
    font-size: inherit;
    font-weight: inherit
}

a {
    color: inherit;
    text-decoration: inherit
}

b, strong {
    font-weight: bolder
}

code, kbd, pre, samp {
    font-family: ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;
    font-feature-settings: normal;
    font-variation-settings: normal;
    font-size: 1em
}

small {
    font-size: 80%
}

sub, sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline
}

sub {
    bottom: -.25em
}

sup {
    top: -.5em
}

table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse
}

button, input, optgroup, select, textarea {
    font-family: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    font-size: 100%;
    font-weight: inherit;
    line-height: inherit;
    letter-spacing: inherit;
    color: inherit;
    margin: 0;
    padding: 0
}

button, select {
    text-transform: none
}

button, input:where([type=button]), input:where([type=reset]), input:where([type=submit]) {
    -webkit-appearance: button;
    background-color: transparent;
    background-image: none
}

:-moz-focusring {
    outline: auto
}

:-moz-ui-invalid {
    box-shadow: none
}

progress {
    vertical-align: baseline
}

::-webkit-inner-spin-button, ::-webkit-outer-spin-button {
    height: auto
}

[type=search] {
    -webkit-appearance: textfield;
    outline-offset: -2px
}

::-webkit-search-decoration {
    -webkit-appearance: none
}

::-webkit-file-upload-button {
    -webkit-appearance: button;
    font: inherit
}

summary {
    display: list-item
}

blockquote, dd, dl, figure, h1, h2, h3, h4, h5, h6, hr, p, pre {
    margin: 0
}

fieldset {
    margin: 0
}

fieldset, legend {
    padding: 0
}

menu, ol, ul {
    list-style: none;
    margin: 0;
    padding: 0
}

dialog {
    padding: 0
}

textarea {
    resize: vertical
}

    input::-moz-placeholder, textarea::-moz-placeholder {
        opacity: 1;
        color: #9ca3af
    }

    input::placeholder, textarea::placeholder {
        opacity: 1;
        color: #9ca3af
    }

[role=button], button {
    cursor: pointer
}

:disabled {
    cursor: default
}

audio, canvas, embed, iframe, img, object, svg, video {
    display: block;
    vertical-align: middle
}

img, video {
    max-width: 100%;
    height: auto
}

[hidden]:where(:not([hidden=until-found])) {
    display: none
}

.fixed {
    position: fixed
}

.absolute {
    position: absolute
}

.relative {
    position: relative
}

.inset-0 {
    inset: 0
}

.left-0 {
    left: 0
}

.right-0 {
    right: 0
}

.top-0 {
    top: 0
}

.z-10 {
    z-index: 10
}

.z-50 {
    z-index: 50
}

.mx-auto {
    margin-left: auto;
    margin-right: auto
}

.mb-1 {
    margin-bottom: .25rem
}

.mb-12 {
    margin-bottom: 3rem
}

.mb-4 {
    margin-bottom: 1rem
}

.mb-8 {
    margin-bottom: 2rem
}

.mt-1 {
    margin-top: .25rem
}

.block {
    display: block
}

.flex {
    display: flex
}

.inline-flex {
    display: inline-flex
}

.grid {
    display: grid
}

.hidden {
    display: none
}

.h-10 {
    height: 2.5rem
}

.h-14 {
    height: 3.5rem
}

.min-h-\[80vh\] {
    min-height: 80vh
}

.min-h-screen {
    min-height: 100vh
}

.w-auto {
    width: auto
}

.w-full {
    width: 100%
}

.max-w-3xl {
    max-width: 48rem
}

.max-w-7xl {
    max-width: 80rem
}

.max-w-lg {
    max-width: 32rem
}

.resize-none {
    resize: none
}

.grid-cols-1 {
    grid-template-columns: repeat(1,minmax(0,1fr))
}

.items-end {
    align-items: flex-end
}

.items-center {
    align-items: center
}

.justify-center {
    justify-content: center
}

.gap-12 {
    gap: 3rem
}

.gap-4 {
    gap: 1rem
}

.gap-8 {
    gap: 2rem
}

.space-y-6 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(1.5rem*(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(1.5rem*var(--tw-space-y-reverse))
}

.space-y-8 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(2rem*(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(2rem*var(--tw-space-y-reverse))
}

.overflow-hidden {
    overflow: hidden
}

.overflow-x-hidden {
    overflow-x: hidden
}

.border-none {
    border-style: none
}

.bg-black\/75 {
    background-color: rgba(0,0,0,.75)
}

.bg-dark {
    --tw-bg-opacity: 1;
    background-color: rgb(10 10 10/var(--tw-bg-opacity,1))
}

.bg-surface {
    --tw-bg-opacity: 1;
    background-color: rgb(26 26 26/var(--tw-bg-opacity,1))
}

.bg-transparent {
    background-color: transparent
}

.px-6 {
    padding-left: 1.5rem;
    padding-right: 1.5rem
}

.py-16 {
    padding-top: 4rem;
    padding-bottom: 4rem
}

.py-24 {
    padding-top: 6rem;
    padding-bottom: 6rem
}

.py-5 {
    padding-top: 1.25rem;
    padding-bottom: 1.25rem
}

.pb-0 {
    padding-bottom: 0
}

.pb-16 {
    padding-bottom: 4rem
}

.pt-24 {
    padding-top: 6rem
}

.pt-4 {
    padding-top: 1rem
}

.text-center {
    text-align: center
}

.text-right {
    text-align: right
}

.text-3xl {
    font-size: 1.875rem;
    line-height: 2.25rem
}

.text-4xl {
    font-size: 2.25rem;
    line-height: 2.5rem
}

.text-base {
    font-size: 1rem;
    line-height: 1.5rem
}

.text-sm {
    font-size: .875rem;
    line-height: 1.25rem
}

.text-xl {
    font-size: 1.25rem;
    line-height: 1.75rem
}

.font-semibold {
    font-weight: 600
}

.leading-relaxed {
    line-height: 1.625
}

.tracking-wide {
    letter-spacing: .025em
}

.text-gold {
    --tw-text-opacity: 1;
    color: rgb(197 164 126/var(--tw-text-opacity,1))
}

.text-gray-300 {
    --tw-text-opacity: 1;
    color: rgb(209 213 219/var(--tw-text-opacity,1))
}

.text-gray-400 {
    --tw-text-opacity: 1;
    color: rgb(156 163 175/var(--tw-text-opacity,1))
}

.text-red-400 {
    --tw-text-opacity: 1;
    color: rgb(248 113 113/var(--tw-text-opacity,1))
}

.text-white {
    --tw-text-opacity: 1;
    color: rgb(255 255 255/var(--tw-text-opacity,1))
}

.antialiased {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale
}

.opacity-80 {
    opacity: .8
}

.opacity-90 {
    opacity: .9
}

.transition-all {
    transition-property: all;
    transition-timing-function: cubic-bezier(.4,0,.2,1);
    transition-duration: .15s
}

.transition-opacity {
    transition-property: opacity;
    transition-timing-function: cubic-bezier(.4,0,.2,1);
    transition-duration: .15s
}

.duration-500 {
    transition-duration: .5s
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 80px;
    font-size: 14px
}

@media (min-width:768px) {
    html {
        font-size: 16px
    }
}

body {
    color: #fff;
    font-family: Vazirmatn,sans-serif;
    -webkit-font-smoothing: antialiased
}

.preloader, body {
    background: #0a0a0a
}

.preloader {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2rem;
    transition: opacity .6s ease,visibility .6s ease
}

    .preloader.is-hidden {
        opacity: 0;
        visibility: hidden;
        pointer-events: none
    }

.preloader-logo {
    height: 3rem;
    width: auto;
    animation: preloaderPulse 1.5s ease-in-out infinite
}

.preloader-bar {
    width: 120px;
    height: 2px;
    background: #27272a;
    border-radius: 9999px;
    overflow: hidden
}

.preloader-bar-fill {
    height: 100%;
    width: 0;
    background: #c5a47e;
    animation: preloaderFill 1.2s ease-in-out infinite
}

@keyframes preloaderPulse {
    0%,to {
        opacity: .6
    }

    50% {
        opacity: 1
    }
}

@keyframes preloaderFill {
    0% {
        width: 0;
        margin-right: 100%
    }

    50% {
        width: 100%;
        margin-right: 0
    }

    to {
        width: 0;
        margin-right: 0
    }
}


.menu-trigger {
    display: flex;
    align-items: center;
    gap: .625rem;
    font-size: .875rem;
    color: #d1d5db;
    transition: color .3s;
    background: none;
    border: none;
    cursor: pointer;
    padding: .5rem
}

    .menu-trigger:hover {
        color: #c5a47e
    }

.menu-trigger-dot {
    width: 8px;
    height: 8px;
    border-radius: 9999px;
    background: #c5a47e;
    transition: transform .3s
}

.menu-trigger:hover .menu-trigger-dot {
    transform: scale(1.3)
}

.fullscreen-menu {
    position: fixed;
    inset: 0;
    z-index: 100;
    background: hsla(0,0%,4%,.97);
    backdrop-filter: blur(20px);
    opacity: 0;
    visibility: hidden;
    transition: opacity .5s ease,visibility .5s ease
}

    .fullscreen-menu.is-open {
        opacity: 1;
        visibility: visible
    }

.fullscreen-menu-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    padding: 2rem;
    position: relative
}

.menu-close-btn {
    position: absolute;
    top: 1.5rem;
    left: 1.5rem;
    color: #fff;
    padding: .5rem;
    background: none;
    border: none;
    cursor: pointer;
    transition: color .3s,transform .3s
}

    .menu-close-btn:hover {
        color: #c5a47e;
        transform: rotate(90deg)
    }

.fullscreen-nav {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem
}

.fullscreen-nav-link {
    font-size: 1.75rem;
    font-weight: 500;
    color: #d1d5db;
    transition: color .3s,transform .3s;
    position: relative
}

@media (min-width:768px) {
    .fullscreen-nav-link {
        font-size: 2.5rem
    }
}

.fullscreen-nav-link.is-active, .fullscreen-nav-link:hover {
    color: #c5a47e
}


.fullscreen-menu.is-open .fullscreen-nav-link {
    animation: menuLinkIn .5s ease forwards;
    opacity: 0
}

    .fullscreen-menu.is-open .fullscreen-nav-link:first-child {
        animation-delay: .1s
    }

    .fullscreen-menu.is-open .fullscreen-nav-link:nth-child(2) {
        animation-delay: .15s
    }

    .fullscreen-menu.is-open .fullscreen-nav-link:nth-child(3) {
        animation-delay: .2s
    }

    .fullscreen-menu.is-open .fullscreen-nav-link:nth-child(4) {
        animation-delay: .25s
    }

    .fullscreen-menu.is-open .fullscreen-nav-link:nth-child(5) {
        animation-delay: .3s
    }

@keyframes menuLinkIn {
    0% {
        opacity: 0;
        transform: translateY(20px)
    }

    to {
        opacity: 1;
        transform: translateY(0)
    }
}

.fullscreen-menu-footer {
    position: absolute;
    bottom: 2rem
}

.section-label {
    display: flex;
    align-items: center;
    gap: .5rem;
    font-size: .875rem;
    color: #9ca3af;
    padding-bottom: 1rem;
    border-bottom: 1px solid #27272a
}

    .section-label:before {
        content: "";
        width: 6px;
        height: 6px;
        border-radius: 9999px;
        background: #c5a47e;
        flex-shrink: 0
    }

.section-title {
    font-size: 1.875rem;
    font-weight: 600;
    line-height: 1.25
}

@media (min-width:768px) {
    .section-title {
        font-size: 2.25rem
    }
}

.section-title .accent {
    color: #c5a47e
}

.form-input-underline {
    width: 100%;
    background: transparent;
    border: 0;
    border-bottom: 1px solid #52525b;
    color: #fff;
    padding: .75rem 0;
    outline: none;
    transition: border-color .3s
}

    .form-input-underline::-moz-placeholder {
        color: #71717a
    }

    .form-input-underline::placeholder {
        color: #71717a
    }

    .form-input-underline:focus {
        border-color: #c5a47e
    }

.btn-gold {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #c5a47e;
    color: #0a0a0a;
    font-weight: 600;
    padding: .75rem 2.5rem;
    border-radius: 9999px;
    transition: all .3s;
    border: none;
    cursor: pointer
}

    .btn-gold:hover {
        background: #fbbf24;
        transform: scale(1.05);
        box-shadow: 0 10px 25px hsla(32,38%,63%,.2)
    }

.alert-success {
    background: rgba(20,83,45,.4);
    border: 1px solid #15803d;
    color: #86efac;
    border-radius: .5rem
}

.alert-error, .alert-success {
    text-align: center;
    padding: 1rem;
    margin-bottom: 2rem
}

.alert-error {
    background: rgba(127,29,29,.4);
    border: 1px solid #b91c1c;
    color: #fca5a5;
    border-radius: .5rem
}

.slider-btn {
    width: 3rem;
    height: 3rem;
    border-radius: 9999px;
    border: 1px solid #52525b;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    color: #fff;
    cursor: pointer;
    transition: all .3s
}

    .slider-btn:hover {
        border-color: #c5a47e;
        color: #c5a47e
    }

.grid-lines-bg {
    background-image: linear-gradient(90deg,hsla(0,0%,100%,.04) 1px,transparent 0);
    background-size: 20% 100%
}

.parallax-bg {
    background-attachment: fixed;
    background-position: 50%;
    background-size: cover
}

@media (max-width:1024px) {
    .parallax-bg {
        background-attachment: scroll
    }
}

.project-card {
    position: relative;
    aspect-ratio: 4/3;
    overflow: hidden;
    cursor: pointer;
    border: 1px solid rgba(39,39,42,.6);
    border-radius: 2px
}

.project-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: 50%;
    transform: scale(1.08);
    transition: transform .7s ease
}

.project-card:hover .project-bg {
    transform: scale(1)
}

.project-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.45);
    transition: background .5s
}

.project-card:hover .project-overlay {
    background: rgba(0,0,0,.3)
}

.project-info {
    position: absolute;
    bottom: 0;
    right: 0;
    left: 0;
    padding: 1.25rem 1.5rem;
    pointer-events: none;
    z-index: 2;
    opacity: 0;
    transform: translateY(.75rem);
    transition: all .5s
}

.project-card:hover .project-info {
    opacity: 1;
    transform: translateY(0)
}

.compare {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
    -webkit-user-select: none;
    user-select: none;
    cursor: ew-resize;
    touch-action: none
}

.compare img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    -o-object-fit: contain;
    object-fit: contain;
    pointer-events: none
}

.compare-before {
    clip-path: inset(0 calc(100% - var(--pos, 50%)) 0 0)
}

.project-static {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden
}

.project-static img {
    width: 100%;
    height: 100%;
    -o-object-fit: contain;
    object-fit: contain;
    display: block
}

.compare-divider {
    position: absolute;
    top: 0;
    bottom: 0;
    left: var(--pos, 50%);
    width: 2px;
    background: #c5a47e;
    transform: translateX(-50%);
    pointer-events: none
}

.compare-handle {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 9999px;
    background: #c5a47e;
    color: #0a0a0a;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 20px rgba(0,0,0,.4);
    font-size: .9rem;
    font-weight: 700
}

.compare-label {
    position: absolute;
    bottom: .75rem;
    padding: .25rem .75rem;
    font-size: .75rem;
    border-radius: 9999px;
    background: rgba(0,0,0,.55);
    color: #fff;
    pointer-events: none;
    z-index: 2
}

.compare-label-before {
    right: .75rem
}

.compare-label-after {
    left: .75rem
}

.service-card {
    position: relative;
    flex-shrink: 0;
    width: 340px;
    overflow: hidden;
    border-radius: 2px
}

@media (min-width:768px) {
    .service-card {
        width: 400px
    }
}

.service-img {
    width: 100%;
    height: 18rem;
    -o-object-fit: cover;
    object-fit: cover;
    transition: transform .7s
}

.service-card:hover .service-img {
    transform: scale(1.1)
}

.service-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(0deg,rgba(0,0,0,.9),rgba(0,0,0,.4),transparent);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 1.5rem;
    transition: .5s
}

.service-card:hover .service-overlay {
    background: linear-gradient(0deg,rgba(0,0,0,.95),rgba(0,0,0,.6),transparent)
}

.service-card:hover h3 {
    color: #c5a47e
}

.blog-card {
    position: relative;
    overflow: hidden;
    background: rgba(24,24,27,.5);
    transition: all .5s
}

    .blog-card:hover {
        transform: translateY(-8px);
        box-shadow: 0 25px 50px rgba(0,0,0,.5)
    }

.blog-img {
    width: 100%;
    height: 14rem;
    -o-object-fit: cover;
    object-fit: cover;
    transition: transform .7s
}

.blog-card:hover .blog-img {
    transform: scale(1.05)
}

.blog-card:hover h3 {
    color: #c5a47e
}

#services-track::-webkit-scrollbar {
    display: none
}

@keyframes bounceSlow {
    0%,to {
        transform: translateY(0)
    }

    50% {
        transform: translateY(-8px)
    }
}

.animate-bounce-slow {
    animation: bounceSlow 2s infinite
}

.hover\:opacity-100:hover {
    opacity: 1
}

@media (min-width:640px) {
    .sm\:grid-cols-2 {
        grid-template-columns: repeat(2,minmax(0,1fr))
    }
}

@media (min-width:768px) {
    .md\:grid-cols-2 {
        grid-template-columns: repeat(2,minmax(0,1fr))
    }

    .md\:gap-6 {
        gap: 1.5rem
    }

    .md\:text-2xl {
        font-size: 1.5rem;
        line-height: 2rem
    }

    .md\:text-4xl {
        font-size: 2.25rem;
        line-height: 2.5rem
    }

    .md\:text-5xl {
        font-size: 3rem;
        line-height: 1
    }

    .md\:text-lg {
        font-size: 1.125rem;
        line-height: 1.75rem
    }
}

@media (min-width:1024px) {
    .lg\:grid-cols-2 {
        grid-template-columns: repeat(2,minmax(0,1fr))
    }

    .lg\:grid-cols-3 {
        grid-template-columns: repeat(3,minmax(0,1fr))
    }
}

/* =========================================================================
   THEME PALETTE  (Archetype — warm cream / olive)
   Change these variables to recolor the entire site.
   ========================================================================= */
:root {
    --color-bg: #ECE7DD;            /* main site background */
    --color-surface: #E5DFD3;      /* sections & cards */
    --color-text: #2C2A24;         /* primary text */
    --color-muted: #8A8175;        /* secondary text */
    --color-accent: #6E7153;       /* olive accent — buttons & highlights */
    --color-accent-hover: #565838;
    --color-on-accent: #F4F1E8;    /* text/icon on accent buttons */
    --color-border: #D6CFC1;       /* hairlines & card borders */
    --color-hero-bg: #2B2C24;      /* dark fill behind hero imagery */
    --color-on-dark: #F4F1E8;      /* text over dark imagery */
    --color-on-dark-muted: #C9C4B6;
}

/* --- base surfaces & text --- */
body {
    background: var(--color-bg);
    color: var(--color-text)
}

.preloader, body {
    background: var(--color-bg)
}

.preloader-bar {
    background: var(--color-border)
}

.preloader-bar-fill {
    background: var(--color-accent)
}

.bg-dark {
    background-color: var(--color-bg)
}

.bg-surface {
    background-color: var(--color-surface)
}

/* --- accents & helpers (remap the old "gold") --- */
.text-gold {
    color: var(--color-accent)
}

.text-gray-300 {
    color: var(--color-on-dark-muted)
}

.text-gray-400, .text-muted {
    color: var(--color-muted)
}

.section-title .accent {
    color: var(--color-accent)
}

.section-label {
    color: var(--color-muted);
    border-color: var(--color-border)
}

.section-label:before {
    background: var(--color-accent)
}

/* --- buttons --- */
.btn-gold {
    background: var(--color-accent);
    color: var(--color-on-accent)
}

    .btn-gold:hover {
        background: var(--color-accent-hover);
        box-shadow: 0 10px 25px rgba(110,113,83,.25)
    }

/* --- form --- */
.form-input-underline {
    border-color: var(--color-border);
    color: var(--color-text)
}

    .form-input-underline::-moz-placeholder {
        color: var(--color-muted)
    }

    .form-input-underline::placeholder {
        color: var(--color-muted)
    }

    .form-input-underline:focus {
        border-color: var(--color-accent)
    }

/* --- header --- */

/* --- header: transparent over hero, fades to solid on scroll --- */
#site-header.is-scrolled {
    background: rgba(236,231,221,.92);
    backdrop-filter: blur(12px);
    box-shadow: 0 4px 30px rgba(0,0,0,.08)
}

/* logo hidden until the header takes color */
#site-header img {
    opacity: 0;
    visibility: hidden;
    transition: opacity .4s ease, visibility .4s ease
}

#site-header.is-scrolled img {
    opacity: 1;
    visibility: visible
}

/* --- hero: square photo framed on a dark olive fill --- */
.hero-bg {
    --header-h: 4.1rem;
    margin-top: var(--header-h);
    min-height: calc(100vh - var(--header-h));
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    background-color: var(--color-hero-bg)
}

@media (max-width: 767px) {
    .hero-bg {
        background-position: calc(50% - 66px) center;
    }
}

/* --- before/after slider accent --- */
.compare-divider {
    background: var(--color-accent)
}

.compare-handle {
    background: var(--color-accent);
    color: var(--color-on-accent)
}

/* --- project cards (caption below image, reference style) --- */
.project-card {
    aspect-ratio: auto;
    overflow: visible;
    border: 0;
    border-radius: 0;
    cursor: default
}

    .project-card .compare {
        aspect-ratio: 4/3;
        border: 1px solid var(--color-border);
        border-radius: 2px
    }

/* --- scroll to top button (bottom-left) --- */
.scroll-top {
    position: fixed;
    bottom: 1.5rem;
    left: 1.5rem;
    z-index: 90;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    color: var(--color-on-accent);
    background: var(--color-accent);
    border: 0;
    border-radius: 9999px;
    cursor: pointer;
    box-shadow: 0 6px 20px rgba(0,0,0,.35);
    opacity: 0;
    visibility: hidden;
    transform: translateY(1rem);
    transition: opacity .3s ease, visibility .3s ease, transform .3s ease
}

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

.scroll-top:hover {
    transform: translateY(-2px);
    filter: brightness(1.05)
}

/* --- "view before/after" badge on the exception card --- */
.compare-trigger {
    position: absolute;
    bottom: .75rem;
    right: .75rem;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .45rem .85rem;
    font-size: .8rem;
    font-family: inherit;
    color: var(--color-on-accent);
    background: var(--color-accent);
    border: 0;
    border-radius: 9999px;
    cursor: pointer;
    box-shadow: 0 4px 16px rgba(0,0,0,.35);
    transition: transform .25s ease, filter .25s ease
}

.compare-trigger:hover {
    transform: translateY(-2px);
    filter: brightness(1.05)
}

.compare-trigger-icon {
    font-size: .95rem;
    font-weight: 700;
    line-height: 1
}

/* --- before/after modal --- */
.compare-modal {
    position: fixed;
    inset: 0;
    z-index: 100;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.25rem;
    opacity: 0;
    visibility: hidden;
    transition: opacity .3s ease, visibility .3s ease
}

.compare-modal.is-open {
    opacity: 1;
    visibility: visible
}

.compare-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.8);
    backdrop-filter: blur(2px)
}

.compare-modal-dialog {
    position: relative;
    width: auto;
    max-width: 92vw;
    transform: scale(.96);
    transition: transform .3s ease
}

.compare-modal.is-open .compare-modal-dialog {
    transform: scale(1)
}

.compare-modal-compare {
    width: auto;
    aspect-ratio: auto;
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 20px 60px rgba(0,0,0,.5)
}

/* the "after" image sets the exact frame size → no extra space, badges hug the edges */
.compare-modal-compare .compare-after {
    position: relative;
    display: block;
    width: auto;
    height: auto;
    max-width: 92vw;
    max-height: 82vh;
    -o-object-fit: contain;
    object-fit: contain
}

/* "before" overlays the same box and keeps full proportions */
.compare-modal-compare .compare-before {
    -o-object-fit: cover;
    object-fit: cover
}

.compare-modal-close {
    position: absolute;
    top: .75rem;
    left: .75rem;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    color: #fff;
    background: rgba(0,0,0,.5);
    border: 0;
    border-radius: 9999px;
    cursor: pointer;
    transition: background .25s ease
}

.compare-modal-close:hover {
    background: rgba(0,0,0,.75)
}

.project-meta {
    padding-top: .85rem;
    text-align: right
}

.project-title {
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--color-text);
    margin-bottom: .15rem
}

.project-cat {
    font-size: .8rem;
    color: var(--color-accent);
    margin-bottom: .5rem
}

.project-desc {
    font-size: .85rem;
    line-height: 1.7;
    color: var(--color-muted)
}

/* --- section label aligned to start (RTL = right) --- */
.section-label-start {
    justify-content: flex-start
}

/* --- generic underlined link --- */
.link-underline {
    display: inline-block;
    font-size: .8rem;
    letter-spacing: .06em;
    color: var(--color-accent);
    border-bottom: 1px solid var(--color-accent);
    padding-bottom: 3px;
    transition: opacity .3s
}

    .link-underline:hover {
        opacity: .65
    }

/* --- philosophy section --- */
.philosophy-image {
    position: relative;
    overflow: hidden;
    border-radius: 2px;
    aspect-ratio: 4/5;
    border: 1px solid var(--color-border)
}

    .philosophy-image img {
        width: 100%;
        height: 100%;
        -o-object-fit: cover;
        object-fit: cover;
        filter: grayscale(1) contrast(1.03);
        transition: filter .6s ease, transform .9s ease
    }

    .philosophy-image:hover img {
        filter: grayscale(0);
        transform: scale(1.03)
    }

/* --- services list --- */
.service-list {
    display: flex;
    flex-direction: column
}

.service-item {
    display: flex;
    gap: 1.25rem;
    align-items: flex-start;
    padding: 1.35rem 0;
    border-top: 1px solid var(--color-border)
}

    .service-item:last-child {
        border-bottom: 1px solid var(--color-border)
    }

.service-num {
    font-family: 'Plus Jakarta Sans',sans-serif;
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--color-accent);
    line-height: 1;
    flex-shrink: 0;
    min-width: 2.5rem
}

.service-title {
    font-size: 1.1rem;
    font-weight: 600;
    margin-bottom: .3rem;
    transition: color .3s
}

.service-item:hover .service-title {
    color: var(--color-accent)
}

/* --- success alert: clear, vivid green --- */
.alert-success {
    background: #e6f6ec;
    border: 1px solid #2ea35d;
    color: #15803d
}

/* --- error alert: darker, readable red --- */
.alert-error {
    background: #fbe9e9;
    border: 1px solid #c0392b;
    color: #b91c1c
}

/* --- submit button loading state --- */
.btn-gold.is-loading {
    opacity: .85;
    cursor: progress;
    gap: .6rem
}

.btn-gold:disabled {
    cursor: not-allowed
}

    .btn-gold:disabled:hover {
        transform: none;
        background: var(--color-accent);
        box-shadow: none
    }

.btn-spinner {
    width: 1.05em;
    height: 1.05em;
    border: 2px solid rgba(244,241,232,.4);
    border-top-color: var(--color-on-accent);
    border-radius: 9999px;
    animation: btnSpin .7s linear infinite;
    flex-shrink: 0
}

@keyframes btnSpin {
    to {
        transform: rotate(360deg)
    }
}

/* --- section label centered --- */
.section-label-center {
    justify-content: center
}

/* --- services poster image --- */
.services-poster {
    width: 100%;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid var(--color-border);
    box-shadow: 0 30px 60px rgba(0,0,0,.12)
}

    .services-poster img {
        width: 100%;
        height: auto;
        display: block
    }

/* --- projects: row-major grid (order 1,2,3… right→left), varied heights --- */
.projects-masonry {
    display: grid;
    grid-template-columns: 1fr;
    align-items: start;
    gap: 2rem 1.5rem;
    direction: rtl
}

@media (min-width:640px) {
    .projects-masonry {
        grid-template-columns: repeat(2, 1fr)
    }
}

@media (min-width:1024px) {
    .projects-masonry {
        grid-template-columns: repeat(6, 1fr);
        gap: 2rem
    }

    /* each card spans 2 of the 6 columns → 3 per row */
    .projects-masonry .project-card {
        grid-column: span 2
    }

    /* center a trailing pair (last row of 2) */
    .projects-masonry .project-card:nth-child(3n+1):nth-last-child(2) {
        grid-column: 2 / span 2
    }

    /* center a single trailing card (last row of 1) */
    .projects-masonry .project-card:nth-child(3n+1):nth-last-child(1) {
        grid-column: 3 / span 2
    }
}

.projects-masonry .project-card {
    width: 100%
}

/* varied heights so the grid feels scattered, not lined-up */
.projects-masonry .project-card:nth-child(3n+1) .compare,
.projects-masonry .project-card:nth-child(3n+1) .project-static {
    aspect-ratio: 4/5
}

.projects-masonry .project-card:nth-child(3n+2) .compare,
.projects-masonry .project-card:nth-child(3n+2) .project-static {
    aspect-ratio: 1/1
}

.projects-masonry .project-card:nth-child(3n+3) .compare,
.projects-masonry .project-card:nth-child(3n+3) .project-static {
    aspect-ratio: 3/4
}


/* ============================================================
   Digital VCard page (/card)
   ============================================================ */
.vcard-page {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #0a0a0a;
    padding: 1.5rem 1rem;
}

.vcard {
    position: relative;
    width: 100%;
    max-width: 420px;
    border-radius: 1.25rem;
    overflow: hidden;
    box-shadow: 0 30px 80px rgba(0, 0, 0, .55);
}

.vcard-bg {
    display: block;
    width: 100%;
    height: auto;
}

.vcard-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 1rem;
    padding: 1.5rem 1.25rem 1.75rem;
    background: linear-gradient(to top, rgba(0,0,0,.78) 0%, rgba(0,0,0,.35) 38%, transparent 62%);
}

.vcard-links {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .75rem;
}

.vcard-link {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    padding: 1rem .5rem;
    border-radius: .9rem;
    color: #F4F1E8;
    text-align: center;
    border: 1px solid transparent;
    background-image:
        linear-gradient(rgba(15, 14, 12, .82), rgba(15, 14, 12, .82)),
        linear-gradient(120deg, rgba(197, 164, 126, .15), #c5a47e 45%, #f0d9a8 55%, rgba(197, 164, 126, .15));
    background-origin: border-box;
    background-clip: padding-box, border-box;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .45), inset 0 1px 0 rgba(255, 255, 255, .04);
    backdrop-filter: blur(6px);
    transition: transform .25s ease, box-shadow .25s ease, color .25s ease;
}

.vcard-link .vcard-link-icon {
    color: #c5a47e;
}

.vcard-link:hover {
    transform: translateY(-3px);
    color: #fff;
    box-shadow: 0 12px 30px rgba(0, 0, 0, .55), 0 0 16px rgba(197, 164, 126, .22);
}

.vcard-link-icon {
    width: 1.75rem;
    height: 1.75rem;
    display: inline-flex;
}

.vcard-link-icon svg {
    width: 100%;
    height: 100%;
}

.vcard-link-text {
    font-size: .9rem;
    font-weight: 500;
}

.vcard-cta {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .6rem;
    width: 100%;
    padding: 1rem 1.5rem;
    border-radius: 9999px;
    color: #F4F1E8;
    font-weight: 600;
    font-size: 1.05rem;
    border: 1px solid transparent;
    background-image:
        linear-gradient(rgba(15, 14, 12, .82), rgba(15, 14, 12, .82)),
        linear-gradient(120deg, rgba(197, 164, 126, .15), #c5a47e 45%, #f0d9a8 55%, rgba(197, 164, 126, .15));
    background-origin: border-box;
    background-clip: padding-box, border-box;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .45), inset 0 1px 0 rgba(255, 255, 255, .04);
    backdrop-filter: blur(6px);
    transition: transform .25s ease, box-shadow .25s ease, color .25s ease;
}

.vcard-cta:hover {
    transform: scale(1.02);
    color: #fff;
    box-shadow: 0 12px 34px rgba(0, 0, 0, .55), 0 0 18px rgba(197, 164, 126, .25);
}

.vcard-cta-arrow {
    width: 1.15rem;
    height: 1.15rem;
    flex-shrink: 0;
    color: #c5a47e;
    transform: rotate(180deg);
    transition: transform .25s ease;
}

.vcard-cta:hover .vcard-cta-arrow {
    transform: rotate(180deg) translateX(4px);
}

/* --- traveling gold light around the button border (only on the frame) --- */
@property --vcard-angle {
    syntax: '<angle>';
    initial-value: 0deg;
    inherits: false;
}

.vcard-link,
.vcard-cta {
    position: relative;
    isolation: isolate;
}

.vcard-link::after,
.vcard-cta::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    padding: 1.5px;
    background: conic-gradient(from var(--vcard-angle),
        transparent 0 62%,
        rgba(240, 217, 168, .35) 74%,
        #f0d9a8 84%,
        #fff6e0 90%,
        #f0d9a8 96%,
        transparent 100%);
    -webkit-mask:
        linear-gradient(#000 0 0) content-box,
        linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    pointer-events: none;
    z-index: 1;
    animation: vcardBorderSpin 4s linear infinite;
}

.vcard-cta::after {
    animation-duration: 3.5s;
}

@keyframes vcardBorderSpin {
    to { --vcard-angle: 360deg; }
}

@media (prefers-reduced-motion: reduce) {
    .vcard-link::after,
    .vcard-cta::after {
        animation: none;
    }
}

/* Contact form highlight when arriving via #contact */
#contact-form {
    border-radius: 1rem;
    transition: box-shadow .4s ease, background .4s ease;
}

#contact-form.is-highlighted {
    animation: contactPulse 2s ease;
}

@keyframes contactPulse {
    0%   { box-shadow: 0 0 0 0 rgba(110, 113, 83, 0); background: transparent; }
    15%  { box-shadow: 0 0 0 4px rgba(110, 113, 83, .55); background: rgba(110, 113, 83, .08); }
    100% { box-shadow: 0 0 0 0 rgba(110, 113, 83, 0); background: transparent; }
}

/* ============================================================
   Site Footer
   ============================================================ */
.site-footer {
    background: var(--color-hero-bg);
    color: var(--color-on-dark);
    border-top: 1px solid rgba(255, 255, 255, .08);
}

.footer-inner {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2.75rem;
    text-align: center;
    justify-items: center;
}

@media (min-width: 768px) {
    .footer-inner {
        grid-template-columns: 1.4fr 1fr 1fr;
        gap: 2rem;
        text-align: right;
        justify-items: start;
        align-items: start;
    }
}

.footer-col {
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
    align-items: center;
}

@media (min-width: 768px) {
    .footer-col {
        align-items: flex-start;
    }
}

.footer-brand img {
    height: 2.75rem;
    width: auto;
    opacity: .95;
}

.footer-tagline {
    font-size: .9rem;
    line-height: 1.9;
    color: var(--color-on-dark-muted);
    max-width: 22rem;
}

.footer-heading {
    font-size: 1rem;
    font-weight: 700;
    color: var(--color-on-dark);
    position: relative;
    padding-bottom: .65rem;
    margin-bottom: .25rem;
}

.footer-heading::after {
    content: "";
    position: absolute;
    bottom: 0;
    right: 50%;
    transform: translateX(50%);
    width: 2rem;
    height: 2px;
    border-radius: 2px;
    background: #c5a47e;
}

@media (min-width: 768px) {
    .footer-heading::after {
        right: 0;
        transform: none;
    }
}

.footer-contact {
    display: flex;
    flex-direction: column;
    gap: .85rem;
    align-items: center;
}

@media (min-width: 768px) {
    .footer-contact {
        align-items: flex-start;
    }
}

.footer-phone,
.footer-social {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    color: var(--color-on-dark-muted);
    font-size: 1rem;
    font-weight: 500;
    transition: color .25s ease, transform .25s ease;
}

.footer-phone svg,
.footer-social svg {
    width: 1.2rem;
    height: 1.2rem;
    color: #c5a47e;
    flex-shrink: 0;
    transition: transform .25s ease;
}

.footer-phone:hover,
.footer-social:hover {
    color: var(--color-on-dark);
}

.footer-phone:hover svg,
.footer-social:hover svg {
    transform: scale(1.12);
}

.footer-bottom {
    margin-top: 3rem;
    padding-top: 1.5rem;
    border-top: 1px solid rgba(255, 255, 255, .08);
    text-align: center;
    font-size: .85rem;
    color: var(--color-on-dark-muted);
}

/* Header hamburger — pin to top-right (RTL) without relying on purged utilities */
#menu-toggle {
    position: absolute;
    top: 50%;
    right: 1.5rem;
    transform: translateY(-50%);
    color: #000;
    opacity: 0;
    visibility: hidden;
    transition: opacity .4s ease, visibility .4s ease, color .25s ease;
}

/* show only once the header takes color — exactly like the logo */
#site-header.is-scrolled #menu-toggle {
    opacity: 1;
    visibility: visible;
}

#menu-toggle:hover {
    color: #c5a47e;
}

/* Larger header logo + tighter header padding (standalone, overrides utilities) */
.header-logo {
    height: 3.1rem;
}

.header-pad {
    padding-top: .5rem;
    padding-bottom: .5rem;
}

/* card height follows the image — no crop, no letterbox */
.project-card,
.projects-masonry .project-card:nth-child(3n+1) .project-static,
.projects-masonry .project-card:nth-child(3n+2) .project-static,
.projects-masonry .project-card:nth-child(3n+3) .project-static,
.projects-masonry .project-card:nth-child(3n+1) .compare,
.projects-masonry .project-card:nth-child(3n+2) .compare,
.projects-masonry .project-card:nth-child(3n+3) .compare {
    aspect-ratio: auto;
}

.project-static {
    height: auto;
}

.project-static img {
    height: auto;
    object-fit: fill;
}

/* compare: the 'after' image defines height, 'before' overlays it */
.compare {
    height: auto;
    aspect-ratio: auto;
}

.compare img.compare-after {
    position: relative;
    width: 100%;
    height: auto;
    object-fit: fill;
}

.compare img.compare-before {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: fill;
}
