/* ==========================================================================
   Produkcyjna karta pojedynczej sprawy – Style Guide Aferoteki (WIP)
   /sprawy/{slug}

   Ten plik jest pierwszym produkcyjnym wdrożeniem rozwijanego style guide.
   Zasady obowiązują kartę sprawy; pozostałe publiczne widoki Aferoteki będą
   migrowane do tego systemu etapami. Wszystkie lokalne reguły mają prefiks
   case-detail-, dzięki czemu nie zmieniają wyglądu innych stron.
   ========================================================================== */

.case-detail-page{
    --case-detail-sidebar-width:296px;
    --case-detail-grid-gap:48px;
    --case-detail-line:#e2e5e9;
    --case-detail-line-soft:#edf0f2;
    --case-detail-divider-line:#dfe3e7;
    --case-detail-media-border:#e3e6ea;
    --case-detail-sidebar-line:#eceef0;

    /* Wspólny rytm layoutu dla produkcyjnej karty sprawy. */
    --case-detail-card-gap:16px;
    --case-detail-section-padding-bottom:55px;
    --case-detail-section-margin-bottom:35px;
    --case-detail-section-head-margin-bottom:30px;
    --case-detail-terminal-rule-gap:40px;
    --case-detail-region-edge-gap:40px;
    --case-detail-topics-gap:35px;
    --case-detail-callout-margin-bottom:55px;
    --case-detail-divider-margin-bottom:40px;
    --case-detail-scroll-offset:142px;

    background:#fff;
}

/* Style guide WIP – produkcyjna karta sprawy ----------------------------- */
.case-detail-page{
    letter-spacing:0;
}
.case-detail-page :where(
    h1,h2,h3,h4,p,a,button,summary,span,strong,small,time,label,input,textarea,select
){
    letter-spacing:0;
}
.case-detail-text-body{
    color:var(--color-text-primary);
    font-size:16px;
    font-weight:400;
    line-height:1.5;
}
.case-detail-text-body-lg{
    color:var(--color-text-primary);
    font-size:18px;
    font-weight:400;
    line-height:1.5;
}
.case-detail-text-meta{
    color:var(--color-text-secondary,#68727d);
    font-size:14px;
    font-weight:500;
    line-height:1.4;
}
.case-detail-text-meta-label{
    color:var(--color-text-secondary,#68727d);
    font-size:14px;
    font-weight:400;
    line-height:1.4;
}
.case-detail-title-card{
    color:var(--color-text-primary);
    font-size:20px;
    font-weight:700;
    line-height:1.3;
}
.case-detail-title-panel{
    color:var(--color-text-primary);
    font-size:24px;
    font-weight:700;
    line-height:1.25;
}
.case-detail-title-section{
    color:var(--color-text-primary);
    font-size:32px;
    font-weight:700;
    line-height:1.08;
}
.case-detail-link-inline{
    color:var(--color-accent,var(--accent));
    font-weight:500;
    text-decoration:none;
}
.case-detail-link-inline:hover{
    color:var(--color-accent-hover,var(--accent-hover));
    text-decoration:underline;
    text-underline-offset:3px;
}
.case-detail-link-card{
    color:inherit;
    text-decoration:none;
}
.case-detail-link-card:hover{
    text-decoration:none;
}
.case-detail-link-nav{
    color:var(--color-text-secondary,#68727d);
    font-size:14px;
    font-weight:500;
    text-decoration:none;
}
.case-detail-link-nav:hover{
    color:var(--color-accent,var(--accent));
    text-decoration:none;
}
.case-detail-link-disclosure{
    color:var(--color-text-primary);
    font-size:16px;
    font-weight:500;
    line-height:1.4;
    text-decoration:none;
}
.case-detail-link-disclosure:hover{
    color:var(--color-accent,var(--accent));
    text-decoration:none;
}

.case-detail-page :where(a,button,summary,[tabindex]):focus-visible{
    outline:3px solid rgba(179,32,37,.22);
    outline-offset:3px;
}

.case-detail-page .breadcrumbs{
    margin-bottom:32px;
}

/* Hero -------------------------------------------------------------------- */
.case-detail-hero{
    padding:32px 0 49px;
    background:#fff;
    border-bottom:0;
}
.case-detail-hero-grid{
    display:grid;
    grid-template-columns:minmax(0,1fr) var(--case-detail-sidebar-width);
    gap:var(--case-detail-grid-gap);
    align-items:start;
}
.case-detail-hero-main{min-width:0}
.case-detail-hero h1{
    max-width:850px;
    margin:0;
    transform:translateY(-3px);
    font-size:clamp(40px,4.3vw,60px);
    font-weight:700;
    line-height:1.02;
    text-wrap:balance;
}
.case-detail-title-block{
    position:relative;
    max-width:880px;
    margin-top:10px;
    padding-left:30px;
}
.case-detail-title-block::before{
    content:"";
    position:absolute;
    left:0;
    top:0;
    bottom:0;
    width:7px;
    background:var(--color-accent,var(--accent));
}
.case-detail-last-update{
    display:inline-flex;
    align-items:center;
    gap:4px;
    margin-top:30px;
    padding:6px 9px;
    border-radius:2px;
    background:#f4f5f6;
}
.case-detail-key-points{
    max-width:800px;
    margin-top:26px;
    padding:0;
}
.case-detail-key-points ul{
    display:flex;
    flex-direction:column;
    gap:18px;
    margin:0;
    padding:0;
    list-style:none;
}
.case-detail-key-points li{
    display:grid;
    grid-template-columns:10px 1fr;
    gap:12px;
    align-items:start;
    padding:0;
    border:0;
}
.case-detail-key-points .case-detail-key-bullet{
    width:7px;
    height:7px;
    margin-top:.6em;
    background:var(--color-accent,var(--accent));
}
.case-detail-key-points p{margin:0}
.case-detail-hero-aside{
    min-width:0;
    padding-top:16px;
}
.case-detail-follow-card{
    padding:24px;
    border:0;
    border-radius:0;
    background:#17191d;
    box-shadow:none;
}
.case-detail-follow-card .follow-hero-panel{
    display:block;
    margin:0;
    padding:0;
    border:0;
    background:transparent;
    box-shadow:none;
}
.case-detail-follow-card .follow-hero-panel--after-context,
.case-detail-follow-card .case-follow-panel--after-entities{
    margin-top:0;
    padding-top:0;
    border-top:0;
}
.case-detail-follow-card .follow-hero-copy h2,
.case-detail-follow-card .follow-hero-state h2{
    margin:0 0 9px;
    color:#fff;
    font-size:24px;
    font-weight:700;
    line-height:1.2;
}
.case-detail-follow-card .follow-hero-copy p,
.case-detail-follow-card .follow-hero-state p{
    margin:0 0 19px;
    color:#fff;
    font-size:16px;
    line-height:1.55;
}
.case-detail-follow-card .follow-hero-action,
.case-detail-follow-card .follow-hero-action-button{width:100%;margin:0}
.case-detail-follow-card .follow-hero-action .button,
.case-detail-follow-card .follow-hero-action-button,
.case-detail-follow-card .button{
    width:100%;
    min-height:44px;
    padding:10px 15px;
    font-size:16px;
    font-weight:700;
}
.case-detail-follow-card .follow-hero-state{align-items:flex-start}
.case-detail-aside-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:9px;
    margin-top:19px;
    padding-top:19px;
    border-top:1px solid #fff;
}
.case-detail-aside-actions form{display:flex;margin:0}
.case-detail-action-button{
    min-height:40px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    width:100%;
    padding:9px 12px;
    border:0;
    border-radius:8px;
    background:#fff;
    color:#4a525d;
    font:inherit;
    font-size:14px;
    font-weight:500;
    cursor:pointer;
    white-space:nowrap;
}
.case-detail-action-button:hover{background:#fafafa;color:#252a31}
.case-detail-action-button small{
    display:inline-flex;
    min-width:22px;
    height:21px;
    align-items:center;
    justify-content:center;
    padding:0 6px;
    border-radius:999px;
    background:#f0f2f4;
    color:#717985;
    font-size:10.5px;
}
.case-detail-action-button.is-done{
    background:#2b3037;
    color:#f4f6f8;
}
.case-detail-action-button.is-done small{
    background:#3b424b;
    color:#f4f6f8;
}
.case-detail-action-button:disabled{
    cursor:default;
    opacity:1;
    background:#30343a;
    color:#f7f8fa;
}
.case-detail-action-button:disabled small{
    background:#434850;
    color:#fff;
}
.case-detail-action-button.is-done:disabled{
    opacity:1;
    background:#30343a;
    color:#fff;
}
.case-detail-boost-note{
    margin:10px 0 0;
    color:rgba(255,255,255,.78);
    font-size:14px;
    font-weight:400;
    line-height:1.4;
    letter-spacing:0;
}
/* Główna treść ----------------------------------------------------------- */
.case-detail-body{
    padding:41px 0 var(--case-detail-region-edge-gap);
    background:#f6f7f8;
}
.case-detail-content{
    width:100%;
    max-width:none;
    margin:0;
}
.case-detail-section{
    scroll-margin-top:var(--case-detail-scroll-offset);
    padding:0 0 var(--case-detail-section-padding-bottom);
    margin:0 0 var(--case-detail-section-margin-bottom);
    border-bottom:1px solid var(--case-detail-line);
}
.case-detail-section--before-follow{
    padding-bottom:var(--case-detail-terminal-rule-gap);
    margin-bottom:var(--case-detail-terminal-rule-gap);
}
.case-detail-section-head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:18px;
    margin-bottom:var(--case-detail-section-head-margin-bottom);
}
.case-detail-section-head > div:first-child{
    border-left:0;
    padding-left:0;
}
.case-detail-section-head h2{margin:0}
.case-detail-empty-state{
    padding:18px;
    border:1px dashed #d8dce1;
    border-radius:8px;
    color:var(--color-text-secondary,#68727d);
    font-size:14px;
}

/* Pełny opis sprawy ------------------------------------------------------ */
.case-detail-about-section{
    padding-bottom:0;
    margin-bottom:40px;
    border-bottom:0;
}
.case-detail-about-section .case-detail-section-head{margin-bottom:22px}
.case-detail-about-text{max-width:800px}
.case-detail-about-text p{margin:0}
.case-detail-about-text p+p{margin-top:18px}
.case-detail-dropcap{
    float:left;
    display:flex;
    align-items:center;
    justify-content:center;
    width:48px;
    height:48px;
    margin:3px 12px 0 0;
    padding:0;
    background:var(--color-accent,var(--accent));
    color:#fff;
    font-size:34px;
    line-height:1;
    font-weight:800;
    text-align:center;
}
.case-detail-dropcap.is-multi{
    font-size:30px;
}

/* Separator po Patronite ------------------------------------------------ */
.case-detail-content-divider{
    height:1px;
    margin:0 0 var(--case-detail-divider-margin-bottom);
    background:var(--case-detail-divider-line);
}

/* Najnowsza aktualizacja ------------------------------------------------- */
.case-detail-continuation-item{
    position:relative;
    margin:0;
    padding:26px 28px;
    border:0;
    border-radius:0;
    background:#fff;
    box-shadow:none;
}
.case-detail-update-head-row{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:24px;
    max-width:100%;
}
.case-detail-update-date{
    flex:0 0 auto;
    margin:5px 0 0;
    white-space:nowrap;
}
.case-detail-update-heading{
    display:flex;
    align-items:flex-start;
    gap:12px;
    max-width:810px;
}
.case-detail-update-live-dot{
    position:relative;
    width:8px;
    height:8px;
    flex:0 0 8px;
    margin-top:13px;
    border-radius:50%;
    background:var(--color-accent,var(--accent));
}
.case-detail-update-live-dot.is-live::after{
    content:"";
    position:absolute;
    inset:-4px;
    border:1px solid rgba(190,30,45,.34);
    border-radius:50%;
    animation:caseDetailLivePulse 1.8s ease-out infinite;
}
@keyframes caseDetailLivePulse{
    0%{transform:scale(.55);opacity:.75}
    70%,100%{transform:scale(1.45);opacity:0}
}
.case-detail-continuation-item h3{max-width:790px;margin:0}
.case-detail-continuation-item>p{max-width:800px;margin:18px 0 0}
.case-detail-update-disclosure{
    max-width:800px;
    margin-top:25px;
    padding-top:21px;
    border-top:1px solid var(--case-detail-line-soft);
}
.case-detail-update-disclosure summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    min-height:28px;
    padding:0;
    cursor:pointer;
    list-style:none;
}
.case-detail-update-disclosure summary::-webkit-details-marker{display:none}
.case-detail-update-counts{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:7px;
    color:var(--color-text-secondary, #68727d);
    font-size:16px;
    line-height:1.4;
    font-weight:500;
}
.case-detail-update-toggle{
    display:inline-flex;
    align-items:center;
    gap:0;
    flex:0 0 auto;
}
.case-detail-update-toggle-hide{display:none}
.case-detail-update-disclosure summary:hover .case-detail-update-toggle{
    color:var(--color-accent,var(--accent));
}
.case-detail-update-disclosure[open] .case-detail-update-toggle-show{display:none}
.case-detail-update-disclosure[open] .case-detail-update-toggle-hide{display:inline}
.case-detail-update-disclosure[open] .case-detail-update-materials-compact{
    display:grid;
    gap:11px;
    margin-top:18px;
    padding-top:20px;
    border-top:1px solid var(--case-detail-line-soft);
}

/* Wariant listowy disclosure: ten sam lekki wzorzec co „Pokaż pozostałe źródła”. */
.case-detail-update-disclosure--list{
    max-width:none;
    margin-top:var(--case-detail-card-gap);
    padding-top:0;
    border-top:0;
}
.case-detail-update-disclosure--list summary{
    justify-content:flex-start;
    padding:16px 18px;
    background:var(--color-surface-card,#fff);
}
.case-detail-update-disclosure--list[open] .case-detail-update-materials-compact{
    margin-top:var(--case-detail-card-gap);
    padding-top:0;
    border-top:0;
}
.case-detail-update-compact-row{
    display:grid;
    grid-template-columns:92px minmax(0,1fr);
    gap:12px;
    align-items:start;
}
.case-detail-update-compact-links{
    display:flex;
    flex-wrap:wrap;
    gap:3px 8px;
    min-width:0;
}
.case-detail-update-compact-sep{color:#a5adb5}
/* Wsparcie --------------------------------------------------------------- */
.case-detail-support-callout{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:26px;
    margin:0 0 var(--case-detail-callout-margin-bottom);
    padding:24px 26px;
    border:0;
    border-radius:0;
    background:#de330d;
}
.case-detail-support-copy h2{margin:0;color:#fff}
.case-detail-support-copy p{
    max-width:620px;
    margin:7px 0 0;
    color:#fff;
    font-size:16px;
    line-height:1.5;
}
.case-detail-support-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:42px;
    padding:10px 16px;
    border:0;
    border-radius:8px;
    background:#fff;
    color:#de330d!important;
    font-size:16px;
    font-weight:700;
    white-space:nowrap;
}
.case-detail-support-button:hover{background:#f4f5f6;color:#c72d0b!important}

/* Powiązania ------------------------------------------------------------- */
.case-detail-relation-note{
    max-width:920px;
    margin:0 0 28px;
    padding:0;
    border:0;
    border-radius:0;
    box-shadow:none;
    background:transparent;
}
.case-detail-relation-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:var(--case-detail-card-gap);
}
.case-detail-relation-row{
    display:block;
    min-width:0;
    padding:18px;
    border:0;
    border-radius:0;
    box-shadow:none;
    background:#fff;
    color:var(--color-text-primary);
    text-decoration:none;
}
.case-detail-relation-identity{
    display:flex;
    align-items:center;
    gap:14px;
    min-width:0;
}
.case-detail-relation-row:hover .case-detail-relation-identity strong{color:var(--color-accent,var(--accent))}
.case-detail-relation-media{
    display:flex;
    flex:0 0 48px;
    align-items:center;
    justify-content:center;
    width:48px;
    height:48px;
    overflow:hidden;
    box-sizing:border-box;
    border:1px solid var(--case-detail-media-border);
    border-radius:0;
    background:#f1f3f5;
    color:var(--color-text-primary);
    font-size:12px;
    font-weight:700;
}
.case-detail-relation-media.is-logo{border-radius:0;background:#fff}
.case-detail-relation-media img{width:100%;height:100%;object-fit:cover}
.case-detail-relation-media.is-logo img{object-fit:contain;padding:4px}
.case-detail-relation-identity strong{display:block;min-width:0;margin:0;transition:color .15s ease}
.case-detail-relation-row>p{margin:14px 0 0}

/* Dokumentacja ----------------------------------------------------------- */
.case-detail-documentation-stack,
.case-detail-source-full-list{
    display:flex;
    flex-direction:column;
    gap:var(--case-detail-card-gap);
}
.case-detail-source-card,
[id^="stanowisko-"]{
    scroll-margin-top:var(--case-detail-scroll-offset);
}

.case-detail-source-card{
    padding:24px 26px;
    background:#fff;
}
.case-detail-source-card.is-origin{
    background:#fff8f6;
}
.case-detail-source-card-meta{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px;
}
.case-detail-source-card-meta span+span::before{
    content:"·";
    margin-right:8px;
    color:#a9b0b8;
}
.case-detail-source-card-kind{
    color:var(--color-accent,var(--accent));
    font-weight:500;
}
.case-detail-source-card-kind.is-background{
    color:var(--color-text-secondary, #68727d);
}
.case-detail-source-card h3{margin:12px 0 0;text-wrap:wrap}
.case-detail-source-card h3 a:hover{color:var(--color-accent,var(--accent))}
.case-detail-source-credit{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:10px;
    margin-top:14px;
}
.case-detail-source-publisher,
.case-detail-source-author{
    display:inline-flex;
    align-items:center;
    gap:8px;
    min-width:0;
}
.case-detail-source-publisher-logo,
.case-detail-source-author-avatar{
    display:inline-flex;
    flex:0 0 28px;
    width:28px;
    height:28px;
    align-items:center;
    justify-content:center;
    overflow:hidden;
    box-sizing:border-box;
    border:1px solid var(--case-detail-media-border);
    border-radius:50%;
    background:#eef1f3;
    color:var(--color-text-secondary, #68727d);
    font-size:10px;
    font-weight:700;
    line-height:1;
}
.case-detail-source-publisher-logo img,
.case-detail-source-author-avatar img{
    display:block;
    width:100%;
    height:100%;
}
.case-detail-source-publisher-logo img{
    object-fit:contain;
    padding:0;
    background:#fff;
    border-radius:50%;
}
.case-detail-source-author-avatar img{object-fit:cover}
.case-detail-source-credit-separator{
    display:inline-block;
    flex:0 0 1px;
    width:1px;
    height:22px;
    margin:0 2px;
    background:#d7dce1;
}
.case-detail-source-authors{
    display:inline-flex;
    flex-wrap:wrap;
    align-items:center;
    gap:12px;
    min-width:0;
}
.case-detail-source-card p{margin:12px 0 0}
.case-detail-more-sources{
    margin-top:var(--case-detail-card-gap);
    background:transparent;
}
.case-detail-more-sources summary,
.case-detail-older-statements summary{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:12px;
    padding:16px 18px;
    background:#fff;
    cursor:pointer;
    list-style:none;
}
.case-detail-more-sources summary::-webkit-details-marker,
.case-detail-older-statements summary::-webkit-details-marker{display:none}
.case-detail-more-sources .case-detail-more-sources-label{color:inherit}
.case-detail-more-sources .case-detail-more-sources-label.is-open{display:none}
.case-detail-more-sources[open] .case-detail-more-sources-label.is-closed{display:none}
.case-detail-more-sources[open] .case-detail-more-sources-label.is-open{display:inline}
.case-detail-source-full-list{
    margin-top:var(--case-detail-card-gap);
}

/* Stanowiska ------------------------------------------------------------- */
.case-detail-statement-groups{
    display:flex;
    flex-direction:column;
    gap:var(--case-detail-card-gap);
}
.case-detail-statement-group{
    scroll-margin-top:var(--case-detail-scroll-offset);
    background:#fff;
}
.case-detail-statement-group-head{
    display:grid;
    grid-template-columns:48px minmax(0,1fr);
    gap:14px;
    align-items:center;
    padding:24px 26px 0;
}
.case-detail-statement-avatar{
    display:flex;
    align-items:center;
    justify-content:center;
    width:48px;
    height:48px;
    overflow:hidden;
    box-sizing:border-box;
    border:1px solid var(--case-detail-media-border);
    background:#f3f5f6;
    color:var(--color-text-secondary, #68727d);
    font-size:14px;
    font-weight:700;
}
.case-detail-statement-avatar.is-logo{background:#fff}
.case-detail-statement-avatar img{width:100%;height:100%;object-fit:cover}
.case-detail-statement-avatar.is-logo img{object-fit:contain;padding:4px}
.case-detail-statement-identity{
    display:flex;
    flex-wrap:wrap;
    align-items:baseline;
    gap:8px 12px;
    min-width:0;
}
.case-detail-statement-identity h3{margin:0}
.case-detail-statement-identity h3 a:hover{color:var(--color-accent,var(--accent))}
.case-detail-statement-latest{
    padding:18px 26px 24px;
}
.case-detail-statement-latest time,
.case-detail-statement-history time{display:block;margin-bottom:8px}
.case-detail-statement-latest p,
.case-detail-statement-history p{margin:0}
.case-detail-statement-latest>a,
.case-detail-statement-history>a{display:inline-block;margin-top:12px;font-size:14px}
.case-detail-older-statements{
    border-top:1px solid var(--case-detail-line-soft);
}
.case-detail-older-statements summary{
    padding:15px 26px;
    background:#fff;
}
.case-detail-older-statements>div{padding:0 26px 8px}
.case-detail-statement-history{
    padding:18px 0;
    border-top:1px solid var(--case-detail-line-soft);
}
.case-detail-statement-history:first-child{border-top:0}
.case-detail-more-statement-groups{
    margin-top:var(--case-detail-card-gap);
    background:transparent;
}
.case-detail-more-statement-groups>summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:16px 18px;
    background:#fff;
    cursor:pointer;
    list-style:none;
}
.case-detail-more-statement-groups>summary::-webkit-details-marker{display:none}
.case-detail-more-statement-groups>.case-detail-statement-groups{
    margin-top:var(--case-detail-card-gap);
}

/* Obserwowanie po Stanowiskach ------------------------------------------ */
.case-detail-follow-callout{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:26px;
    margin:0;
    padding:24px 26px;
    border:0;
    border-radius:0;
    background:#17191d;
}
.case-detail-follow-callout-copy h2{margin:0;color:#fff}
.case-detail-follow-callout-copy p{
    max-width:620px;
    margin:7px 0 0;
    color:#fff;
    font-size:16px;
    line-height:1.5;
}
.case-detail-follow-callout form{margin:0}
.case-detail-follow-callout-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:42px;
    padding:10px 18px;
    border:0;
    border-radius:8px;
    background:#fff;
    color:#17191d!important;
    font-size:16px;
    font-weight:700;
    line-height:1;
    text-decoration:none;
    white-space:nowrap;
    cursor:pointer;
}
.case-detail-follow-callout-button:hover{
    background:#f4f5f6;
    color:#17191d!important;
}

/* Powiązane sprawy ------------------------------------------------------- */
.case-detail-bottom-topics{
    margin:var(--case-detail-topics-gap) 0 0;
    padding:0;
    border:0;
}
.case-detail-bottom-topics-links{
    display:flex;
    flex-wrap:wrap;
    gap:10px 22px;
}
.case-detail-bottom-topics a{
    color:var(--color-accent,var(--accent));
    font-size:16px;
    line-height:1.45;
    font-weight:600;
}
.case-detail-bottom-topics a:hover{
    color:var(--color-accent-hover,var(--accent-hover));
    text-decoration:underline;
    text-underline-offset:3px;
}

.case-detail-related{
    padding:var(--case-detail-region-edge-gap) 0 58px;
    border-top:0;
    background:#fff;
}
.case-detail-related .case-detail-section-head{
    margin-bottom:30px;
}
.case-detail-related-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:var(--case-detail-card-gap);
}
.case-detail-related-card{
    position:relative;
    min-width:0;
    display:block;
    height:100%;
    padding:28px 24px 24px;
    overflow:hidden;
    border:0;
    border-radius:0;
    background:#f6f7f8;
    box-shadow:none;
    color:var(--color-text-primary);
    transition:background .15s ease;
}
.case-detail-related-card::before{
    content:"";
    position:absolute;
    top:0;
    right:0;
    left:0;
    height:4px;
    background:var(--color-accent,var(--accent));
}
.case-detail-related-card:hover{
    border:0;
    box-shadow:none;
    background:#f1f3f4;
}
.case-detail-related-date{display:block}
.case-detail-related-card h3{margin:10px 0 0;text-wrap:wrap}
.case-detail-related-card p{margin:12px 0 0}
.case-detail-related-card:hover h3{
    color:var(--color-accent,var(--accent));
}

/* Wspólny follow dialog -------------------------------------------------- */
.case-detail-follow-dialog .follow-dialog-shell{max-width:520px}


/* Desktop: prawy sticky panel ------------------------------------------- */
.case-detail-body-grid{
    display:grid;
    grid-template-columns:minmax(0,1fr) var(--case-detail-sidebar-width);
    gap:var(--case-detail-grid-gap);
    align-items:start;
}
.case-detail-content{min-width:0}

.case-detail-sticky-sidebar{
    position:sticky;
    top:94px;
    align-self:start;
    min-width:0;
}
.case-detail-sidebar-card{
    overflow:hidden;
    border:0;
    border-radius:0;
    background:#fff;
    box-shadow:none;
}
.case-detail-sidebar-follow{
    padding:19px 18px 18px;
    border-bottom:1px solid var(--case-detail-sidebar-line);
}
.case-detail-sidebar-follow form{margin:0}
.case-detail-sidebar-follow-button{
    width:100%;
    min-height:42px;
    padding:9px 12px;
    border:0;
    border-radius:7px;
    background:var(--color-accent,var(--accent));
    color:#fff;
    font:inherit;
    font-size:16px;
    font-weight:700;
    cursor:pointer;
}
.case-detail-sidebar-follow-button:hover{background:var(--color-accent-hover)}

.case-detail-sidebar-follow--compact{
    padding:16px 18px 18px;
    border-bottom:0;
    background:#fff;
}
.case-detail-sidebar-follow--compact strong{
    margin:0 0 11px;
    color:var(--color-text-primary);
    font-size:14px;
    line-height:1.35;
    font-weight:500;
}
.case-detail-sidebar-follow--compact .case-detail-sidebar-follow-link{
    display:inline-flex;
    margin-top:1px;
}
.case-detail-sidebar-nav{
    padding:18px;
    border-bottom:1px solid var(--case-detail-sidebar-line);
    background:#fff;
}
.case-detail-sidebar-nav a{
    display:flex;
    align-items:center;
    min-height:38px;
    padding:7px 8px 7px 12px;
    margin:0 -8px;
    border-left:3px solid transparent;
    border-radius:0;
    background:transparent;
}
.case-detail-sidebar-nav a:hover{
    background:transparent;
    color:var(--color-accent,var(--accent));
}
.case-detail-sidebar-nav a.is-active{
    border-left-color:var(--color-accent,var(--accent));
    background:transparent;
    color:var(--color-accent,var(--accent));
}
.case-detail-sidebar-freshness{
    padding:16px 18px;
    border-bottom:1px solid var(--case-detail-sidebar-line);
    background:#fff;
}
.case-detail-freshness-value{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:12px;
}
.case-detail-freshness-value strong{flex:0 0 auto;text-align:right}

/* Spójna skala przycisków ------------------------------------------------ */
.case-detail-page .button,
.case-detail-page .follow-hero-action-button,
.case-detail-page .case-detail-support-button,
.case-detail-page .case-detail-follow-callout-button,
.case-detail-page .case-detail-sidebar-follow-button{
    font-size:16px;
    font-weight:700;
}
.case-detail-page .case-detail-action-button{
    font-size:14px;
    font-weight:500;
}


/* Responsive ------------------------------------------------------------- */
@media (max-width:900px){
    .case-detail-body-grid{grid-template-columns:1fr}
    .case-detail-sticky-sidebar{display:none}
    .case-detail-page .breadcrumbs{margin-bottom:22px}
    .case-detail-hero{padding:24px 0 34px}
    .case-detail-hero-grid{grid-template-columns:1fr;gap:28px}
   .case-detail-hero h1{max-width:900px;font-size:clamp(36px,8vw,50px)}
    .case-detail-hero-aside{max-width:560px}
    .case-detail-body{padding:42px 0 var(--case-detail-region-edge-gap)}
    .case-detail-relation-list{grid-template-columns:1fr}
    .case-detail-related-grid{grid-template-columns:1fr}
}

@media (max-width:640px){
    .case-detail-page{
        --case-detail-section-padding-bottom:32px;
        --case-detail-section-margin-bottom:32px;
        --case-detail-terminal-rule-gap:32px;
        --case-detail-region-edge-gap:28px;
        --case-detail-topics-gap:24px;
        --case-detail-callout-margin-bottom:32px;
        --case-detail-divider-margin-bottom:32px;
        --case-detail-scroll-offset:130px;
        --case-detail-mobile-callout-padding:16px;
        overflow-x:clip;
    }

    /* Style guide WIP — mobile. Body Large świadomie składa się do Body. */
    .case-detail-text-body-lg{font-size:16px;line-height:1.5}
    .case-detail-title-card{font-size:18px;line-height:1.3}
    .case-detail-title-panel{font-size:22px;line-height:1.25}
    .case-detail-title-section{font-size:28px;line-height:1.12}

    .case-detail-hero{padding:19px 0 0}
    .case-detail-title-block{margin-top:8px;padding-left:0}
    .case-detail-title-block::before{display:none}
    .case-detail-hero h1{font-size:clamp(34px,10vw,38px);line-height:1.2}
    .case-detail-last-update{margin-top:24px}
    .case-detail-key-points{margin-top:22px;padding:0}
    .case-detail-key-points ul{gap:17px}
    .case-detail-key-points li{grid-template-columns:9px 1fr;gap:11px;padding:0}
    /* Full-bleed CTA na mobile: szerokość ustalamy tutaj, poziome marginesy
       dopinamy na końcu breakpointu, żeby nie nadpisały ich późniejsze shorthandy. */
    .case-detail-hero-aside,
    .case-detail-support-callout,
    .case-detail-follow-callout{
        width:100vw;
        max-width:none;
    }
    .case-detail-hero-aside{
        max-width:none;
        padding-top:0;
    }
    .case-detail-follow-card{padding:21px var(--case-detail-mobile-callout-padding)}
    .case-detail-follow-card .follow-hero-copy h2,
    .case-detail-follow-card .follow-hero-state h2{font-size:22px;line-height:1.25}

    .case-detail-relation-note{margin-bottom:24px;padding:0}
    .case-detail-body{padding-top:36px}
    .case-detail-section{
        scroll-margin-top:var(--case-detail-scroll-offset);
        padding-bottom:var(--case-detail-section-padding-bottom);
        margin-bottom:var(--case-detail-section-margin-bottom);
    }
    .case-detail-section--before-follow{
        padding-bottom:var(--case-detail-terminal-rule-gap);
        margin-bottom:var(--case-detail-terminal-rule-gap);
    }
    .case-detail-section-head h2{font-size:28px;line-height:1.12}
    .case-detail-about-section{padding-bottom:0;margin-bottom:40px}
    .case-detail-about-section .case-detail-section-head{margin-bottom:22px}
    .case-detail-dropcap{width:44px;height:44px;margin:3px 10px 0 0;padding:0;font-size:31px;line-height:1}
    .case-detail-dropcap.is-multi{font-size:27px}

    .case-detail-continuation-item{padding:20px 18px}
    .case-detail-update-head-row{flex-direction:column;gap:8px}
    .case-detail-update-heading{align-items:center}
    .case-detail-update-live-dot{margin-top:0}
    .case-detail-update-date{order:-1;margin:0 0 2px}
    .case-detail-update-disclosure summary{align-items:flex-start}
    .case-detail-update-compact-row{grid-template-columns:1fr;gap:3px}

    /* Hero follow + oba callouty mają pełne tło od krawędzi do krawędzi viewportu. */
    .case-detail-support-callout{
        grid-template-columns:1fr;
        gap:15px;
        margin-top:0;
        margin-bottom:var(--case-detail-callout-margin-bottom);
        padding:20px var(--case-detail-mobile-callout-padding);
    }
    .case-detail-support-button{justify-self:start;min-height:42px;padding:10px 14px}
    .case-detail-follow-callout{
        grid-template-columns:1fr;
        gap:15px;
        margin-top:0;
        margin-bottom:0;
        padding:20px var(--case-detail-mobile-callout-padding);
    }
    .case-detail-follow-callout-button{justify-self:start;min-height:42px;padding:10px 16px}

    /* Karty zachowują standardowy 16px gutter strony, ale mają ciaśniejszy padding. */
    .case-detail-relation-row{padding:16px}
    .case-detail-source-card{padding:18px}
    .case-detail-statement-group-head{padding:18px 18px 0}
    .case-detail-statement-latest{padding:16px 18px 18px}
    .case-detail-older-statements summary{padding:14px 18px}
    .case-detail-older-statements>div{padding-left:18px;padding-right:18px}
    .case-detail-related{padding:var(--case-detail-region-edge-gap) 0 50px}
    .case-detail-related-card{padding:24px 18px 20px}

    /* Poziomy full-bleed jest nakładany na końcu breakpointu.
       margin-inline nie rusza pionowego rytmu poszczególnych CTA. */
    .case-detail-hero-aside,
    .case-detail-support-callout,
    .case-detail-follow-callout{
        margin-inline:calc(50% - 50vw);
    }
}


@media (prefers-reduced-motion:reduce){
    .case-detail-update-live-dot.is-live::after{animation:none;opacity:0}
    .case-detail-related-card{transition:none}
}
