*,
*::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%;
}

.gold-gradient {
    background: linear-gradient(135deg, #c89b3c 0%, #f0bf5c 100%);
}
.glass-card {
    background: rgba(26, 26, 26, 0.4);
    backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.05);
}
.benefit-card-shadow {
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.2);
}
.hero-image-container {
    position: relative;
    overflow: hidden;
    border-radius: 1.5rem;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}
.hero-image-overlay {
    background: linear-gradient(0deg, rgba(19, 19, 20, 0.8) 0%, rgba(19, 19, 20, 0) 40%);
}
.transition-standard {
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.btn-hover:hover {
    transform: translateY(-2px);
    box-shadow: 0 0 20px rgba(200, 155, 60, 0.3);
}

.detail-main-offset {
    padding-top: 160px;
    padding-bottom: 80px;
}

/* Keep enough top clearance for the fixed 100px header while still
   shrinking the section padding to 60px on tablet and mobile (<=1024px). */
@media (max-width: 1024px) {
    .detail-main-offset {
        padding-top: 140px;
        padding-bottom: 60px;
    }
}

.max-w-1440 {
    max-width: 1440px;
}

.icon-16 {
    font-size: 16px;
}

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

.relative { position: relative; }
.absolute { position: absolute; }
.inset-0 { top: 0; right: 0; bottom: 0; left: 0; }
.bottom-10 { bottom: 40px; }
.left-10 { left: 40px; }
.right-10 { right: 40px; }

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

.w-full { width: 100%; }
.h-20 { height: 80px; }
.h-full { height: 100%; }
.max-w-2xl { max-width: 672px; }
.max-w-7xl { max-width: 1280px; }
.max-w-xs { max-width: 320px; }
.mx-auto { margin-left: auto; margin-right: auto; }

.px-margin { padding-left: max(24px, 4vw); padding-right: max(24px, 4vw); }
.px-md { padding-left: 24px; padding-right: 24px; }
.px-4 { padding-left: 16px; padding-right: 16px; }
.px-10 { padding-left: 40px; padding-right: 40px; }
.py-sm { padding-top: 12px; padding-bottom: 12px; }
.py-2 { padding-top: 8px; padding-bottom: 8px; }
.py-5 { padding-top: 20px; padding-bottom: 20px; }
.pt-8 { padding-top: 32px; }
.pt-xl { padding-top: 80px; }
.pb-md { padding-bottom: 24px; }
.pb-xl { padding-bottom: 80px; }
.p-1\.5 { padding: 6px; }
.p-5 { padding: 20px; }
.p-8 { padding: 32px; }
.mb-2 { margin-bottom: 8px; }
.mb-4 { margin-bottom: 16px; }
.mb-6 { margin-bottom: 24px; }
.mb-8 { margin-bottom: 32px; }
.mb-12 { margin-bottom: 48px; }
.mb-lg { margin-bottom: 48px; }
.mt-12 { margin-top: 48px; }
.gap-3 { gap: 12px; }
.gap-4 { gap: 16px; }
.gap-6 { gap: 24px; }
.gap-8 { gap: 32px; }
.gap-gutter { gap: 32px; }
.gap-x-12 { column-gap: 48px; }
.gap-y-6 { row-gap: 24px; }
.space-y-4 > * + * { margin-top: 16px; }

.rounded-lg { border-radius: 8px; }
.rounded-xl { border-radius: 12px; }
.rounded-2xl { border-radius: 16px; }
.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); }
.shadow-2xl { box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); }
.backdrop-blur-xl { backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); }
.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-white\/5 { border-color: rgba(255, 255, 255, 0.05); }

.font-bold { font-weight: 700; }
.font-medium { font-weight: 500; }
.leading-none { line-height: 1; }
.leading-relaxed { line-height: 1.625; }
.tracking-widest { letter-spacing: 0.1em; }

.bg-background\/80,
.dark\:bg-background\/80 { background-color: rgba(19, 19, 20, 0.8); }
.bg-surface-container { background-color: #1f2020; }
.bg-surface-container-lowest,
.dark\:bg-surface-container-lowest { background-color: #0d0e0f; }
.bg-surface-container-highest\/50 { background-color: rgba(52, 53, 53, 0.5); }
.text-on-primary { color: #412d00; }
.text-on-primary-fixed { color: #261900; }
.text-on-primary-container { color: #4b3500; }
.text-on-surface { color: #e4e2e2; }
.text-on-surface-variant { color: #d2c5b1; }
.text-primary { color: #f0bf5c; }

.bg-gradient-to-br.from-surface-container.to-surface-container-low {
    background-image: linear-gradient(to bottom right, #1f2020, #1b1c1c);
}

.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;
    }
}
.font-display-xl,
.font-headline-lg { font-family: 'Space Grotesk', sans-serif; }

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

.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; }
.duration-300 { transition-duration: 300ms; }

.hover\:bg-surface-container-highest:hover { background-color: #343535; }
.hover\:scale-105:hover { transform: scale(1.05); }
.hover\:text-primary:hover { color: #f0bf5c; }
.active\:scale-95:active { transform: scale(0.95); }
.group:hover .group-hover\:scale-105 { transform: scale(1.05); }
.group:hover .group-hover\:translate-x-1 { transform: translateX(4px); }

@media (min-width: 768px) {
    .md\:col-span-2 { grid-column: span 2 / span 2; }
    .md\:col-span-4 { grid-column: span 4 / span 4; }
    .md\:flex-row { flex-direction: row; }
    .md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .md\:text-display-xl { font-size: 72px; line-height: 80px; letter-spacing: -0.03em; font-weight: 600; }
}
@media (min-width: 1024px) {
    .lg\:col-span-5 { grid-column: span 5 / span 5; }
    .lg\:col-span-7 { grid-column: span 7 / span 7; }
    .lg\:grid-cols-12 { grid-template-columns: repeat(12, minmax(0, 1fr)); }
    .lg\:order-1 { order: 1; }
    .lg\:order-2 { order: 2; }
    .lg\:pl-12 { padding-left: 48px; }
}

.service-detail-hero-caption {
    bottom: 40px;
    left: 40px;
    right: 40px;
}
.service-detail-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-detail-hero-title {
    font-family: 'Space Grotesk', sans-serif;
    font-size: 32px;
    line-height: 40px;
    letter-spacing: -0.01em;
    font-weight: 500;
    color: #e4e2e2;
}

@media (min-width: 1025px) {
    .service-detail-hero-title {
        font-size: 48px;
        line-height: 56px;
        letter-spacing: -0.02em;
    }
}

.service-detail-header {
    margin-bottom: 48px;
}
.service-detail-main-eyebrow {
    font-family: 'Manrope', sans-serif;
    font-size: 12px;
    line-height: 16px;
    letter-spacing: 0.1em;
    font-weight: 700;
    color: #f0bf5c;
    margin-bottom: 16px;
}
.service-detail-title {
    font-family: 'Space Grotesk', sans-serif;
    font-size: 48px;
    line-height: 56px;
    letter-spacing: -0.02em;
    font-weight: 600;
    color: #e4e2e2;
    margin-bottom: 32px;
}
@media (min-width: 1025px) {
    .service-detail-title {
        font-size: 72px;
        line-height: 80px;
        letter-spacing: -0.03em;
        font-weight: 600;
    }
}
.service-detail-desc {
    font-family: 'Manrope', sans-serif;
    font-size: 20px;
    line-height: 32px;
    font-weight: 400;
    color: #d2c5b1;
    max-width: 672px;
}

.service-detail-offer-card {
    padding: 32px;
    margin-bottom: 32px;
}
.service-detail-benefits-card {
    padding: 32px;
    margin-bottom: 48px;
}
.service-detail-card-header {
    gap: 12px;
    margin-bottom: 32px;
}
.service-detail-card-icon {
    color: #f0bf5c;
}
.service-detail-card-title {
    font-family: 'Manrope', sans-serif;
    font-size: 12px;
    line-height: 16px;
    letter-spacing: 0.1em;
    font-weight: 700;
    color: #e4e2e2;
}
.service-detail-offer-list {
    row-gap: 24px;
    column-gap: 48px;
}
.service-detail-offer-item {
    gap: 12px;
}
.service-detail-offer-icon {
    color: #f0bf5c;
    font-size: 16px;
    line-height: 24px;
    font-weight: 400;
}
.service-detail-offer-text {
    color: #d2c5b1;
}
.service-detail-benefits-list {
    gap: 16px;
}
.service-detail-benefit-card {
    background-color: rgba(52, 53, 53, 0.5);
    padding: 20px;
    gap: 16px;
}
.service-detail-benefit-icon-wrap {
    padding: 6px;
}
.service-detail-benefit-icon {
    color: #412d00;
}
.service-detail-benefit-text {
    font-family: 'Manrope', sans-serif;
    color: #e4e2e2;
    font-weight: 500;
}

.service-detail-cta-btn {
    color: #4b3500;
    padding: 20px 40px;
}
.service-detail-cta-text {
    font-family: 'Manrope', sans-serif;
}

/* App-like mobile pass: tighter rhythm and smaller display type below 700px. */
@media (max-width: 699px) {
    .detail-main-offset {
        padding-top: 150px;
        padding-bottom: 40px;
    }

    .service-detail-hero-title {
        font-size: 26px;
        line-height: 32px;
    }

    .service-detail-title {
        font-size: 30px;
        line-height: 38px;
        margin-bottom: 20px;
    }

    .service-detail-desc {
        font-size: 16px;
        line-height: 24px;
    }

    .service-detail-header {
        margin-bottom: 32px;
    }

    .service-detail-offer-card {
        padding: 20px;
        margin-bottom: 20px;
    }

    .service-detail-benefits-card {
        padding: 20px;
        margin-bottom: 32px;
    }

    .service-detail-card-header {
        margin-bottom: 20px;
    }

    .service-detail-offer-list {
        row-gap: 16px;
        column-gap: 20px;
    }
}

.service-detail-footer-brand-name {
    font-family: 'Space Grotesk', sans-serif;
    color: #e4e2e2;
    margin-bottom: 24px;
}
