/** Generated from the legacy catalogue; owner: blog. */


/* ---------------------------------------------------------------------------
   Author Box
   --------------------------------------------------------------------------- */
.cms-author {
    display: flex;
    gap: 1.25rem;
    padding: var(--cms-spacing);
    background: var(--cms-bg-alt);
    border-radius: var(--cms-radius-lg);
    border-top: 1px solid var(--cms-border);
}


.cms-author__avatar {
    flex-shrink: 0;
    width: 72px;
    height: 72px;
    border-radius: 50%;
    object-fit: cover;
}


.cms-author__label {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--cms-text-muted);
    margin-bottom: 0.25rem;
}


.cms-author__name {
    font-family: var(--cms-font-heading);
    font-size: 1.1rem;
    font-weight: 700;
    margin-bottom: 0.25rem;
}


.cms-author__bio {
    font-size: 0.9rem;
    color: var(--cms-text-light);
}


/* ---------------------------------------------------------------------------
   Responsive
   --------------------------------------------------------------------------- */
@media (max-width: 768px) {

    .cms-author {
        flex-direction: column;
        text-align: center;
    }

    .cms-author__avatar {
        margin: 0 auto;
    }}


/* ---------------------------------------------------------------------------
   Post Author Card
   --------------------------------------------------------------------------- */
.cms-author-card {
    max-width: 880px;
    margin: 0 auto;
}


.cms-author-card__shell {
    position: relative;
    display: grid;
    grid-template-columns: 144px minmax(0, 1fr);
    gap: clamp(24px, 3vw, 40px);
    align-items: center;
    padding: clamp(28px, 3vw, 40px);
    border: 1px solid color-mix(in srgb, var(--color-accent, var(--cms-accent)) 18%, var(--color-border, var(--cms-border)));
    border-radius: 28px;
    background:
        linear-gradient(180deg, color-mix(in srgb, var(--color-accent, var(--cms-accent)) 6%, transparent), transparent 42%),
        color-mix(in srgb, var(--color-bg-alt, var(--cms-bg-alt)) 88%, transparent);
    box-shadow:
        0 18px 46px rgba(15, 23, 42, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
    overflow: hidden;
}


.cms-author-card__shell::before {
    content: '';
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: linear-gradient(180deg, var(--color-accent, var(--cms-accent)), color-mix(in srgb, var(--color-accent, var(--cms-accent)) 28%, transparent));
    opacity: 0.95;
}


.cms-author-card__media {
    display: flex;
    align-items: center;
    justify-content: center;
}


.cms-author-card__media .cms-person-avatar {
    width: 128px;
    height: 128px;
    border-radius: 50%;
    overflow: hidden;
    border: 3px solid color-mix(in srgb, var(--color-accent, var(--cms-accent)) 40%, transparent);
    box-shadow: 0 16px 34px rgba(15, 23, 42, 0.16);
    background: color-mix(in srgb, var(--color-accent, var(--cms-accent)) 12%, transparent);
    color: var(--color-accent, var(--cms-accent));
    font-size: 34px;
    font-weight: 700;
}


.cms-author-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}


.cms-author-card__body {
    min-width: 0;
}


.cms-author-card__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 14px;
    font-family: var(--font-body, var(--cms-font));
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-accent, var(--cms-accent));
}


.cms-author-card__eyebrow::before {
    content: '';
    width: 34px;
    height: 1px;
    background: currentColor;
    opacity: 0.75;
}


.cms-author-card__name {
    margin: 0 0 12px;
    font-family: var(--font-heading, var(--cms-font-heading));
    font-size: clamp(28px, 3vw, 38px);
    line-height: 1.08;
    letter-spacing: -0.03em;
    color: var(--color-text, var(--cms-text));
}


.cms-author-card__bio {
    margin: 0;
    max-width: 62ch;
    font-family: var(--font-body, var(--cms-font));
    font-size: 15px;
    line-height: 1.8;
    color: var(--color-text-muted, var(--cms-text-light));
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}


.cms-author-card__social {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 20px;
}


.cms-author-card__social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 999px;
    border: 1px solid color-mix(in srgb, var(--color-accent, var(--cms-accent)) 24%, transparent);
    background: color-mix(in srgb, var(--color-accent, var(--cms-accent)) 10%, transparent);
    color: var(--color-accent, var(--cms-accent));
    text-decoration: none;
    transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}


.cms-author-card__social-link:hover {
    transform: translateY(-2px);
    background: var(--color-accent, var(--cms-accent));
    border-color: var(--color-accent, var(--cms-accent));
    color: #fff;
}


.cms-author-card__social-link svg {
    width: 16px;
    height: 16px;
    fill: currentColor;
}


@media (max-width: 760px) {
    .cms-author-card__shell {
        grid-template-columns: 1fr;
        text-align: center;
        padding: 26px 22px;
    }

    .cms-author-card__eyebrow {
        justify-content: center;
    }

    .cms-author-card__bio {
        margin-left: auto;
        margin-right: auto;
    }

    .cms-author-card__social {
        justify-content: center;
    }}


.cms-post-std {
    padding-bottom: var(--spacing-section);
    background: var(--color-bg-alt);
}


/* ---------------------------------------------------------------------------
   Blog Listing
   --------------------------------------------------------------------------- */
.cms-bl-grid {
    width: 100%;
}


.cms-bl-grid__grid {
    display: grid;
    grid-template-columns: repeat(var(--cms-bl-grid-cols, 3), 1fr);
    gap: clamp(24px, 2.8vw, 36px);
}


.cms-bl-grid--cols-1 { --cms-bl-grid-cols: 1; }


.cms-bl-grid--cols-2 { --cms-bl-grid-cols: 2; }


.cms-bl-grid--cols-3 { --cms-bl-grid-cols: 3; }


.cms-bl-grid--cols-4 { --cms-bl-grid-cols: 4; }


.cms-bl-grid__cta {
    margin-top: 40px;
    text-align: center;
}


.cms-bl-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    max-width: var(--container, 1200px);
    margin: 0 auto 32px;
    padding: 0 24px;
    box-sizing: border-box;
}


.cms-bl-filter__link {
    padding: 8px 20px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-full);
    background: transparent;
    color: var(--cms-bl-filter-text, var(--color-text));
    font-family: var(--font-body);
    font-size: 14px;
    text-decoration: none;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}


.cms-bl-filter--dark .cms-bl-filter__link {
    border-color: rgba(255, 255, 255, 0.22);
    color: #fff;
}


.cms-bl-filter__link:hover {
    background: var(--color-bg-alt);
}


.cms-bl-filter--dark .cms-bl-filter__link:hover {
    background: rgba(255, 255, 255, 0.12);
}


.cms-bl-filter__link.is-active {
    background: var(--color-accent);
    border-color: var(--color-accent);
    color: #fff;
    font-weight: 600;
}


.cms-bl-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 48px;
}


.cms-bl-pagination__link {
    padding: 8px 14px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: transparent;
    color: var(--cms-bl-pagination-text, var(--color-text));
    font-family: var(--font-body);
    font-size: 14px;
    text-decoration: none;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}


.cms-bl-pagination__link:hover {
    background: var(--color-bg-alt);
}


.cms-bl-pagination__link.is-active {
    background: var(--color-accent);
    border-color: var(--color-accent);
    color: #fff;
    font-weight: 600;
}


.cms-bl-card__title-link {
    color: inherit;
    text-decoration: none;
}


.cms-bl-card__title-link:hover {
    color: var(--color-accent);
}


.cms-bl-card__cat {
    display: inline-block;
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 600;
    color: var(--color-accent);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}


.cms-bl-card__cat--overlay {
    padding: 4px 12px;
    border-radius: var(--radius-full);
    background: var(--color-accent);
    color: #fff;
    font-size: 11px;
    margin-bottom: 8px;
}


.cms-bl-card__author {
    font-weight: 500;
}


.cms-bl-card__avatar {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    object-fit: cover;
}


.cms-bl-card__avatar--sm {
    width: 20px;
    height: 20px;
}


.cms-bl-card__excerpt {
    font-family: var(--font-body);
    margin: 0;
    color: var(--cms-bl-card-muted, var(--color-text-muted));
}


.cms-bl-card--dark {
    --cms-bl-card-bg: rgba(255,255,255,.06);
    --cms-bl-card-border: rgba(255,255,255,.12);
    --cms-bl-card-text: var(--color-dark-text);
    --cms-bl-card-muted: var(--color-dark-text-muted);
}


.cms-bl-card--aspect-wide {
    --cms-bl-image-aspect: 16 / 9;
}


.cms-bl-card__excerpt--clamp-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}


.cms-bl-card__excerpt--ellipsis {
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: 13px;
}


.cms-bl-card__excerpt--grow {
    flex: 1;
}


.cms-bl-card__meta {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-body);
}


.cms-bl-card__meta--overlay {
    font-size: 12px;
    color: rgba(255,255,255,0.7);
}


.cms-bl-card__meta--horizontal,
.cms-bl-card__meta--vertical {
    font-size: 12px;
    color: var(--cms-bl-card-muted, var(--color-text-muted));
}


.cms-bl-card__meta--horizontal {
    margin-top: 4px;
}


.cms-bl-card__meta--vertical {
    margin-top: auto;
    padding-top: 12px;
    border-top: 1px solid var(--cms-bl-card-border, var(--color-border));
}


.cms-bl-card__meta--minimal {
    gap: 12px;
    flex-wrap: wrap;
    font-size: 13px;
    color: var(--cms-bl-card-muted, var(--color-text-muted));
}


.cms-bl-card--overlay {
    position: relative;
    overflow: hidden;
    border-radius: var(--radius-lg, 12px);
    aspect-ratio: var(--cms-bl-image-aspect, 3 / 2);
}


.cms-bl-card__overlay-link {
    position: absolute;
    inset: 0;
    display: block;
    text-decoration: none;
}


.cms-bl-card__overlay-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}


.cms-bl-card__overlay-grad {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 30%, rgba(0,0,0,0.75) 100%);
}


.cms-bl-card__overlay-body {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1;
    padding: clamp(16px, 2vw, 24px);
}


.cms-bl-card__title {
    font-family: var(--font-heading);
    font-weight: 700;
    line-height: 1.3;
    margin: 0;
}


.cms-bl-card__title--overlay {
    margin-bottom: 8px;
    font-size: clamp(16px, 2vw, 22px);
    color: #fff;
}


.cms-bl-card--horizontal {
    display: flex;
    overflow: hidden;
    border: 1px solid var(--cms-bl-card-border, var(--color-border));
    border-radius: var(--radius-lg, 12px);
    background: var(--cms-bl-card-bg, var(--color-bg));
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}


.cms-bl-card--horizontal:hover,
.cms-bl-card--vertical:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-hover);
}


.cms-bl-card__h-media {
    display: block;
    width: 35%;
    flex-shrink: 0;
    overflow: hidden;
}


.cms-bl-card__h-image,
.cms-bl-card__v-image {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform 0.5s ease;
}


.cms-bl-card--horizontal:hover .cms-bl-card__h-image,
.cms-bl-card--vertical:hover .cms-bl-card__v-image,
.cms-bl-card--overlay:hover .cms-bl-card__overlay-image {
    transform: scale(1.05);
}


.cms-bl-card__h-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    justify-content: center;
    gap: 8px;
    padding: clamp(16px, 2vw, 24px);
}


.cms-bl-card__title--horizontal,
.cms-bl-card__title--vertical {
    font-size: clamp(16px, 1.5vw, 20px);
    color: var(--cms-bl-card-text, var(--color-text));
}


.cms-bl-card--minimal {
    padding: 16px 0;
    border-bottom: 1px solid var(--cms-bl-card-border, var(--color-border));
}


.cms-bl-card__title--minimal {
    margin-bottom: 4px;
    font-size: 16px;
    color: var(--cms-bl-card-text, var(--color-text));
    line-height: 1.4;
}


.cms-bl-card--vertical {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--cms-bl-card-border, var(--color-border));
    border-radius: var(--radius-lg, 12px);
    background: var(--cms-bl-card-bg, var(--color-bg));
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}


.cms-bl-card__v-media {
    display: block;
    overflow: hidden;
    aspect-ratio: var(--cms-bl-image-aspect, 3 / 2);
}


.cms-bl-card__v-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 8px;
    padding: clamp(16px, 2vw, 24px);
}


.cms-bl-ff {
    width: 100%;
}


.cms-bl-ff__featured {
    width: 100%;
    position: relative;
    overflow: hidden;
    margin-bottom: clamp(24px, 3vw, 40px);
    border-radius: var(--radius-lg);
    max-height: 450px;
}


.cms-bl-ff__featured :is(.bl__card--overlay, .cms-post-card--overlay, .cms-generic-card--overlay) {
    aspect-ratio: auto !important;
    min-height: auto;
    height: 450px;
}


.cms-bl-ff__featured img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}


.cms-bl-ff__featured :is(.bl__card--overlay:hover img, .cms-post-card--overlay:hover img, .cms-generic-card--overlay:hover img) {
    transform: scale(1.03);
}


.cms-bl-ff__grid-wrap {
    max-width: var(--container, 1200px);
    margin: 0 auto;
    padding: 0 24px;
    box-sizing: border-box;
}


.cms-bl-ff__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(16px, 2vw, 24px);
}


.cms-bl-ff__grid :is(.bl__card--vertical, .cms-post-card--vertical, .cms-generic-card--vertical):hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.08);
}


.cms-bl-ff__grid :is(.bl__card--vertical:hover img, .cms-post-card--vertical:hover img, .cms-generic-card--vertical:hover img) {
    transform: scale(1.05);
}


.cms-bl-ff__grid :is(.bl__card--vertical, .cms-post-card--vertical, .cms-generic-card--vertical):hover :is(h2, h3, h4, h5, h6) a {
    color: var(--color-accent);
}


.cms-bl-ff__cta,
.cms-bl-fg__cta {
    margin-top: 40px;
    text-align: center;
}


.cms-bl-fg {
    width: 100%;
}


.cms-bl-fg__top {
    display: grid;
    grid-template-columns: 2fr 1fr;
    grid-template-rows: 540px;
    gap: clamp(24px, 2.8vw, 36px);
    max-width: var(--container, 1200px);
    margin: 0 auto clamp(16px, 2vw, 24px);
    padding: 0 24px;
    box-sizing: border-box;
}


.cms-bl-fg__featured {
    overflow: hidden;
    border-radius: var(--radius-lg);
    transform: translateY(-6px);
}


.cms-bl-fg__featured :is(.cms-post-card--overlay, .cms-generic-card--overlay) {
    aspect-ratio: auto !important;
    height: 100%;
}


.cms-bl-fg__side {
    display: flex;
    flex-direction: column;
    gap: clamp(14px, 1.8vw, 22px);
    min-height: 0;
}


.cms-bl-fg__side-item {
    flex: 1;
    min-height: 0;
    overflow: hidden;
    border-radius: var(--radius-lg);
}


.cms-bl-fg__side-item article {
    display: flex !important;
    flex-direction: column !important;
    height: 100%;
    overflow: hidden;
    box-shadow: none !important;
}


.cms-bl-fg__side-item article:hover {
    box-shadow: none !important;
}


.cms-bl-fg__side-item article > *:first-child {
    flex: 0 0 60%;
    overflow: hidden;
    aspect-ratio: auto !important;
}


.cms-bl-fg__side-item article > *:first-child img {
    width: 100%;
    height: 100% !important;
    object-fit: cover;
}


.cms-bl-fg__side-item article > *:last-child {
    flex: 1;
    overflow: hidden;
    padding: 8px 12px !important;
}


.cms-bl-fg__side-item :is(h2, h3, h4, h5, h6) {
    margin: 0 0 3px !important;
    font-size: 13px !important;
    line-height: 1.3 !important;
}


.cms-bl-fg__side-item :is(h2, h3, h4, h5, h6) a {
    font-size: 13px !important;
}


.cms-bl-fg__side-item article > *:last-child > p {
    display: none !important;
}


.cms-bl-fg__side-item article > *:last-child > div {
    margin: 0 !important;
    font-size: 11px !important;
}


.cms-bl-fg__side-item :is(.cms-post-card--overlay, .cms-generic-card--overlay) {
    aspect-ratio: auto !important;
    height: 100%;
}


.cms-bl-fg__rest,
.cms-bl-fg__bottom {
    max-width: var(--container, 1200px);
    margin: 0 auto;
    padding: 0 24px;
    box-sizing: border-box;
}


.cms-bl-fg__rest {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(24px, 2.8vw, 36px);
}


/* ---------------------------------------------------------------------------
   Post Layout Sidebar
   --------------------------------------------------------------------------- */
.cms-post-sb-breadcrumb {
    padding-top: clamp(80px, 10vw, 120px);
    padding-bottom: 16px;
    background: var(--color-bg-alt);
}


.cms-post-sb-breadcrumb__inner,
.cms-post-sb-layout {
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 24px;
}


.cms-post-sb-breadcrumb__nav {
    color: var(--color-text-muted);
    font-family: var(--font-body);
    font-size: 13px;
}


.cms-post-sb-breadcrumb__link {
    color: inherit;
    text-decoration: none;
    transition: color 0.2s;
}


.cms-post-sb-breadcrumb__link:hover {
    color: var(--color-accent);
}


.cms-post-sb-breadcrumb__sep { margin: 0 8px; }


.cms-post-sb-shell {
    padding: clamp(24px, 3vw, 40px) 0 var(--spacing-section);
    background: var(--color-bg-alt);
}


.cms-post-sb-layout {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: clamp(32px, 4vw, 56px);
    align-items: start;
}


.cms-post-sb__header {
    margin-bottom: clamp(20px, 3vw, 32px);
}


.cms-post-sb__category {
    display: inline-block;
    margin-bottom: 12px;
    padding: 4px 14px;
    border-radius: var(--radius-full);
    background: color-mix(in srgb, var(--color-accent) 10%, transparent);
    color: var(--color-accent);
    text-decoration: none;
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}


.cms-post-sb__title {
    margin: 0 0 16px;
    color: var(--color-text);
    font-family: var(--font-heading);
    font-size: clamp(1.6rem, 3.5vw, 2.6rem);
    font-weight: 700;
    line-height: 1.2;
}


.cms-post-sb__meta {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    color: var(--color-text-muted);
    font-family: var(--font-body);
    font-size: 14px;
}


.cms-post-sb__author-avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    object-fit: cover;
}


.cms-post-sb__author-name {
    color: var(--color-text);
    text-decoration: none;
    transition: color 0.2s;
    font-weight: 600;
}


.cms-post-sb__author-name:hover {
    color: var(--color-accent);
}


.cms-post-sb__figure {
    margin: 0 0 clamp(24px, 3vw, 40px);
    overflow: hidden;
    border-radius: var(--radius-lg);
}


.cms-post-sb__figure-img {
    display: block;
    width: 100%;
    height: auto;
}


.cms-post-sb__author-box {
    margin-top: clamp(32px, 4vw, 56px);
}


.cms-post-sb__sidebar-inner {
    position: sticky;
    top: calc(var(--header-sticky-offset, 96px) + 14px);
}


.cms-post-sb__sidebar-block {
    margin-bottom: 24px;
}


.cms-post-sb__related {
    margin-bottom: 24px;
    padding: 20px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-bg);
}


.cms-post-sb__related-title {
    margin: 0 0 12px;
    color: var(--color-accent);
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}


.cms-post-sb__newsletter {
    padding: 24px;
    border-radius: var(--radius-lg);
    background: var(--color-accent);
    text-align: center;
}


.cms-post-sb__newsletter-title {
    margin: 0 0 8px;
    color: #fff;
    font-family: var(--font-heading);
    font-size: 18px;
    font-weight: 700;
}


.cms-post-sb__newsletter-subtitle {
    margin: 0 0 16px;
    color: rgba(255,255,255,0.8);
    font-family: var(--font-body);
    font-size: 13px;
}


.cms-post-sb__newsletter-form {
    display: flex;
    flex-direction: column;
    gap: 8px;
}


.cms-post-sb__newsletter-input {
    padding: 10px 14px;
    border: none;
    border-radius: var(--radius);
    background: rgba(255,255,255,0.95);
    color: var(--color-text);
    font-family: var(--font-body);
    font-size: 14px;
}


.cms-post-sb__newsletter-btn {
    padding: 10px 14px;
    border: none;
    border-radius: var(--radius);
    background: var(--color-text);
    color: #fff;
    cursor: pointer;
    transition: opacity 0.2s;
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 600;
}


.cms-post-sb__newsletter-btn:hover {
    opacity: 0.85;
}


/* ---------------------------------------------------------------------------
   Post Layout Magazine
   --------------------------------------------------------------------------- */
.cms-post-mag-hero {
    position: relative;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
    min-height: clamp(400px, 60vh, 700px);
}


.cms-post-mag-hero__img,
.cms-post-mag-hero__overlay {
    position: absolute;
    inset: 0;
}


.cms-post-mag-hero__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}


.cms-post-mag-hero__overlay {
    background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.7) 100%);
}


.cms-post-mag-hero__content {
    position: relative;
    z-index: 1;
    max-width: 800px;
    padding: clamp(32px, 5vw, 64px) clamp(24px, 4vw, 48px);
}


.cms-post-mag__category {
    display: inline-block;
    margin-bottom: 16px;
    padding: 5px 14px;
    border-radius: var(--radius-full);
    background: var(--color-accent);
    color: #fff;
    text-decoration: none;
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}


.cms-post-mag__title {
    margin: 0 0 16px;
    color: #fff;
    font-family: var(--font-heading);
    font-size: clamp(2rem, 5vw, 3.5rem);
    font-weight: 700;
    line-height: 1.15;
}


.cms-post-mag__meta {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    color: rgba(255,255,255,0.8);
    font-family: var(--font-body);
    font-size: 14px;
}


.cms-post-mag__author-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 2px solid rgba(255,255,255,0.3);
    object-fit: cover;
}


.cms-post-mag__author-name {
    font-weight: 600;
    text-decoration: none;
}


.cms-post-mag__author-name--light {
    color: #fff;
}


.cms-post-mag-body {
    padding: clamp(32px, 5vw, 64px) 0 var(--spacing-section);
    background: var(--color-bg);
}


.cms-post-mag-body__inner,
.cms-post-mag-related__inner {
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 24px;
}


.cms-post-mag-body__inner {
    max-width: 700px;
}


.cms-post-mag__share {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: clamp(32px, 4vw, 56px);
    padding-top: 24px;
    border-top: 1px solid var(--color-border);
}


.cms-post-mag__share-label {
    color: var(--color-text-muted);
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}


.cms-post-mag__share-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--color-bg-alt);
    color: var(--color-text-muted);
    text-decoration: none;
    transition: background 0.2s, color 0.2s;
}


.cms-post-mag__share-link:hover {
    background: var(--color-accent);
    color: #fff;
}


.cms-post-mag__author-box {
    margin-top: clamp(32px, 4vw, 48px);
}


.cms-post-mag-related {
    padding: var(--spacing-section) 0;
    border-top: 1px solid var(--color-border);
    background: var(--color-bg-alt);
}


.cms-post-mag-related__title {
    margin: 0 0 clamp(24px, 3vw, 40px);
    color: var(--color-text);
    font-family: var(--font-heading);
    font-size: clamp(1.4rem, 2.5vw, 2rem);
    font-weight: 700;
}


.cms-post-mag-related__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(16px, 2vw, 24px);
}


/* ---------------------------------------------------------------------------
   Post Layout Cocon
   --------------------------------------------------------------------------- */
.cms-post-cocon-hero {
    position: relative;
    display: flex;
    align-items: center;
    overflow: hidden;
    min-height: clamp(280px, 40vh, 420px);
    background: var(--cms-post-cocon-hero-bg, var(--color-accent));
}


.cms-post-cocon-hero__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.24;
}


.cms-post-cocon-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, color-mix(in srgb, var(--cms-post-cocon-hero-bg, var(--color-accent)) 82%, #08110b 18%) 0%, color-mix(in srgb, var(--cms-post-cocon-hero-bg, var(--color-accent)) 62%, #08110b 38%) 100%);
    opacity: 0.9;
}


.cms-post-cocon-hero__content {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: var(--container);
    margin: 0 auto;
    padding: clamp(60px, 8vw, 100px) 24px;
}


.cms-post-cocon-hero__breadcrumb {
    margin-bottom: 16px;
    color: rgba(255,255,255,0.6);
    font-family: var(--font-body);
    font-size: 13px;
}


.cms-post-cocon-hero__breadcrumb-link {
    color: inherit;
    text-decoration: none;
    transition: color 0.2s;
}


.cms-post-cocon-hero__breadcrumb-link:hover {
    color: #fff;
}


.cms-post-cocon-hero__sep { margin: 0 8px; }


.cms-post-cocon-hero__title {
    max-width: 800px;
    margin: 0 0 16px;
    color: #fff;
    font-family: var(--font-heading);
    font-size: clamp(2rem, 4.5vw, 3.2rem);
    font-weight: 700;
    line-height: 1.15;
}


.cms-post-cocon-hero__excerpt {
    max-width: 640px;
    margin: 0;
    color: rgba(255,255,255,0.75);
    font-family: var(--font-body);
    font-size: clamp(15px, 1.5vw, 18px);
    line-height: 1.6;
}


.cms-post-cocon-hero__meta {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 20px;
    color: rgba(255,255,255,0.7);
    font-family: var(--font-body);
    font-size: 14px;
}


.cms-post-cocon-hero__avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 2px solid rgba(255,255,255,0.2);
    object-fit: cover;
}


.cms-post-cocon-hero__author {
    color: #fff;
    font-weight: 600;
}


.cms-post-cocon-toc-wrap {
    padding: clamp(32px, 4vw, 56px) 0;
    background: var(--color-bg-alt);
}


.cms-post-cocon-toc-wrap__inner,
.cms-post-cocon-related-topics__inner,
.cms-post-cocon-body__inner {
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 24px;
}


.cms-post-cocon-body {
    padding: var(--spacing-section) 0;
    background: var(--color-bg);
}


.cms-post-cocon-body__inner {
    max-width: 800px;
}


.cms-post-cocon-related-topics {
    padding: clamp(20px, 3vw, 36px) 0 clamp(24px, 4vw, 48px);
    background: var(--color-bg);
}


.cms-post-cocon-related-topics__head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 16px;
    margin: 0 0 clamp(18px, 2.5vw, 28px);
}


.cms-post-cocon-related-topics__eyebrow {
    margin: 0 0 8px;
    color: var(--color-accent);
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}


.cms-post-cocon-related-topics__title {
    margin: 0 0 6px;
    color: var(--color-text);
    font-family: var(--font-heading);
    font-size: clamp(1.35rem, 2.6vw, 2rem);
    font-weight: 700;
    line-height: 1.15;
}


.cms-post-cocon-related-topics__subtitle {
    max-width: 760px;
    margin: 0;
    color: var(--color-text-muted);
    font-family: var(--font-body);
    font-size: 15px;
    line-height: 1.65;
}


.cms-post-cocon-related-topics__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(16px, 2vw, 24px);
}


.cms-post-cocon-cta {
    padding: clamp(40px, 5vw, 72px) 0;
    background: var(--color-accent);
}


.cms-post-cocon-cta__inner {
    max-width: 700px;
    margin: 0 auto;
    padding: 0 24px;
    text-align: center;
}


.cms-post-cocon-cta__title {
    margin: 0 0 12px;
    color: #fff;
    font-family: var(--font-heading);
    font-size: clamp(1.4rem, 2.5vw, 2rem);
    font-weight: 700;
}


.cms-post-cocon-cta__subtitle {
    margin: 0 0 24px;
    color: rgba(255,255,255,0.85);
    font-family: var(--font-body);
    font-size: 15px;
}


.cms-post-cocon-cta__link {
    display: inline-block;
    padding: 12px 32px;
    border-radius: var(--radius-full);
    background: #fff;
    color: var(--color-accent);
    text-decoration: none;
    transition: opacity 0.2s;
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 600;
}


.cms-post-cocon-cta__link:hover {
    opacity: 0.9;
}


@media (max-width: 900px) {
    .cms-bl-grid__grid { grid-template-columns: repeat(2, 1fr); }
    .cms-bl-ff__grid { grid-template-columns: repeat(2, 1fr); }
    .cms-bl-fg__top { grid-template-columns: 1fr; }
    .cms-bl-fg__side { flex-direction: row; }
    .cms-bl-fg__rest { grid-template-columns: repeat(2, 1fr); }}


@media (max-width: 600px) {
    .cms-bl-grid__grid { grid-template-columns: 1fr; }
    .cms-bl-ff__grid { grid-template-columns: 1fr; max-width: 480px; }
    .cms-post-mag-related__grid { grid-template-columns: 1fr; }
    .cms-post-cocon-related-topics__grid { grid-template-columns: 1fr; }
    .cms-post-sb-layout { grid-template-columns: 1fr; }
    .cms-post-sb__sidebar-inner { position: static; }
    .cms-post-mag-related__grid { grid-template-columns: repeat(2, 1fr); }
    .cms-post-cocon-related-topics__grid { grid-template-columns: repeat(2, 1fr); }
    .cms-bl-fg__top,
    .cms-bl-fg__rest,
    .cms-bl-fg__bottom { padding-left: 0px; padding-right: 0; }
    .cms-bl-fg__side { flex-direction: column; }
    .cms-bl-fg__side-item article > *:first-child { flex: 0 0 auto; aspect-ratio: 16 / 10 !important; }
    .cms-bl-fg__side-item article > *:last-child { padding: 16px 18px !important; }
    .cms-bl-fg__side-item :is(h2, h3, h4, h5, h6),
    .cms-bl-fg__side-item :is(h2, h3, h4, h5, h6) a { font-size: 16px !important; }
    .cms-bl-fg__rest { grid-template-columns: 1fr; }}


/* Helpers Cards */
.cms-generic-card,.cms-post-card{text-decoration:none}


.cms-post-card{display:flex;flex-direction:column;overflow:hidden;border:var(--cms-pc-border);border-radius:var(--cms-pc-radius);background:var(--cms-pc-bg);transition:transform .3s ease,box-shadow .3s ease}


.cms-post-card:hover{transform:translateY(-4px)}


.cms-post-card:hover .cms-post-card__media{transform:scale(1.05)}


.cms-post-card:hover .cms-post-card__title-link{color:var(--color-accent)}


.cms-post-card--flat{box-shadow:none}


.cms-post-card--featured{display:grid;grid-template-columns:1fr 1fr}


.cms-post-card--horizontal{flex-direction:row}


.cms-post-card--minimal{display:flex;align-items:center;gap:16px;padding:16px 0;border:none;border-bottom:1px solid var(--cms-pc-border-color);border-radius:0;background:transparent}


.cms-post-card--overlay{position:relative;aspect-ratio:4/5;border:none;border-radius:var(--radius-lg);background:var(--cms-pc-overlay-bg,transparent)}


.cms-post-card__featured-media{display:block;overflow:hidden}


.cms-post-card__overlay-link{position:absolute;inset:0;display:block;text-decoration:none}


.cms-post-card__frame{display:block;overflow:hidden;aspect-ratio:3/2}


.cms-post-card__split-media{display:block;overflow:hidden;width:35%;flex-shrink:0}


.cms-post-card__thumb{display:block;flex-shrink:0;overflow:hidden;width:80px;height:80px;border-radius:var(--radius-md,8px)}


.cms-post-card__media{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}


.cms-post-card__media--fill{position:absolute;inset:0}


.cms-post-card__overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(0,0,0,.78) 100%)}


.cms-post-card__content{display:flex;flex:1;flex-direction:column;gap:8px;padding:clamp(16px,2vw,24px)}


.cms-post-card__content--featured{justify-content:center;padding:clamp(24px,3vw,48px);gap:12px}


.cms-post-card__content--horizontal{justify-content:center}


.cms-post-card__content--overlay{position:absolute;right:0;bottom:0;left:0;z-index:1;padding:clamp(16px,2.5vw,28px)}


.cms-post-card__debug-badge{display:inline-flex;align-items:center;gap:8px;width:fit-content;padding:6px 10px;border-radius:999px;background:rgba(220,38,38,.08);color:#b91c1c;font:700 11px/1.3 var(--font-body);letter-spacing:.04em;text-transform:uppercase}


.cms-post-card__debug-badge--on-dark{margin-bottom:10px;background:rgba(248,113,113,.18);color:#fff}


.cms-post-card__debug-sub{font-weight:600;color:#991b1b;letter-spacing:0;text-transform:none}


.cms-post-card__debug-sub--on-dark{color:rgba(255,255,255,.82)}


.cms-post-card__cat{font:600 12px/1.3 var(--font-body);letter-spacing:.5px;text-transform:uppercase;color:var(--color-accent)}


.cms-post-card__cat--badge,.cms-post-card__cat--pill{display:inline-block;width:fit-content;padding:4px 12px;border-radius:var(--radius-full);background:color-mix(in srgb,var(--color-accent) 12%,transparent)}


.cms-post-card__cat--pill{margin-bottom:8px;background:var(--color-accent);color:#fff;font-size:11px}


.cms-post-card__title{margin:0;font:600 clamp(15px,1.4vw,19px)/1.22 var(--font-heading);color:var(--cms-pc-text)}


.cms-post-card__title--featured{font-size:clamp(19px,2.35vw,26px);line-height:1.2}


.cms-post-card__title--overlay{color:#fff;font-size:clamp(15px,1.85vw,20px)}


.cms-post-card__title--minimal{font-size:15px;line-height:1.3}


.cms-post-card__title-link{color:inherit;text-decoration:none;transition:color .2s ease}


.cms-post-card__title-link--inverse{color:#fff}


.cms-post-card__excerpt{margin:0;font:400 14px/1.6 var(--font-body);color:var(--cms-pc-muted)}


.cms-post-card__excerpt--featured{font-size:15px;line-height:1.6}


.cms-post-card__excerpt--clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}


.cms-post-card__excerpt--ellipsis{flex:1;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}


.cms-post-card__meta{display:flex;align-items:center;gap:8px;margin-top:4px;color:var(--cms-pc-muted);font:400 12px/1.4 var(--font-body)}


.cms-post-card__meta--featured{margin-top:8px;font-size:13px}


.cms-post-card__meta--overlay{color:rgba(255,255,255,.75)}


.cms-post-card__meta--minimal{gap:12px;flex-wrap:wrap;font-size:13px}


.cms-post-card__meta--footer{margin-top:auto;padding-top:12px;border-top:1px solid var(--cms-pc-border-color)}


.cms-post-card__avatar{width:22px;height:22px;border-radius:50%;object-fit:cover}


.cms-post-card__avatar--lg{width:32px;height:32px}


.cms-post-card__author{font-weight:500}


.cms-post-card__author--strong{font-weight:600;color:var(--cms-pc-text)}


@media (max-width:700px) {.cms-post-card--featured{grid-template-columns:1fr}.cms-post-card--featured .cms-post-card__featured-media img{min-height:200px;max-height:240px}}


@media (max-width:600px) {.cms-post-card--horizontal{flex-direction:column}.cms-post-card--horizontal .cms-post-card__split-media{width:100%;aspect-ratio:16/9}}


/* Author hero subtitle normalization */
.page-author .cms-hero-cwm__subtitle,
.page-author .cms-hero-split__subtitle,
.page-author .cms-hero-centered__subtitle,
.page-author .cms-hero-min__subtitle,
.page-author .cms-hero-lt__subtitle,
.page-author .cms-hero-fc__subtitle,
.page-author .cms-hero-author__bio {
    font-size: 15px;
    line-height: 1.5;
}


.cms-post-card:hover .cms-post-card__title-link,
.cms-generic-card:hover .cms-generic-card__title,
.cms-bl-ff__grid :is(.bl__card--vertical, .cms-post-card--vertical, .cms-generic-card--vertical):hover :is(h2, h3, h4, h5, h6) a {
    color: var(--color-text, #0f172a) !important;
}


.cms-post-card__title-link:hover,
.cms-generic-card__title a:hover {
    color: var(--color-text, #0f172a) !important;
    text-decoration-color: color-mix(in srgb, var(--color-accent, #0f766e) 45%, transparent);
}


.cms-post-card--overlay:hover .cms-post-card__title-link,
.cms-post-card--overlay .cms-post-card__title-link:hover,
.cms-generic-card--overlay:hover .cms-generic-card__title,
.cms-bl-card--overlay:hover .cms-bl-card__title {
    color: var(--color-accent2, rgba(255,255,255,.86)) !important;
}


.cms-bl-grid__grid { display: grid; grid-template-columns: repeat(var(--cms-bl-grid-cols, 3), minmax(0, 1fr)); gap: clamp(24px, 2.8vw, 36px); }


@media (max-width: 900px) { .cms-bl-grid--cols-3, .cms-bl-grid--cols-4 { --cms-bl-grid-cols: 2; }}


@media (max-width: 640px) { .cms-bl-grid--cols-2, .cms-bl-grid--cols-3, .cms-bl-grid--cols-4 { --cms-bl-grid-cols: 1; }}


.post-with-sidebar__related-list .cms-post-card--minimal {
  display: grid !important;
  grid-template-columns: 72px minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 12px !important;
  width: 100% !important;
  min-height: 96px !important;
  padding: 12px 0 !important;
  border: 0 !important;
  border-bottom: 1px solid var(--color-border, rgba(15,23,42,.12)) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  transform: none !important;
}


.post-with-sidebar__related-list .cms-post-card--minimal:hover {
  transform: none !important;
}


.post-with-sidebar__related-list .cms-post-card--minimal:last-child {
  border-bottom: 0 !important;
  padding-bottom: 0 !important;
}


.post-with-sidebar__related-list .cms-post-card__thumb {
  display: block !important;
  width: 72px !important;
  height: 72px !important;
  overflow: hidden !important;
  border-radius: 12px !important;
}


.post-with-sidebar__related-list .cms-post-card__thumb .cms-post-card__media,
.post-with-sidebar__related-list .cms-post-card__thumb img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  border-radius: inherit !important;
  object-fit: cover !important;
}


.post-with-sidebar__related-list .cms-post-card__minimal-copy {
  min-width: 0 !important;
}


.post-with-sidebar__related-list .cms-post-card__title--minimal {
  margin: 0 !important;
  font-size: 13.5px !important;
  line-height: 1.32 !important;
}


.post-with-sidebar__related-list .cms-post-card__title-link {
  display: -webkit-box !important;
  overflow: hidden !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  color: var(--color-text, #111827) !important;
  text-decoration: none !important;
}


.post-with-sidebar__related-list .cms-post-card__meta--minimal {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 6px 10px !important;
  margin-top: 6px !important;
  font-size: 11.5px !important;
  line-height: 1.25 !important;
}


.post-with-sidebar__related-list .cms-post-card__excerpt {
  display: none !important;
}


@media (max-width: 980px) {
  .post-with-sidebar__related-list .cms-post-card--minimal {
    grid-template-columns: 64px minmax(0, 1fr) !important;
    min-height: 84px !important;
  }
  .post-with-sidebar__related-list .cms-post-card__thumb {
    width: 64px !important;
    height: 64px !important;
  }}


/* ARTICLE_V2_MOBILE_BASELINE_20260605
   Shared mobile defaults for post pages. Keep at EOF so it overrides older
   generated component blocks without changing site-specific home/listing CSS. */
@media (max-width: 800px) {

  :is(
    .page-post,
    .page-blog,
    .page-blog-categorie,
    .page-category,
    .page-author,
    .page-guides,
    .page-nos-guides
  ) :is(
    [data-reveal],
    .cms-post-card,
    .cms-generic-card,
    .cms-ds-card,
    .cms-bl-grid,
    .cms-bl-ff,
    .cms-bl-fg
  ) {
    opacity: 1 !important;
    transform: none !important;
    transition-duration: 0s !important;
    animation: none !important;
  }

  :is(
    .page-post,
    .page-blog,
    .page-blog-categorie,
    .page-category,
    .page-author,
    .page-guides,
    .page-nos-guides
  ) :is(
    .cms-post-card:hover,
    .cms-generic-card:hover,
    .cms-ds-card:hover,
    .cms-post-card:hover .cms-post-card__media,
    .cms-generic-card:hover .cms-generic-card__media
  ) {
    transform: none !important;
  }}


/* ARTICLE_V2_LISTING_BASELINE_20260605
   Shared defaults for blog/home listings and obfuscated footer links. */
.page-listing-paged :is(
  .cms-hero-min,
  .cms-hero-fc,
  .cms-hero-post-overlay,
  .cms-hero-post-centered,
  .cms-hero-cwm,
  .cms-hero-centered,
  .cms-hero-split,
  .cms-hero-slider,
  .gdn-hero,
  .rse-editorial-hero,
  .nix-category-hero,
  .ic-hero
) {
  min-height: clamp(220px, 32vh, 360px) !important;
}


.page-listing-paged [class*="hero"][class*="__title"] {
  font-size: clamp(1.65rem, 4vw, 3rem) !important;
  line-height: 1.08 !important;
}


.page-listing-paged [class*="hero"][class*="__subtitle"],
.page-listing-paged [class*="hero"][class*="__scroll"] {
  display: none !important;
}


:is(.page-home, .page-blog, .page-blog-categorie, .page-category) :is(
  .cms-bl-grid[data-reveal],
  .cms-bl-grid [data-reveal],
  .cms-bl-ff[data-reveal],
  .cms-bl-fg[data-reveal],
  .cms-post-card,
  .cms-generic-card,
  .cms-bl-card,
  .bl__card,
  .cms-card
) {
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
}


:is(.page-home, .page-blog, .page-blog-categorie, .page-category) :is(
  .cms-post-card:hover,
  .cms-generic-card:hover,
  .cms-bl-card:hover,
  .bl__card:hover,
  .cms-card:hover,
  .cms-post-card:hover img,
  .cms-generic-card:hover img,
  .cms-bl-card:hover img,
  .bl__card:hover img,
  .cms-card:hover img
) {
  transform: none !important;
}
