:root {
    --brand-black: #0f1112;
    --brand-white: #fcfcfb;
    --brand-gray-100: #f3f4f2;
    --brand-gray-300: #d9ddd8;
    --brand-gray-500: #6a716d;
    --brand-gray-700: #2e3330;
    --brand-accent: #8fae8b;
}

html {
    scroll-behavior: smooth;
}

body {
    background: var(--brand-white);
}

.eyebrow {
    letter-spacing: .18em;
    text-transform: uppercase;
    font-size: .68rem;
    font-weight: 700;
    color: var(--brand-gray-500);
}

.logo {
  height: 50px !important;
  width: auto !important;
  max-height: none !important;
  display: block;
}

@media (min-width: 768px) {
  .logo {
    height: 70px !important;
  }
}

.brand-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    border-radius: 9999px;
    padding: .95rem 1.6rem;
    font-weight: 600;
    font-size: .95rem;
    transition: transform .35s ease, box-shadow .35s ease, background-color .35s ease, color .35s ease;
}

.brand-btn-primary {
    background: var(--brand-black);
    color: #fff;
    box-shadow: 0 10px 30px rgba(15, 17, 18, .14);
}

.brand-btn-primary:hover {
    transform: translateY(-2px);
}

.brand-btn-secondary {
    border: 1px solid rgba(15, 17, 18, .15);
    color: var(--brand-black);
    background: #fff;
}

.brand-btn-secondary:hover {
    background: var(--brand-gray-100);
}

.image-placeholder {
    background: linear-gradient(160deg, #e5e8e3 0%, #f8f9f7 55%, #dde2dc 100%);
    border: 1px solid rgba(15, 17, 18, .08);
    position: relative;
    overflow: hidden;
}

.image-placeholder::after {
    content: "IMAGE PLACEHOLDER · Reemplazar por foto real";
    position: absolute;
    inset: auto 1rem 1rem 1rem;
    color: rgba(15, 17, 18, .45);
    font-size: .65rem;
    letter-spacing: .13em;
    text-transform: uppercase;
    font-weight: 700;
}

.reveal {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity .6s ease, transform .6s ease;
}

.reveal.active {
    opacity: 1;
    transform: translateY(0);
}

.delay-1 { transition-delay: .1s; }
.delay-2 { transition-delay: .2s; }
.delay-3 { transition-delay: .3s; }

.scroll-cue {
    width: 24px;
    height: 40px;
    border: 1.6px solid rgba(15, 17, 18, .35);
    border-radius: 9999px;
    position: relative;
}

.scroll-cue::before {
    content: "";
    width: 4px;
    height: 8px;
    border-radius: 9999px;
    background: rgba(15, 17, 18, .5);
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    top: 8px;
    animation: scrollCue 1.8s infinite;
}

@keyframes scrollCue {
    0% { opacity: 0; transform: translate(-50%, 0); }
    40% { opacity: 1; }
    100% { opacity: 0; transform: translate(-50%, 14px); }
}

.card-soft {
    border: 1px solid rgba(15, 17, 18, .07);
    border-radius: 2rem;
    background: #fff;
    transition: transform .35s ease, box-shadow .35s ease;
}

.card-soft:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 35px rgba(15, 17, 18, .08);
}

::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-thumb { background: #c7cbc7; border-radius: 999px; }
::-webkit-scrollbar-thumb:hover { background: #a4aba5; }

.btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    padding: .95rem 1.6rem;
    font-weight: 600;
    font-size: .95rem;
    background: var(--brand-black);
    color: #fff;
    box-shadow: 0 10px 30px rgba(15, 17, 18, .14);
    transition: transform .35s ease;
}

.btn-primary:hover {
    transform: translateY(-2px);
}
