﻿@font-face {
    font-family: 'SatoshiComplete';
    src: url('/fonts/Satoshi-Regular.woff2') format('woff2'), url('/fonts/Satoshi-Regular.woff') format('woff');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'SatoshiComplete';
    src: url('/fonts/Satoshi-Medium.woff2') format('woff2'), url('/fonts/Satoshi-Medium.woff') format('woff');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'SatoshiComplete';
    src: url('/fonts/Satoshi-Bold.woff2') format('woff2'), url('/fonts/Satoshi-Bold.woff') format('woff');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

:root {
    --font-primary: 'SatoshiComplete', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

html, body {
    font-family: var(--font-primary);
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
    box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
    position: relative;
    min-height: 100%;
}



.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}


.navbar-toggler {
    border: none;
}
/* Ícono hamburguesa (default) */
.navbar-toggler-icon {
    background-image: var(--bs-navbar-toggler-icon-bg);
}
/* Ícono X cuando el menú está abierto */
.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon {
    background-image: none;
    position: relative;
}

    .navbar-toggler[aria-expanded="true"] .navbar-toggler-icon::before,
    .navbar-toggler[aria-expanded="true"] .navbar-toggler-icon::after {
        content: '';
        position: absolute;
        width: 24px;
        height: 2px;
        background-color: currentColor;
        top: 50%;
        left: 50%;
    }

    .navbar-toggler[aria-expanded="true"] .navbar-toggler-icon::before {
        transform: translate(-50%, -50%) rotate(45deg);
    }

    .navbar-toggler[aria-expanded="true"] .navbar-toggler-icon::after {
        transform: translate(-50%, -50%) rotate(-45deg);
    }

.company-header {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

    .company-header img {
        height: 46px;
    }

    .company-header h1 {
        margin: 0;
        padding: 0;
        font-size: 3rem;
        margin-left: 1rem;
        padding-top: 0.3rem;
    }


    .company-header.small img {
        height: 38px;
    }

    .company-header.small span {
        margin: 0;
        padding: 0;
        font-size: 1.6rem;
        margin-left: 0.9rem;
        padding-top: 0.3rem;
    }


/* General */
.gallery-container {
    max-width: 1024px;
    margin: 0 auto;
    width: 100%;
}

/* =========================
   DESKTOP
========================= */
.gallery-desktop {
    display: flex;
    gap: 12px;
    height: 400px;
}

.gallery-card {
    position: relative;
    flex: 1;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 15px 30px rgba(0,0,0,.25);
    cursor: pointer;
    transition: flex 0.5s ease-in-out;
}

    .gallery-card:hover {
        flex: 3;
    }

    .gallery-card img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

.gallery-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,.6), rgba(0,0,0,.2), transparent);
    opacity: 0;
    transition: opacity 0.3s ease;
    display: flex;
    align-items: flex-end;
    padding: 16px;
}

.gallery-card:hover .gallery-overlay {
    opacity: 1;
}

.gallery-overlay h3 {
    color: white;
    font-weight: 600;
}

/* =========================
   MOBILE
========================= */
.gallery-mobile {
    position: relative;
    display: none;
    width: 100%;
}

.stack-card {
    position: absolute;
    width: 90%;
    left: 5%;
    border-radius: 16px;
    overflow: hidden;
    background: #fff;
    cursor: pointer;
    transition: transform 0.35s cubic-bezier(.22,.61,.36,1), opacity 0.35s ease, box-shadow 0.35s ease;
}

    .stack-card img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

.stack-label {
    position: absolute;
    bottom: 12px;
    left: 12px;
    background: rgba(0,0,0,.5);
    backdrop-filter: blur(4px);
    color: white;
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 14px;
}

/* Active state */
.stack-card.active {
    transform: translateY(-10px) scale(1.05);
    opacity: 1;
    box-shadow: 0 25px 40px rgba(0,0,0,.35);
}

/* =========================
   RESPONSIVE
========================= */
@media (max-width: 768px) {
    .gallery-desktop {
        display: none;
    }

    .gallery-mobile {
        display: block;
    }
}


.about-section {
    background-color: #ffffff;
    padding: 6rem 1.5rem;
}

.about-container {
    max-width: 900px;
    margin: 0 auto;
    text-align: center;
}

.about-title {
    font-size: 2.5rem;
    font-weight: 600;
    margin-bottom: 2rem;
    letter-spacing: 0.5px;
}

.about-intro {
    font-size: 1.25rem;
    color: #333;
    margin-bottom: 3rem;
    line-height: 1.6;
}

.about-content {
    text-align: left;
    margin-bottom: 3rem;
}

    .about-content p {
        font-size: 1.05rem;
        color: #555;
        line-height: 1.8;
        margin-bottom: 1.5rem;
    }

.about-closing {
    font-size: 1.15rem;
    color: #222;
    line-height: 1.7;
}

    .about-closing span {
        display: block;
        margin-top: 1rem;
        font-weight: 600;
    }
/*  BLOG */

.blog-article, .blog-generic-article {
    /* max-width: 800px; */
    margin: auto;
    padding: 20px 0px;
    /* background-color: #fff; */
    color: #222;
    line-height: 1.7;
}

    .blog-article h1, .blog-article h2, .blog-article h3 {
        color: #222;
        line-height: 1.3;
    }

    .blog-article h1, .blog-generic-article h1 {
        font-size: 2.2em;
        margin-top: 1rem;
    }

    .blog-article h2:not(.relationed-articles):not(.related-title) {
        font-size: 1.5em;
        margin-top: 2rem;
        border-left: 4px solid #ff4d4f;
        padding-left: 8px;
    }

    .blog-generic-article h2 {
        font-size: 1.5em;
    }

    .blog-article p {
        margin: 1em 0;
        font-size: 1.05em;
    }

    .blog-generic-article p.post-meta {
        margin: 1em 0;
    }

    .blog-article .banner-image {
        /* width: 100%; */
        border-radius: 8px;
        /* margin: 1.5rem 0; */
        max-height: 100%;
    }

    .blog-article .post-meta, .blog-generic-article .post-meta {
        color: #666;
        font-size: 0.9em;
    }

    .blog-article .cta-button {
        display: inline-block;
        background: linear-gradient(90deg, #805ad5, #805ad5BB);
        color: #fff;
        text-decoration: none;
        padding: 12px 20px;
        border-radius: 30px;
        font-weight: 600;
        margin-top: 20px;
        text-align: center;
    }

        .blog-article .cta-button:hover {
            background: linear-gradient(90deg, #7940f5, #7940f5AA);
        }

    .blog-article h2.relationed-articles {
        text-align: center;
        font-size: 1.8rem;
        font-weight: bold;
        position: relative;
    }

        .blog-article h2.relationed-articles::before {
            margin: 0 15px 10px 0;
        }

        .blog-article h2.relationed-articles::after {
            margin: 0 0 10px 15px;
        }

        .blog-article h2.relationed-articles::before,
        .blog-article h2.relationed-articles::after {
            content: "";
            width: 50px;
            height: 2px;
            background: var(--color-accent-2);
            display: inline-block;
        }

    .blog-generic-article blockquote {
        border-left: 4px solid #ccc;
        margin-bottom: 5px;
        margin-top: 5px;
        padding-left: 16px;
    }

    .blog-generic-article .ql-indent-1 {
        padding-left: 3em;
    }

    .blog-generic-article li {
        list-style-type: none;
        padding-left: 1.5em;
        position: relative;
    }

        .blog-generic-article li[data-list=bullet] > .ql-ui:before {
            content: '\2022';
        }

        .blog-generic-article li > .ql-ui:before {
            display: inline-block;
            margin-left: -1.5em;
            margin-right: .3em;
            text-align: right;
            white-space: nowrap;
            width: 1.2em;
        }


    .blog-article h2.relationed-articles {
        text-align: center;
        font-size: 1.8rem;
        font-weight: bold;
        position: relative;
    }

        .blog-article h2.relationed-articles::before {
            margin: 0 15px 10px 0;
        }

        .blog-article h2.relationed-articles::after {
            margin: 0 0 10px 15px;
        }

        .blog-article h2.relationed-articles::before,
        .blog-article h2.relationed-articles::after {
            content: "";
            width: 50px;
            height: 2px;
            background: var(--primary);
            display: inline-block;
        }

    .blog-generic-article blockquote {
        border-left: 4px solid #ccc;
        margin-bottom: 5px;
        margin-top: 5px;
        padding-left: 16px;
    }

    .blog-generic-article .ql-indent-1 {
        padding-left: 3em;
    }

    .blog-generic-article li {
        list-style-type: none;
        padding-left: 1.5em;
        position: relative;
    }

        .blog-generic-article li[data-list=bullet] > .ql-ui:before {
            content: '\2022';
        }

        .blog-generic-article li > .ql-ui:before {
            display: inline-block;
            margin-left: -1.5em;
            margin-right: .3em;
            text-align: right;
            white-space: nowrap;
            width: 1.2em;
        }


/*.btn-primary-simple {
    display: ruby;
}
*/
.tab-btn {
    border-bottom: 3px solid transparent;
    min-width: 100px;
}

    .tab-btn.active {
        color: hsl(var(--secondary));
        border-bottom: 3px solid hsl(var(--secondary));
    }


/* Skeleton Base */
.skeleton {
    position: relative;
    overflow: hidden;
    background-color: #e5e7eb; /* gray-200 */
    border-radius: 0.5rem;
}

    /* Shimmer effect */
    .skeleton::after {
        content: "";
        position: absolute;
        inset: 0;
        transform: translateX(-100%);
        background: linear-gradient( 90deg, transparent, rgba(255,255,255,0.5), transparent );
        animation: shimmer 1.4s infinite;
    }

@keyframes shimmer {
    100% {
        transform: translateX(100%);
    }
}

/* Variantes */
.skeleton-text {
    height: 1rem;
    width: 100%;
}

.skeleton-title {
    height: 1.5rem;
    width: 60%;
}

.skeleton-avatar {
    width: 3rem;
    height: 3rem;
    border-radius: 9999px;
}

.skeleton-card {
    height: 200px;
    width: 100%;
}

.container {
    margin-inline: auto;
    padding-inline: 2rem;
}