/* Extensiones editoriales. La plantilla y estilos del sitio permanecen independientes. */
.blog-card--contain .blog-card__image { background: #fff; }
.blog-card--contain .blog-card__image img { object-fit: contain; }
.blog-article__cover.blog-article__cover--contain img { object-fit: contain; background: #fff; }
.blog-editorial-sources { margin-top: 3rem; padding: 1.25rem 1.5rem; background: #f5f7f9; border: 1px solid #e3e8ed; border-radius: 14px; }
.blog-editorial-sources summary { cursor: pointer; font-weight: 650; color: #263a4d; }
.blog-editorial-sources a { color: #14596d; text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.blog-editorial-sources ul { font-size: .85rem; margin-bottom: 0; }
.blog-editorial-sources summary:focus-visible, .blog-editorial-sources a:focus-visible { outline: 3px solid #f8891b; outline-offset: 4px; }
.bs-albedo { margin: 2rem 0 3rem; padding: clamp(1rem, 3vw, 1.75rem); border: 1px solid #dbe3ea; border-radius: 20px; background: #fff; box-shadow: 0 12px 36px rgba(22,43,61,.07); color: #1a3043; }
.bs-albedo *, .bs-albedo *::before, .bs-albedo *::after { box-sizing: border-box; }
.bs-albedo__eyebrow { display: block; color: #a64c08; font-size: .69rem; font-weight: 750; text-transform: uppercase; letter-spacing: .12em; margin-bottom: .6rem; }
.bs-albedo__header h3 { margin: 0 0 .6rem; font-size: clamp(1.35rem, 3vw, 1.8rem); line-height: 1.2; color: #152b3e; }
.bs-albedo .bs-albedo__header p { margin: 0 0 1.5rem; font-size: .95rem; color: #566775; line-height: 1.6; }
.bs-albedo__controls { border: 0; padding: 0; margin: 0 0 1.35rem; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .6rem; min-width: 0; }
.bs-albedo__controls legend { font-size: .8rem; color: #526575; font-weight: 650; padding: 0 0 .6rem; }
.bs-albedo__surface { display: flex; align-items: center; gap: .5rem; min-height: 46px; padding: .7rem; border: 1px solid #d8e1e8; background: #fff; border-radius: 9px; font: inherit; font-size: .83rem; font-weight: 600; color: #294256; text-align: left; cursor: pointer; }
.bs-albedo__surface[aria-pressed="true"] { background: #fff4e8; border-color: #e77a17; color: #8a3d00; box-shadow: inset 0 0 0 1px #e77a17; }
.bs-albedo__surface:focus-visible, .bs-albedo__motion:focus-visible { outline: 3px solid #14596d; outline-offset: 3px; }
.bs-albedo__surface:disabled { cursor: default; }
.bs-albedo__swatch { width: 13px; height: 13px; flex: 0 0 13px; border-radius: 50%; background: var(--surface-color); border: 1px solid rgba(19,43,65,.3); }
.bs-albedo__metrics { display: grid; grid-template-columns: 1fr 1fr; margin-bottom: 1rem; border-radius: 12px; overflow: hidden; border: 1px solid #e0e7ed; }
.bs-albedo__metrics > div { padding: 1rem; min-width: 0; background: #f7f9fb; }
.bs-albedo__metrics > div + div { border-left: 1px solid #e0e7ed; }
.bs-albedo__metrics span, .bs-albedo__metrics small { display: block; color: #566775; font-size: .73rem; line-height: 1.5; }
.bs-albedo__metrics strong { display: block; color: #142d43; font-size: clamp(1.45rem,4vw,2rem); line-height: 1.3; margin: .4rem 0; font-weight: 750; overflow-wrap: anywhere; }
.bs-albedo__diagram { width: 100%; height: auto; display: block; }
.bs-albedo__direct, .bs-albedo__reflected { stroke-dasharray: 8 9; animation: bs-ray-flow 1.8s linear infinite; animation-play-state: paused; }
.bs-albedo__reflected { animation-duration: 1.4s; }
.bs-albedo[data-visible="true"][data-paused="false"] .bs-albedo__direct,
.bs-albedo[data-visible="true"][data-paused="false"] .bs-albedo__reflected { animation-play-state: running; }
@keyframes bs-ray-flow { to { stroke-dashoffset: -34; } }
.bs-albedo__legend { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem 1.5rem; margin: .8rem 0 1.1rem; font-size: .74rem; color: #536777; }
.bs-albedo__legend span { display: inline-flex; align-items: center; gap: .4rem; }
.bs-albedo__legend i { display: inline-block; width: 18px; height: 3px; background: #d96b10; }
.bs-albedo__legend span + span i { background: #08778a; }
.bs-albedo .bs-albedo__description { padding: .9rem 1rem; border-left: 3px solid #f8891b; background: #fff8f0; font-size: .87rem; line-height: 1.65; color: #344f62; margin: 0 0 1rem; }
.bs-albedo__motion { font: inherit; font-size: .78rem; font-weight: 650; padding: .7rem .9rem; color: #234e63; border: 1px solid #cbd7df; border-radius: 8px; background: #fff; cursor: pointer; margin: 0 0 1rem; min-height: 44px; }
.bs-albedo .bs-albedo__note { font-size: .73rem; line-height: 1.65; color: #60717f; margin: 0; }
@media (prefers-reduced-motion: reduce) { .bs-albedo__direct, .bs-albedo__reflected { animation: none; } }
@media (max-width: 380px) { .bs-albedo__surface { padding: .6rem .45rem; font-size: .76rem; gap: .3rem; } .bs-albedo__metrics > div { padding: .8rem .65rem; } }
