
/* Grupo Rey - Perspectivas / Blog
   Paleta institucional: rojo, gris, blanco y negro.
   Compatible con el tema Bootstrap/Porto que ya usa gruporey.com.mx.
*/
:root {
    --gr-red: #c8102e;
    --gr-red-dark: #920b22;
    --gr-black: #111111;
    --gr-gray-900: #242424;
    --gr-gray-700: #555555;
    --gr-gray-500: #8a8a8a;
    --gr-gray-200: #e7e7e7;
    --gr-gray-100: #f5f5f5;
    --gr-white: #ffffff;
}

.gr-blog-hero {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 82% 25%, rgba(200,16,46,.34), transparent 32%),
        linear-gradient(118deg, #080808 0%, #171717 52%, #2b2b2b 100%);
    color: #fff;
    padding: 74px 0 66px;
    border-bottom: 5px solid var(--gr-red);
}
.gr-blog-hero:after {
    content: "";
    position: absolute;
    width: 420px;
    height: 420px;
    right: -120px;
    top: -190px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 50%;
    box-shadow: 0 0 0 55px rgba(255,255,255,.025), 0 0 0 110px rgba(255,255,255,.018);
}
.gr-blog-kicker,
.gr-article-kicker {
    display: inline-block;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-size: 12px;
    font-weight: 800;
    color: #fff;
    background: var(--gr-red);
    padding: 7px 12px;
    border-radius: 2px;
    margin-bottom: 18px;
}
.gr-blog-hero h1 {
    color: #fff;
    font-weight: 800;
    font-size: 52px;
    line-height: 1.04;
    margin: 0 0 18px;
    max-width: 760px;
}
.gr-blog-hero h1 strong { color: #fff; }
.gr-blog-hero p {
    color: rgba(255,255,255,.82);
    font-size: 19px;
    line-height: 1.7;
    max-width: 760px;
    margin-bottom: 0;
}
.gr-blog-hero .gr-hero-mark {
    font-size: 112px;
    font-weight: 900;
    letter-spacing: -8px;
    color: rgba(255,255,255,.055);
    line-height: 1;
    text-align: right;
    padding-top: 12px;
}

.gr-section { padding: 64px 0; }
.gr-section-soft { background: #f6f6f6; }
.gr-section-title { margin-bottom: 34px; }
.gr-section-title h2,
.gr-section-title h3 { font-weight: 800; color: var(--gr-black); margin-top: 0; }
.gr-section-title h2:after,
.gr-section-title h3:after {
    content: "";
    display: block;
    width: 56px;
    height: 4px;
    margin-top: 14px;
    background: var(--gr-red);
}
.gr-section-title.text-center h2:after,
.gr-section-title.text-center h3:after { margin-left: auto; margin-right: auto; }
.gr-section-title p { color: var(--gr-gray-700); font-size: 16px; max-width: 780px; }

.gr-featured {
    background: var(--gr-black);
    min-height: 390px;
    border-radius: 7px;
    overflow: hidden;
    box-shadow: 0 18px 50px rgba(0,0,0,.14);
    display: flex;
    align-items: stretch;
}
.gr-featured-visual {
    min-height: 390px;
    position: relative;
    background:
        linear-gradient(145deg, rgba(200,16,46,.98), rgba(108,7,25,.72)),
        linear-gradient(30deg, #2c2c2c, #000);
}
.gr-featured-visual:before,
.gr-card-visual:before {
    content: "GR";
    position: absolute;
    right: 24px;
    bottom: 5px;
    font-weight: 900;
    font-size: 110px;
    letter-spacing: -8px;
    color: rgba(255,255,255,.12);
}
.gr-featured-visual .gr-visual-quote {
    position: absolute;
    left: 34px;
    right: 34px;
    bottom: 38px;
    color: #fff;
    font-size: 28px;
    line-height: 1.08;
    font-weight: 800;
    text-transform: uppercase;
}
.gr-featured-body { padding: 44px 44px 38px; color: #fff; }
.gr-featured-body h2 { color: #fff; font-weight: 800; font-size: 34px; line-height: 1.15; }
.gr-featured-body p { color: rgba(255,255,255,.77); font-size: 16px; line-height: 1.7; }
.gr-meta { color: #858585; font-size: 12px; text-transform: uppercase; letter-spacing: .7px; }
.gr-featured .gr-meta { color: rgba(255,255,255,.55); }
.gr-btn-red {
    display: inline-block;
    background: var(--gr-red);
    color: #fff !important;
    border: 0;
    border-radius: 3px;
    padding: 11px 18px;
    font-weight: 700;
    text-decoration: none !important;
    transition: all .2s ease;
}
.gr-btn-red:hover { background: var(--gr-red-dark); transform: translateY(-1px); }
.gr-btn-dark {
    display: inline-block;
    background: #191919;
    color: #fff !important;
    border-radius: 3px;
    padding: 11px 18px;
    font-weight: 700;
    text-decoration: none !important;
}

.gr-filter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 28px;
}
.gr-filter {
    border: 1px solid #d9d9d9;
    background: #fff;
    color: #333;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    padding: 8px 14px;
    cursor: pointer;
}
.gr-filter:hover, .gr-filter.active { background: var(--gr-black); color: #fff; border-color: var(--gr-black); }
.gr-search-wrap { position: relative; margin-bottom: 28px; }
.gr-search-wrap i { position: absolute; left: 13px; top: 13px; color: #999; }
.gr-search {
    width: 100%;
    height: 42px;
    border: 1px solid #ddd;
    border-radius: 4px;
    padding: 8px 12px 8px 36px;
    background: #fff;
}

.gr-article-card {
    background: #fff;
    border: 1px solid #e5e5e5;
    border-radius: 6px;
    overflow: hidden;
    margin-bottom: 30px;
    height: calc(100% - 30px);
    box-shadow: 0 7px 22px rgba(0,0,0,.045);
    transition: transform .2s ease, box-shadow .2s ease;
}
.gr-article-card:hover { transform: translateY(-4px); box-shadow: 0 14px 34px rgba(0,0,0,.09); }
.gr-card-visual {
    height: 190px;
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg, #151515, #3d3d3d);
}
.gr-card-visual.red { background: linear-gradient(135deg, #a90c28, #1c1c1c); }
.gr-card-visual.gray { background: linear-gradient(135deg, #595959, #151515); }
.gr-card-visual.light { background: linear-gradient(135deg, #eeeeee, #969696); }
.gr-card-visual.light:before { color: rgba(0,0,0,.08); }
.gr-card-icon {
    position: absolute;
    left: 24px;
    top: 24px;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background: rgba(255,255,255,.12);
    color: #fff;
    text-align: center;
    line-height: 50px;
    font-size: 22px;
}
.gr-card-visual.light .gr-card-icon { background: rgba(0,0,0,.08); color: #222; }
.gr-card-body { padding: 25px 25px 23px; }
.gr-card-body h3 { font-size: 21px; line-height: 1.28; font-weight: 800; margin: 8px 0 12px; }
.gr-card-body h3 a { color: #191919; text-decoration: none; }
.gr-card-body h3 a:hover { color: var(--gr-red); }
.gr-card-body p { color: #666; line-height: 1.65; min-height: 78px; }
.gr-category-label { color: var(--gr-red); font-size: 11px; text-transform: uppercase; font-weight: 800; letter-spacing: 1px; }
.gr-read-more { font-size: 13px; font-weight: 800; color: #222; }
.gr-read-more i { color: var(--gr-red); padding-left: 4px; }

.gr-category-grid .gr-category-box {
    display: block;
    min-height: 175px;
    padding: 28px;
    margin-bottom: 26px;
    background: #fff;
    border: 1px solid #e4e4e4;
    border-top: 4px solid var(--gr-red);
    border-radius: 4px;
    text-decoration: none;
    transition: all .2s ease;
}
.gr-category-grid .gr-category-box:hover { transform: translateY(-3px); box-shadow: 0 13px 30px rgba(0,0,0,.08); }
.gr-category-box i { font-size: 26px; color: var(--gr-red); margin-bottom: 16px; }
.gr-category-box h4 { color: #191919; font-weight: 800; margin: 0 0 10px; }
.gr-category-box p { color: #6f6f6f; line-height: 1.55; margin-bottom: 0; }

.gr-blog-cta {
    background: linear-gradient(115deg, #0d0d0d, #292929);
    border-left: 6px solid var(--gr-red);
    color: #fff;
    padding: 35px 38px;
    border-radius: 4px;
}
.gr-blog-cta h3 { color: #fff; font-weight: 800; margin-top: 0; }
.gr-blog-cta p { color: rgba(255,255,255,.74); margin-bottom: 0; }

/* Article */
.gr-article-hero {
    background: linear-gradient(120deg, #080808, #252525);
    color: #fff;
    padding: 58px 0 48px;
    border-bottom: 5px solid var(--gr-red);
}
.gr-article-hero h1 { color: #fff; font-size: 44px; line-height: 1.1; font-weight: 800; max-width: 900px; margin: 0 0 18px; }
.gr-article-hero .lead { color: rgba(255,255,255,.78); max-width: 810px; line-height: 1.6; }
.gr-article-shell { padding: 55px 0 72px; }
.gr-article-content { font-size: 17px; line-height: 1.86; color: #383838; }
.gr-article-content p { margin-bottom: 24px; }
.gr-article-content h2 { margin: 42px 0 18px; font-weight: 800; color: #171717; line-height: 1.2; }
.gr-article-content h3 { margin: 32px 0 14px; font-weight: 800; color: #222; }
.gr-article-content blockquote {
    border-left: 5px solid var(--gr-red);
    background: #f5f5f5;
    margin: 32px 0;
    padding: 24px 26px;
    font-size: 22px;
    line-height: 1.5;
    color: #242424;
    font-weight: 700;
}
.gr-article-content .gr-emphasis {
    font-weight: 800;
    font-size: 20px;
    color: #171717;
}
.gr-article-aside {
    border: 1px solid #e4e4e4;
    border-top: 4px solid var(--gr-red);
    padding: 24px;
    background: #fff;
    margin-bottom: 28px;
}
.gr-article-aside h4 { font-weight: 800; margin-top: 0; }
.gr-article-aside ul { padding-left: 18px; margin-bottom: 0; }
.gr-article-aside li { margin-bottom: 9px; }
.gr-share-links a {
    display: inline-block; width: 35px; height: 35px; line-height: 35px; text-align: center;
    background: #222; color: #fff; border-radius: 50%; margin-right: 5px;
}
.gr-share-links a:hover { background: var(--gr-red); color: #fff; }
.gr-article-end {
    margin-top: 44px;
    padding-top: 30px;
    border-top: 1px solid #e2e2e2;
    font-weight: 700;
}

/* Blog preview embedded in Nosotros */
.gr-nosotros-blog { padding: 62px 0; background: #f6f6f6; border-top: 1px solid #e8e8e8; }
.gr-nosotros-blog .gr-article-card { height: auto; }

/* category page */
.gr-category-header { padding: 42px 0; background: #f2f2f2; border-bottom: 1px solid #ddd; }
.gr-category-header h1 { margin: 0 0 8px; font-weight: 800; color: #161616; }
.gr-category-header p { margin: 0; color: #666; max-width: 760px; }

@media (min-width: 992px) {
    .gr-row-flex { display: flex; flex-wrap: wrap; }
    .gr-row-flex > [class*="col-"] { display: flex; }
}
@media (max-width: 991px) {
    .gr-blog-hero { padding: 52px 0; }
    .gr-blog-hero h1 { font-size: 42px; }
    .gr-blog-hero .gr-hero-mark { display: none; }
    .gr-featured { display: block; }
    .gr-featured-visual { min-height: 260px; }
    .gr-featured-body { padding: 32px; }
}
@media (max-width: 767px) {
    .gr-blog-hero { padding: 42px 0 38px; }
    .gr-blog-hero h1 { font-size: 34px; }
    .gr-blog-hero p { font-size: 16px; }
    .gr-section { padding: 44px 0; }
    .gr-featured-body h2 { font-size: 28px; }
    .gr-article-hero h1 { font-size: 33px; }
    .gr-article-shell { padding-top: 38px; }
    .gr-article-content { font-size: 16px; }
    .gr-article-content blockquote { font-size: 19px; }
}
