*,
*::before,
*::after {
    box-sizing: border-box;
}
html {
    -webkit-text-size-adjust: 100%;
}
body {
    margin: 0;
    background-color: #111111;
    color: #e4e2e2;
    font-family: 'Manrope', sans-serif;
    font-size: 16px;
    line-height: 24px;
    -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, h5, h6, p, ul, blockquote {
    margin: 0;
    font-size: inherit;
    font-weight: inherit;
}
ul {
    list-style: none;
    padding: 0;
}
a {
    color: inherit;
    text-decoration: inherit;
}
button {
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
    color: inherit;
    text-align: inherit;
    background: none;
    border: 0;
    margin: 0;
    padding: 0;
    cursor: pointer;
}
img {
    display: block;
    max-width: 100%;
}

.glass-card {
    background: rgba(26, 26, 26, 0.6);
    backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.05);
}
body {
    background-color: #111111;
    color: #e4e2e2;
    overflow-x: hidden;
}

.services-hero-min-h {
    min-height: 52vh;
}
.services-hero-gradient {
    background: linear-gradient(to bottom, #111111, transparent, #111111);
}

.btn-glow-lg:hover {
    box-shadow: 0 0 30px rgba(240, 191, 92, 0.3);
}

.step-glow {
    box-shadow: 0 0 20px rgba(240, 191, 92, 0.4);
}

.pt-20 { padding-top: 100px; }

.flex { display: flex; }
.grid { display: grid; }
.block { display: block; }
.inline-block { display: inline-block; }
.hidden { display: none; }
.flex-col { flex-direction: column; }
.flex-wrap { flex-wrap: wrap; }
.items-center { align-items: center; }
.justify-between { justify-content: space-between; }
.justify-center { justify-content: center; }
.justify-end { justify-content: flex-end; }
.justify-start { justify-content: flex-start; }
.overflow-hidden { overflow: hidden; }

.relative { position: relative; }
.absolute { position: absolute; }
.inset-0 { top: 0; right: 0; bottom: 0; left: 0; }
.-inset-4 { top: -16px; right: -16px; bottom: -16px; left: -16px; }
.top-0 { top: 0; }
.bottom-0 { bottom: 0; }
.left-1\/2 { left: 50%; }
.z-10 { z-index: 10; }

.grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.col-span-2 { grid-column: span 2 / span 2; }
.order-1 { order: 1; }
.order-2 { order: 2; }

.w-12 { width: 48px; }
.w-full { width: 100%; }
.w-px { width: 1px; }
.h-12 { height: 48px; }
.h-20 { height: 80px; }
.h-full { height: 100%; }
.max-w-2xl { max-width: 672px; }
.max-w-3xl { max-width: 768px; }
.max-w-4xl { max-width: 896px; }
.max-w-7xl { max-width: 1280px; }
.max-w-xs { max-width: 320px; }
.mx-auto { margin-left: auto; margin-right: auto; }
.aspect-video { aspect-ratio: 16 / 9; }

.px-margin { padding-left: max(24px, 4vw); padding-right: max(24px, 4vw); }
.px-md { padding-left: 24px; padding-right: 24px; }
.px-lg { padding-left: 48px; padding-right: 48px; }
.px-xl { padding-left: 80px; padding-right: 80px; }
.py-sm { padding-top: 12px; padding-bottom: 12px; }
.py-xl { padding-top: 80px; padding-bottom: 80px; }
.py-1 { padding-top: 4px; padding-bottom: 4px; }
.py-3 { padding-top: 12px; padding-bottom: 12px; }
.py-4 { padding-top: 16px; padding-bottom: 16px; }
.p-lg { padding: 48px; }
.p-xl { padding: 80px; }
.pl-gutter { padding-left: 32px; }
.pr-gutter { padding-right: 32px; }
.pt-0 { padding-top: 0; }
.mb-base { margin-bottom: 8px; }
.mb-sm { margin-bottom: 12px; }
.mb-md { margin-bottom: 24px; }
.mb-lg { margin-bottom: 48px; }
.mb-xl { margin-bottom: 80px; }
.gap-sm { gap: 12px; }
.gap-md { gap: 24px; }
.gap-gutter { gap: 32px; }
.gap-lg { gap: 48px; }
.gap-xl { gap: 80px; }
.space-y-sm > * + * { margin-top: 12px; }
.space-y-md > * + * { margin-top: 24px; }
.space-y-lg > * + * { margin-top: 48px; }

.rounded-lg { border-radius: 8px; }
.rounded-xl { border-radius: 12px; }
.rounded-3xl { border-radius: 24px; }
.rounded-full { border-radius: 9999px; }
.shadow-xl { box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1); }
.blur-3xl { filter: blur(64px); }
.backdrop-blur-xl { backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); }
.opacity-0 { opacity: 0; }
.opacity-60 { opacity: 0.6; }
.object-cover { object-fit: cover; }
.object-contain { object-fit: contain; }

.border { border-width: 1px; border-style: solid; }
.border-b { border-bottom-width: 1px; border-bottom-style: solid; }
.border-t { border-top-width: 1px; border-top-style: solid; }
.border-outline-variant { border-color: #4e4637; }
.border-primary { border-color: #f0bf5c; }
.border-white\/5 { border-color: rgba(255, 255, 255, 0.05); }

.border-primary\/50 { border-color: rgba(240, 191, 92, 0.5); }

.text-center { text-align: center; }
.text-left { text-align: left; }
.font-bold { font-weight: 700; }
.leading-none { line-height: 1; }
.tracking-widest { letter-spacing: 0.1em; }
.uppercase { text-transform: uppercase; }
.whitespace-nowrap { white-space: nowrap; }
.text-lg { font-size: 18px; line-height: 28px; }
.text-xs { font-size: 12px; line-height: 16px; }

.bg-background\/80,
.dark\:bg-background\/80 { background-color: rgba(17, 17, 17, 0.8); }
.bg-on-primary-container { background-color: #4b3500; }
.bg-outline-variant { background-color: #4e4637; }
.bg-primary { background-color: #f0bf5c; }
.bg-primary-container { background-color: #c89b3c; }
.bg-primary\/20 { background-color: rgba(240, 191, 92, 0.2); }
.bg-surface-container { background-color: #1f2020; }
.bg-surface-container-low { background-color: #1b1c1c; }
.bg-surface-container-lowest { background-color: #0d0e0f; }
.text-on-primary-container { color: #4b3500; }
.text-on-primary-container\/80 { color: rgba(75, 53, 0, 0.8); }
.text-on-primary-fixed { color: #261900; }
.text-on-surface { color: #e4e2e2; }
.text-on-surface-variant { color: #d2c5b1; }
.text-primary { color: #f0bf5c; }
.text-primary-container { color: #c89b3c; }
.text-transparent { color: transparent; }

.bg-clip-text.bg-gradient-to-r.from-primary.via-primary-fixed.to-primary-fixed-dim.text-transparent {
    background-image: linear-gradient(to right, #f0bf5c, #ffdea4, #f0bf5c);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

.font-display-2xl,
.font-display-xl,
.font-headline-lg,
.font-headline-md { font-family: 'Space Grotesk', sans-serif; }
.font-body-lg,
.font-body-md,
.font-label-caps { font-family: 'Manrope', sans-serif; }

.font-headline-md {
    font-size: 28px;
    line-height: 36px;
    letter-spacing: -0.01em;
    font-weight: 600;
}

@media (min-width: 1025px) {
    .font-headline-md {
        font-size: 32px;
        line-height: 40px;
    }
}

.text-label-caps { font-size: 12px; line-height: 16px; letter-spacing: 0.1em; font-weight: 700; }
.text-display-xl-mobile { font-size: 48px; line-height: 56px; letter-spacing: -0.02em; font-weight: 600; }
.text-body-md { font-size: 16px; line-height: 24px; letter-spacing: 0em; font-weight: 400; }
.text-headline-md { font-size: 32px; line-height: 40px; letter-spacing: -0.01em; font-weight: 500; }
.text-headline-lg { font-size: 48px; line-height: 56px; letter-spacing: -0.02em; font-weight: 500; }
.text-body-lg { font-size: 20px; line-height: 32px; letter-spacing: 0em; font-weight: 400; }

.transition-all { transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.transition-colors { transition-property: color, background-color, border-color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.transition-opacity { transition-property: opacity; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.transition-transform { transition-property: transform; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.duration-200 { transition-duration: 200ms; }
.duration-300 { transition-duration: 300ms; }
.duration-700 { transition-duration: 700ms; }

.hover\:bg-white\/5:hover { background-color: rgba(255, 255, 255, 0.05); }
.hover\:scale-105:hover { transform: scale(1.05); }
.hover\:shadow-lg:hover { box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1); }
.hover\:text-primary:hover { color: #f0bf5c; }
.hover\:translate-x-1:hover { transform: translateX(4px); }
.active\:scale-95:active { transform: scale(0.95); }
.group:hover .group-hover\:opacity-100 { opacity: 1; }

.rotate-180 { transform: rotate(180deg); }

@media (min-width: 768px) {
    .md\:block { display: block; }
    .md\:flex { display: flex; }
    .md\:flex-row { flex-direction: row; }
    .md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .md\:grid-cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
    .md\:order-1 { order: 1; }
    .md\:order-2 { order: 2; }
    .md\:text-right { text-align: right; }
    .md\:text-display-2xl { font-size: 96px; line-height: 104px; letter-spacing: -0.04em; font-weight: 700; }
}

.service-hero-section {
    padding-top: 80px;
    padding-bottom: 80px;
}
.service-hero-eyebrow {
    font-family: 'Manrope', sans-serif;
    font-size: 12px;
    line-height: 16px;
    letter-spacing: 0.1em;
    font-weight: 700;
    color: #f0bf5c;
    margin-bottom: 8px;
}
.service-hero-title {
    font-family: 'Space Grotesk', sans-serif;
    font-size: 40px;
    line-height: 48px;
    letter-spacing: -0.02em;
    font-weight: 600;
    margin-bottom: 32px;
}
@media (min-width: 1025px) {
    .service-hero-title {
        font-size: 68px;
        line-height: 76px;
        letter-spacing: -0.03em;
        font-weight: 700;
    }
}
.service-hero-desc {
    font-family: 'Manrope', sans-serif;
    font-size: 20px;
    line-height: 32px;
    font-weight: 400;
    color: #d2c5b1;
    max-width: 768px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 80px;
}
.service-hero-actions {
    gap: 24px;
}
.service-hero-btn-primary {
    background-color: #f0bf5c;
    color: #261900;
    padding: 16px 80px;
}
.service-hero-btn-secondary {
    border-color: #4e4637;
    color: #e4e2e2;
    padding: 16px 80px;
}

.service-block-section {
    padding-top: 80px;
    padding-bottom: 80px;
}
.service-block-alt {
    background-color: #0d0e0f;
}
.service-block-eyebrow {
    font-family: 'Manrope', sans-serif;
    color: #f0bf5c;
    margin-bottom: 8px;
}
.service-block-heading {
    font-family: 'Space Grotesk', sans-serif;
    font-size: 40px;
    line-height: 48px;
    letter-spacing: -0.02em;
    font-weight: 500;
    margin-bottom: 24px;
}

@media (min-width: 1025px) {
    .service-block-heading {
        font-size: 48px;
        line-height: 56px;
    }
}
.service-block-desc {
    font-family: 'Manrope', sans-serif;
    color: #d2c5b1;
    margin-bottom: 48px;
}
.service-block-list {
    margin-bottom: 48px;
}
.service-block-list > * + * {
    margin-top: 12px;
}
.service-block-list-item {
    gap: 12px;
}
.service-block-list-icon {
    color: #f0bf5c;
}
.service-block-list-text {
    font-family: 'Manrope', sans-serif;
    color: #e4e2e2;
}
.service-block-tags {
    gap: 12px;
    margin-bottom: 48px;
}
.service-tag {
    background-color: #1f2020;
    padding: 4px 24px;
    font-size: 12px;
    line-height: 16px;
    color: #d2c5b1;
    border-color: #4e4637;
}
.service-block-cta {
    background-color: #f0bf5c;
    color: #261900;
    padding: 12px 48px;
}
.service-block-image-glow {
    background-color: rgba(240, 191, 92, 0.2);
}

.service-process-section {
    padding-top: 80px;
    padding-bottom: 80px;
    background-color: #1b1c1c;
}
.service-process-header {
    margin-bottom: 80px;
}
.service-process-eyebrow {
    font-family: 'Manrope', sans-serif;
    color: #f0bf5c;
    margin-bottom: 8px;
}
.service-process-heading {
    font-family: 'Space Grotesk', sans-serif;
    font-size: 40px;
    line-height: 48px;
    letter-spacing: -0.02em;
    font-weight: 500;
}

@media (min-width: 1025px) {
    .service-process-heading {
        font-size: 48px;
        line-height: 56px;
    }
}
.service-process-steps > * + * {
    margin-top: 48px;
}
.service-process-line {
    left: 50%;
    top: 0;
    bottom: 0;
    width: 1px;
    background-color: #4e4637;
    overflow: hidden;
}
.service-process-line-fill {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 0%;
    background-color: #f0bf5c;
}
.service-process-step-title {
    font-family: 'Space Grotesk', sans-serif;
    font-size: 24px;
    line-height: 32px;
    letter-spacing: -0.01em;
    font-weight: 500;
    color: #f0bf5c;
    margin-bottom: 12px;
}

@media (min-width: 1025px) {
    .service-process-step-title {
        font-size: 28px;
        line-height: 36px;
    }
}
.service-process-step-desc {
    color: #d2c5b1;
}
.service-process-dot {
    width: 48px;
    height: 48px;
    background-color: #1f2020;
    color: #f0bf5c;
    transition: background-color 0.4s ease, color 0.4s ease, box-shadow 0.4s ease, border-color 0.4s ease;
}
.service-process-dot.is-filled {
    background-color: #f0bf5c;
    color: #261900;
    border-color: #f0bf5c;
    box-shadow: 0 0 20px rgba(240, 191, 92, 0.4);
}

.service-faq-section {
    padding-top: 80px;
    padding-bottom: 80px;
}
.service-faq-container {
    max-width: 896px;
    margin-left: auto;
    margin-right: auto;
}
.service-faq-header {
    margin-bottom: 80px;
}
.service-faq-heading {
    font-family: 'Space Grotesk', sans-serif;
    font-size: 40px;
    line-height: 48px;
    letter-spacing: -0.02em;
    font-weight: 500;
}

@media (min-width: 1025px) {
    .service-faq-heading {
        font-size: 48px;
        line-height: 56px;
    }
}
.service-faq-subtext {
    color: #d2c5b1;
}
.service-faq-list > * + * {
    margin-top: 24px;
}
.service-faq-question {
    padding: 48px;
}
.service-faq-question-text {
    font-family: 'Manrope', sans-serif;
}
.service-faq-answer {
    padding: 48px;
    padding-top: 0;
    color: #d2c5b1;
}

.service-cta-section {
    padding-top: 80px;
    padding-bottom: 80px;
}
.service-cta-panel {
    background-color: #c89b3c;
    padding: 80px;
}
.service-cta-inner {
    gap: 48px;
}
.service-cta-text {
    max-width: 672px;
}
.service-cta-heading {
    font-family: 'Space Grotesk', sans-serif;
    font-size: 40px;
    line-height: 48px;
    letter-spacing: -0.02em;
    font-weight: 600;
    color: #4b3500;
    margin-bottom: 24px;
}

@media (min-width: 1025px) {
    .service-cta-heading {
        font-size: 56px;
        line-height: 64px;
        letter-spacing: -0.03em;
    }
}
.service-cta-desc {
    font-family: 'Manrope', sans-serif;
    color: rgba(75, 53, 0, 0.8);
}
.service-cta-btn {
    background-color: #4b3500;
    color: #c89b3c;
    padding: 16px 80px;
}

/* Section spacing must stay a flat 60px top/bottom on tablet and mobile
   (<=1024px) instead of inheriting the desktop 80px on every screen size. */
@media (max-width: 1024px) {
    .service-hero-section,
    .service-block-section,
    .service-process-section,
    .service-faq-section,
    .service-cta-section {
        padding-top: 60px;
        padding-bottom: 60px;
    }

    .service-hero-desc {
        margin-bottom: 40px;
    }

    .service-process-header,
    .service-faq-header {
        margin-bottom: 40px;
    }

    .service-cta-panel {
        padding: 40px;
    }
}

/* App-like mobile pass: tighter rhythm and smaller display type below 700px. */
@media (max-width: 699px) {
    .service-hero-section,
    .service-block-section,
    .service-process-section,
    .service-faq-section,
    .service-cta-section {
        padding-top: 40px;
        padding-bottom: 40px;
    }

    .service-hero-title {
        font-size: 30px;
        line-height: 38px;
    }

    .service-hero-desc {
        font-size: 16px;
        line-height: 24px;
        margin-bottom: 24px;
    }

    .service-block-heading,
    .service-process-heading,
    .service-faq-heading {
        font-size: 26px;
        line-height: 32px;
    }

    .service-process-step-title {
        font-size: 20px;
        line-height: 26px;
    }

    .service-cta-heading {
        font-size: 26px;
        line-height: 32px;
    }

    .service-process-header,
    .service-faq-header {
        margin-bottom: 24px;
    }

    .service-process-steps > * + * {
        margin-top: 24px;
    }

    .service-faq-question,
    .service-faq-answer {
        padding: 24px;
    }

    .service-faq-answer {
        padding-top: 0;
    }

    .service-cta-panel {
        padding: 24px;
    }

    .service-cta-inner {
        gap: 24px;
    }
}

.service-footer-brand-name {
    font-family: 'Space Grotesk', sans-serif;
    font-size: 32px;
    line-height: 40px;
    letter-spacing: -0.01em;
    font-weight: 500;
    color: #f0bf5c;
    margin-bottom: 24px;
}
