/* --- CSS til TV-Pakke Viser --- */
    .tv-pakker-container {
        --brand-green: #27ae60;
        --light-gray: #f7f8fa;
        --medium-gray: #e0e0e0;
        --dark-gray: #333;
        --text-color: #555;
        --border-radius: 8px;
        --card-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
        gap: 20px;
        font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
        padding: 0 15px;
    }
    .tv-pakker-container .card { background-color: #fff; border: 1px solid var(--medium-gray); border-radius: var(--border-radius); box-shadow: var(--card-shadow); padding: 16px; display: flex; flex-direction: column; gap: 12px; position: relative; }
    .tv-pakker-container .card-header { display: flex; align-items: flex-start; gap: 12px; }
    .tv-pakker-container .card-logo { width: 50px; height: 50px; object-fit: contain; border: 1px solid #eee; border-radius: var(--border-radius); padding: 5px; flex-shrink: 0; }
    .tv-pakker-container .card-title-section .card-title-text { font-size: 18px; color: var(--dark-gray); margin: 0 0 4px 0; font-weight: bold; }
    .tv-pakker-container .card-rating { font-size: 14px; color: #f39c12; display: flex; align-items: center; gap: 4px; }
    .tv-pakker-container .card-rating span { color: var(--text-color); }
    .tv-pakker-container .card-channels { font-size: 14px; margin-top: 4px; }
    .tv-pakker-container .card-channels .channel-link { color: #007bff; text-decoration: none; font-weight: 500; }
    .tv-pakker-container .card-channels .channel-link:hover { text-decoration: underline; }
    .tv-pakker-container .card-price-block { background-color: var(--light-gray); border-radius: var(--border-radius); padding: 12px; text-align: center; }
    .tv-pakker-container .card-price { font-size: 32px; font-weight: bold; color: var(--dark-gray); }
    .tv-pakker-container .card-price-sub { font-size: 13px; color: var(--text-color); margin-top: 2px; text-transform: capitalize; }
    .tv-pakker-container .card-features { list-style: none; padding: 0; margin: 0; font-size: 14px; display: flex; flex-direction: column; gap: 8px; }
    .tv-pakker-container .card-features li { display: flex; align-items: flex-start; gap: 8px; }
    .tv-pakker-container .card-features li::before { content: '✓'; color: var(--brand-green); font-weight: bold; line-height: 1.4; }
    .tv-pakker-container .card-streamers { background-color: var(--light-gray); border-radius: var(--border-radius); padding: 12px; }
    .tv-pakker-container .card-streamers .streamers-title { font-size: 11px; font-weight: 600; color: #888; text-transform: uppercase; letter-spacing: 0.5px; margin: 0 0 10px 0; }
    .tv-pakker-container .card-streamers-grid { display: flex; flex-wrap: wrap; gap: 6px; }
    .tv-pakker-container .streamer-pill { background-color: #fff; border: 1px solid #ddd; border-radius: 4px; padding: 4px 10px; font-size: 13px; font-weight: 500; }
    .tv-pakker-container .streamer-pill.more-btn { background-color: #eef3ff; color: #007bff; border-color: #ccd9ff; cursor: pointer; transition: all 0.2s; }
    .tv-pakker-container .streamer-pill.more-btn:hover { background-color: #dfe7ff; }
    .tv-pakker-container .streamer-empty { font-size: 13px; color: #999; font-style: italic; }
    .tv-pakker-container .card-tags { display: flex; flex-wrap: wrap; gap: 6px; font-size: 12px; }
    .tv-pakker-container .info-tag { background-color: var(--light-gray); border-radius: 4px; padding: 4px 8px; display: flex; align-items: center; gap: 5px; }
    .tv-pakker-container .card-cta-button { margin-top: auto; display: block; width: 100%; background-color: var(--brand-green); color: white; text-align: center; padding: 12px 0; border-radius: var(--border-radius); font-weight: bold; font-size: 16px; text-decoration: none; transition: background-color 0.2s; box-sizing: border-box; }
    .tv-pakker-container .card-cta-button:hover { background-color: #219653; }
    .tv-pakker-container .card-ad-label,
    .last-updated-text { font-size: 11px; color: #999; text-align: center; margin-top: 10px; font-weight: 400; letter-spacing: 0.02em; }

    /* --- UI til Modals --- */
    :root {
        --filter-brand-color: #27ae60;
        --filter-primary-text: #333;
        --filter-secondary-text: #555;
        --filter-border-color: #e0e0e0;
        --filter-background-light: #f7f8fa;
        --filter-overlay-bg: rgba(0, 0, 0, 0.5);
    }
    .filter-sticky-header { 
        background-color: rgba(255, 255, 255, 0.95); 
        backdrop-filter: blur(10px); 
        position: sticky; 
        top: 0; 
        z-index: 5; /* FIX: Ændret fra 99 til 5 for at fixe dropdown */
        padding: 10px 15px; 
        border-bottom: 1px solid var(--filter-border-color); 
        margin-bottom: 20px; 
        display: flex; 
        justify-content: center; 
    }
    .tvp-feed-topbar {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
        align-items: center;
        gap: 10px 12px;
        padding: 10px 15px;
        margin-bottom: 16px;
        background-color: rgba(255, 255, 255, 0.95);
        backdrop-filter: blur(10px);
        position: sticky;
        top: 0;
        z-index: 5;
        border-bottom: 1px solid var(--filter-border-color);
        font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    }
    .tvp-feed-topbar:not(.has-filters) {
        grid-template-columns: 1fr;
        justify-items: end;
        border-bottom: 0;
        background: transparent;
        backdrop-filter: none;
        position: static;
        padding-bottom: 4px;
        margin-bottom: 8px;
    }
    .tvp-feed-topbar:not(.has-filters) .tvp-feed-topbar-start,
    .tvp-feed-topbar:not(.has-filters) .tvp-feed-topbar-center {
        display: none;
    }
    .tvp-feed-topbar-center {
        display: flex;
        justify-content: center;
    }
    .tvp-feed-topbar-end {
        display: flex;
        justify-content: flex-end;
        min-width: 0;
    }
    .tvp-feed-updated {
        color: #687386;
        font-size: 12px;
        font-weight: 500;
        line-height: 1.3;
        white-space: nowrap;
        text-align: right;
    }
    .filter-trigger-btn { display: inline-flex; align-items: center; gap: 8px; background-color: var(--filter-background-light); border: 1px solid var(--filter-border-color); padding: 10px 16px; border-radius: 50px; font-size: 15px; font-weight: 600; color: var(--filter-primary-text); cursor: pointer; transition: background-color 0.2s; }
    .filter-trigger-btn:hover { background-color: #f0f1f3; }
    .filter-count-badge { background-color: var(--filter-brand-color); color: white; font-size: 12px; font-weight: bold; border-radius: 50%; width: 22px; height: 22px; display: inline-flex; justify-content: center; align-items: center; margin-left: 4px; }
    
    #filter-modal-overlay, #streamer-modal-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: var(--filter-overlay-bg); z-index: 1000; display: flex; justify-content: center; align-items: flex-end; opacity: 0; visibility: hidden; transition: opacity 0.3s ease; }
    .hidden { display: none !important; }
    #filter-modal-overlay.active, #streamer-modal-overlay.active { opacity: 1; visibility: visible; }
    
    #filter-modal-content, #streamer-modal-content { background: #fff; width: 100%; max-width: 100%; max-height: 90vh; display: flex; flex-direction: column; border-top-left-radius: 16px; border-top-right-radius: 16px; transform: translateY(100%); transition: transform 0.3s ease-out; box-shadow: 0 -5px 20px rgba(0,0,0,0.1); }
    #filter-modal-overlay.active #filter-modal-content, #streamer-modal-overlay.active #streamer-modal-content { transform: translateY(0); }
    
    .filter-modal-header { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px; border-bottom: 1px solid var(--filter-border-color); flex-shrink: 0; }
    .filter-modal-header h3 { margin: 0; font-size: 18px; color: var(--filter-primary-text); }
    .close-btn { background: none; border: none; cursor: pointer; padding: 4px; color: var(--filter-secondary-text); }
    .filter-modal-body { overflow-y: auto; padding: 20px; }
    .filter-section { padding-bottom: 20px; margin-bottom: 20px; border-bottom: 1px solid #f0f0f0; }
    .filter-section:last-child { border-bottom: none; margin-bottom: 0; }
    .filter-section-title { font-weight: bold; margin-bottom: 12px; font-size: 16px; display: block; }
    .filter-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 10px; }
    .filter-list { display: flex; flex-direction: column; gap: 10px; }
    .filter-grid label, .filter-list label { display: flex; align-items: center; gap: 8px; font-size: 15px; cursor: pointer; padding: 8px; border-radius: 6px; transition: background-color 0.2s; }
    .filter-grid label:hover, .filter-list label:hover { background-color: var(--filter-background-light); }
    input[type="checkbox"] { width: 1.2em; height: 1.2em; accent-color: var(--filter-brand-color); }
    .select-wrapper { position: relative; }
    .sort-control select { width: 100%; padding: 12px 15px; font-size: 16px; border-radius: 8px; border: 1px solid var(--filter-border-color); background-color: #fff; }
    .filter-modal-footer { display: flex; gap: 10px; padding: 16px 20px; border-top: 1px solid var(--filter-border-color); background-color: #fff; flex-shrink: 0; }
    .primary-btn { background-color: var(--filter-brand-color); color: white; }
    .primary-btn:hover { background-color: #219653; }
    .secondary-btn { background-color: var(--filter-background-light); color: var(--filter-primary-text); border: 1px solid var(--filter-border-color); }
    .secondary-btn:hover { background-color: #e9eaec; }
    .filter-modal-footer button { flex-grow: 1; padding: 14px; font-size: 16px; font-weight: bold; border-radius: 8px; border: none; cursor: pointer; transition: background-color 0.2s; }

    @media (min-width: 768px) {
        .tv-pakker-container { padding: 0 25px; }
        .tvp-feed-topbar { padding: 12px 25px; margin-bottom: 20px; }
        .tvp-feed-updated { font-size: 13px; }
        #filter-modal-overlay, #streamer-modal-overlay { align-items: center; }
        #filter-modal-content, #streamer-modal-content { transform: translateY(0) scale(0.9); opacity: 0; transition: transform 0.3s ease, opacity 0.3s ease; border-radius: 12px; max-width: 600px; max-height: 80vh; }
        #filter-modal-overlay.active #filter-modal-content, #streamer-modal-overlay.active #streamer-modal-content { transform: translateY(0) scale(1); opacity: 1; }
    }
    @media (max-width: 520px) {
        .tvp-feed-topbar.has-filters {
            grid-template-columns: 1fr;
            justify-items: stretch;
        }
        .tvp-feed-topbar.has-filters .tvp-feed-topbar-start {
            display: none;
        }
        .tvp-feed-topbar.has-filters .tvp-feed-topbar-center,
        .tvp-feed-topbar.has-filters .tvp-feed-topbar-end {
            justify-content: center;
        }
        .tvp-feed-updated {
            white-space: normal;
            text-align: center;
        }
    }

/* --- Plugin wrapper + ekstra felter fra shortcode --- */
.tv-pakker-wrapper { width: 100%; }
.tv-pakker-wrapper .card { position: relative; }
.tv-pakker-wrapper .topvalg-card {
    border: 2px solid #16a34a;
    box-shadow: 0 8px 24px rgba(22, 163, 74, 0.14);
}
.tv-pakker-wrapper .topvalg-badge {
    position: absolute;
    top: -13px;
    right: 18px;
    background: #16a34a;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    padding: 8px 12px;
    border-radius: 999px;
    z-index: 2;
    box-shadow: 0 4px 12px rgba(22, 163, 74, 0.25);
}
.tv-pakker-wrapper .card-minimum-price {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-top: 7px;
    padding: 5px 9px;
    border-radius: 999px;
    background: #f3f4f6;
    color: #4b5563;
    font-size: 12.5px;
    font-weight: 500;
    line-height: 1.2;
}
.tv-pakker-wrapper .card-minimum-price strong {
    color: #111827;
    font-weight: 700;
}

/* Samme modal-design som før, men med class selectors så flere shortcodes ikke konflikter. */
.filter-modal-overlay, .streamer-modal-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: var(--filter-overlay-bg); z-index: 1000; display: flex; justify-content: center; align-items: flex-end; opacity: 0; visibility: hidden; transition: opacity 0.3s ease; }
.filter-modal-overlay.active, .streamer-modal-overlay.active { opacity: 1; visibility: visible; }
.filter-modal-content, .streamer-modal-content { background: #fff; width: 100%; max-width: 100%; max-height: 90vh; display: flex; flex-direction: column; border-top-left-radius: 16px; border-top-right-radius: 16px; transform: translateY(100%); transition: transform 0.3s ease-out; box-shadow: 0 -5px 20px rgba(0,0,0,0.1); }
.filter-modal-overlay.active .filter-modal-content, .streamer-modal-overlay.active .streamer-modal-content { transform: translateY(0); }
.tv-pakker-wrapper input[type="checkbox"] { width: 1.2em; height: 1.2em; accent-color: var(--filter-brand-color); }
.tv-pakker-wrapper .filter-grid label, .tv-pakker-wrapper .filter-list label { margin: 0; }
.tv-pakker-wrapper button.streamer-pill { cursor: pointer; font-family: inherit; }
.tv-pakker-wrapper .filter-modal-footer button { font-family: inherit; }
.tv-pakker-wrapper .card-streamers-grid:empty::after { content: "Ingen tjenester inkluderet"; font-size: 13px; color: #999; font-style: italic; }
@media (min-width: 768px) {
    .filter-modal-overlay, .streamer-modal-overlay { align-items: center; }
    .filter-modal-content, .streamer-modal-content { transform: translateY(0) scale(0.9); opacity: 0; transition: transform 0.3s ease, opacity 0.3s ease; border-radius: 12px; max-width: 600px; max-height: 80vh; }
    .filter-modal-overlay.active .filter-modal-content, .streamer-modal-overlay.active .streamer-modal-content { transform: translateY(0) scale(1); opacity: 1; }
}

/* --- Kanalvisning og kanalfilter --- */
.tv-pakker-container .card-channels .channel-link {
    appearance: none;
    background: none;
    border: 0;
    padding: 0;
    color: #007bff;
    text-decoration: none;
    font-weight: 500;
    cursor: pointer;
    font: inherit;
}
.tv-pakker-container .card-channels .channel-link:hover { text-decoration: underline; }
.tv-pakker-container .card-channels-list {
    background-color: var(--light-gray);
    border-radius: var(--border-radius);
    padding: 12px;
}
.tv-pakker-container .card-channels-list .channels-title,
.channel-modal-subtitle {
    font-size: 11px;
    font-weight: 600;
    color: #888;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0 0 10px 0;
}
.tv-pakker-container .card-channels-grid,
.card-channels-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.tv-pakker-container .channel-pill,
.channel-pill {
    background-color: #fff;
    border: 1px solid #ddd;
    border-radius: 4px;
    padding: 4px 10px;
    font-size: 13px;
    font-weight: 500;
}
.tv-pakker-container .channel-pill.more-btn {
    background-color: #eef3ff;
    color: #007bff;
    border-color: #ccd9ff;
    cursor: pointer;
    transition: all 0.2s;
    font-family: inherit;
}
.tv-pakker-container .channel-pill.more-btn:hover { background-color: #dfe7ff; }
.filter-grid-large {
    max-height: 240px;
    overflow: auto;
    padding-right: 4px;
}
.channel-modal-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: var(--filter-overlay-bg); z-index: 1000; display: flex; justify-content: center; align-items: flex-end; opacity: 0; visibility: hidden; transition: opacity 0.3s ease; }
.channel-modal-overlay.active { opacity: 1; visibility: visible; }
.channel-modal-content { background: #fff; width: 100%; max-width: 100%; max-height: 90vh; display: flex; flex-direction: column; border-top-left-radius: 16px; border-top-right-radius: 16px; transform: translateY(100%); transition: transform 0.3s ease-out; box-shadow: 0 -5px 20px rgba(0,0,0,0.1); }
.channel-modal-overlay.active .channel-modal-content { transform: translateY(0); }
.channel-modal-content .card-channels-grid { padding-top: 2px; }
@media (min-width: 768px) {
    .channel-modal-overlay { align-items: center; }
    .channel-modal-content { transform: translateY(0) scale(0.9); opacity: 0; transition: transform 0.3s ease, opacity 0.3s ease; border-radius: 12px; max-width: 600px; max-height: 80vh; }
    .channel-modal-overlay.active .channel-modal-content { transform: translateY(0) scale(1); opacity: 1; }
}

/* --- Tabel shortcodes --- */
.tvp-channel-table-block{
  margin:24px 0;
}
.tvp-channel-table-block .tvp-table-wrap{
  margin:0;
}
.tvp-channel-table-updated{
  margin:0 0 8px;
  color:#687386;
  font-size:12px;
  font-weight:500;
  line-height:1.3;
  text-align:right;
}
.tvp-table-wrap{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  margin:24px 0;
  background:#fff;
  border:1px solid #e8edf3;
  border-radius:14px;
  box-shadow:0 4px 14px rgba(0,20,60,.06);
  overflow:hidden;
}
.tvp-table-scroll{
  width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.tvp-sortable-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  color:#1a1f36;
  font-size:13.5px;
  line-height:1.35;
  table-layout:fixed;
}
.tvp-sortable-table thead th{
  background:#f7f8fa;
  border-bottom:1px solid #e8edf3;
  padding:0;
  text-align:left;
  white-space:nowrap;
}
.tvp-sortable-table th button,
.tvp-sortable-table .tvp-table-head-label{
  width:100%;
  box-sizing:border-box;
  border:0;
  background:transparent;
  color:#1a1f36;
  font:inherit;
  font-weight:700;
  text-align:left;
  padding:12px 10px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:6px;
}
.tvp-sortable-table th button{cursor:pointer;}
.tvp-sortable-table th button:hover{background:#eef3f8;}
.tvp-sortable-table th button::after{
  content:'';
  color:#1562B6;
  font-size:12px;
  flex:0 0 auto;
}
.tvp-sortable-table th[aria-sort="ascending"] button::after{content:'↑';}
.tvp-sortable-table th[aria-sort="descending"] button::after{content:'↓';}
.tvp-sortable-table td{
  padding:12px 10px;
  border-bottom:1px solid #edf2f7;
  vertical-align:middle;
  overflow-wrap:anywhere;
  background:#fff;
}
.tvp-sortable-table tbody tr:nth-child(even) td{background:#fbfdff;}
.tvp-sortable-table tbody tr:hover td{background:#f7fafc;}
.tvp-sortable-table tbody tr:last-child td{border-bottom:0;}
.tvp-table-provider,
.tvp-table-package-title,
.tvp-table-channel-name{
  font-weight:700;
  color:#1a1f36;
}
.tvp-table-subline{
  display:block;
  margin-top:3px;
  color:#687386;
  font-size:12px;
  font-weight:500;
}
.tvp-table-price{
  font-weight:800;
  color:#1a1f36;
  white-space:nowrap;
}
.tvp-table-muted{color:#687386;}
.tvp-table-bool{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:30px;
  min-height:24px;
  border-radius:999px;
  background:#edf2f7;
  color:#5b6472;
  font-weight:700;
}
.tvp-table-bool.is-yes{
  background:#e9f8ef;
  color:#1f8a4c;
}
.tvp-table-pills,
.tvp-table-package-list{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.tvp-table-pill,
.tvp-table-package-pill{
  display:inline-flex;
  align-items:center;
  gap:6px;
  border:1px solid #e8edf3;
  background:#f7f8fa;
  border-radius:999px;
  padding:5px 8px;
  color:#1a1f36;
  font-size:12px;
  font-weight:650;
}
.tvp-table-package-pill{
  border-radius:10px;
  align-items:flex-start;
  flex-direction:column;
  gap:2px;
  line-height:1.25;
}
.tvp-table-package-pill em{
  color:#687386;
  font-size:11px;
  font-style:normal;
  font-weight:700;
}
.tvp-table-pill-muted{
  color:#687386;
  background:#fff;
}
.tvp-table-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  max-width:92px;
  box-sizing:border-box;
  padding:9px 12px;
  border-radius:8px;
  background:#27ae60;
  color:#fff !important;
  text-decoration:none;
  font-weight:800;
  font-size:13px;
  line-height:1.15;
  white-space:nowrap;
}
.tvp-table-cta:hover{filter:brightness(.95);}
.tvp-table-empty{
  padding:18px;
  color:#687386;
}
.tvp-sortable-table .tvp-table-col-provider{width:12%;}
.tvp-sortable-table .tvp-table-col-product{width:15%;}
.tvp-sortable-table .tvp-table-col-minimum-price{width:13%;}
.tvp-sortable-table .tvp-table-col-price{width:10%;}
.tvp-sortable-table .tvp-table-col-channels{width:12%;}
.tvp-sortable-table .tvp-table-col-streamers{width:14%;}
.tvp-sortable-table .tvp-table-col-binding{width:10%;}
.tvp-sortable-table .tvp-table-col-sport,
.tvp-sortable-table .tvp-table-col-kids{width:8%;}
.tvp-sortable-table .tvp-table-col-channel{width:16%;}
.tvp-sortable-table .tvp-table-col-providers{width:18%;}
.tvp-sortable-table .tvp-table-col-packages{width:38%;}
.tvp-sortable-table .tvp-table-col-cheapest{width:16%;}
.tvp-sortable-table .tvp-table-col-cta{width:104px;min-width:104px;max-width:104px;}
.tvp-sortable-table th.tvp-table-col-cta,
.tvp-sortable-table td.tvp-table-col-cta{
  position:sticky;
  right:0;
  z-index:2;
  box-shadow:-8px 0 14px rgba(15,23,42,.06);
}
.tvp-sortable-table th.tvp-table-col-cta{z-index:3;background:#f7f8fa;}
@media (max-width:900px){
  .tvp-sortable-table{font-size:13px;min-width:860px;table-layout:auto;}
  .tvp-channels-table-shortcode{min-width:980px;}
  .tvp-sortable-table th button,
  .tvp-sortable-table .tvp-table-head-label,
  .tvp-sortable-table td{padding:12px 10px;}
}
@media (max-width:640px){
  .tvp-channel-table-block{margin:18px 0;}
  .tvp-channel-table-block .tvp-table-wrap{margin:0;}
  .tvp-table-wrap{border-radius:12px;margin:18px 0;}
  .tvp-sortable-table{min-width:820px;}
  .tvp-channels-table-shortcode{min-width:980px;}
}

/* --- Detaljeret kanaltabel for én valgt kanal --- */
.tvp-channel-packages-table-shortcode{
  min-width:1160px;
}
.tvp-channel-packages-table-shortcode .tvp-table-col-channel{width:13%;}
.tvp-channel-packages-table-shortcode .tvp-table-col-provider{width:11%;}
.tvp-channel-packages-table-shortcode .tvp-table-col-package,
.tvp-channel-packages-table-shortcode .tvp-table-col-packages{width:16%;}
.tvp-channel-packages-table-shortcode .tvp-table-col-availability,
.tvp-channel-packages-table-shortcode .tvp-table-col-status{width:11%;}
.tvp-channel-packages-table-shortcode .tvp-table-col-price{width:9%;}
.tvp-channel-packages-table-shortcode .tvp-table-col-minimum-price{width:12%;}
.tvp-channel-packages-table-shortcode .tvp-table-col-binding{width:10%;}
.tvp-channel-packages-table-shortcode .tvp-table-col-channels{width:9%;}
.tvp-channel-packages-table-shortcode .tvp-table-col-streaming,
.tvp-channel-packages-table-shortcode .tvp-table-col-streamers{width:12%;}
.tvp-channel-packages-table-shortcode .tvp-table-col-points,
.tvp-channel-packages-table-shortcode .tvp-table-col-point-cost{width:9%;}
.tvp-table-status,
.tvp-table-point-cost{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  padding:5px 9px;
  background:#f7f8fa;
  border:1px solid #e8edf3;
  color:#1a1f36;
  font-size:12px;
  font-weight:800;
  white-space:nowrap;
}
.tvp-table-status-fixed{
  background:#e9f8ef;
  border-color:#bfe8cf;
  color:#1f8a4c;
}
.tvp-table-status-selectable{
  background:#eef3ff;
  border-color:#ccd9ff;
  color:#1562B6;
}
.tvp-table-status-points{
  background:#fff7ed;
  border-color:#fed7aa;
  color:#b45309;
}
.tvp-table-point-cost{
  background:#fff;
}
@media (max-width:900px){
  .tvp-channel-packages-table-shortcode{min-width:1160px;}
}

/* --- Metode-accordion (lukket som standard, Google-læsbar via <details>) --- */
.tvp-methodology{
  --tvp-acc-green:#27ae60;
  --tvp-acc-bg:#f7f8fa;
  --tvp-acc-border:#e0e0e0;
  --tvp-acc-text:#555;
  --tvp-acc-dark:#333;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  margin:28px 15px 10px;
  color:var(--tvp-acc-text);
  font-size:15px;
  line-height:1.55;
}
.tvp-methodology .tvp-acc{
  background:#fff;
  border:1px solid var(--tvp-acc-border);
  border-radius:8px;
  box-shadow:0 4px 12px rgba(0,0,0,.08);
  overflow:hidden;
}
.tvp-methodology .tvp-acc > summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 16px;
  font-weight:700;
  font-size:15px;
  color:var(--tvp-acc-dark);
  background:var(--tvp-acc-bg);
  user-select:none;
}
.tvp-methodology .tvp-acc > summary::-webkit-details-marker{display:none;}
.tvp-methodology .tvp-acc > summary::after{
  content:'';
  flex:0 0 auto;
  width:0;
  height:0;
  border-left:5px solid transparent;
  border-right:5px solid transparent;
  border-top:6px solid #687386;
  transition:transform .2s ease;
}
.tvp-methodology .tvp-acc[open] > summary::after{transform:rotate(180deg);}
.tvp-methodology .tvp-acc > summary:hover{background:#f0f1f3;}
.tvp-methodology .tvp-acc > summary:focus-visible{
  outline:2px solid var(--tvp-acc-green);
  outline-offset:-2px;
}
.tvp-methodology .tvp-acc-panel{
  padding:4px 16px 18px;
  border-top:1px solid var(--tvp-acc-border);
}
.tvp-methodology .tvp-acc-panel > p,
.tvp-methodology .tvp-acc-panel > ul{
  margin:14px 0 0;
}
.tvp-methodology .tvp-acc-label{
  margin:18px 0 0;
  font-size:13px;
  font-weight:700;
  color:var(--tvp-acc-dark);
  letter-spacing:.01em;
}
.tvp-methodology .tvp-acc-panel ul{
  padding:0;
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.tvp-methodology .tvp-acc-panel li{
  position:relative;
  padding:8px 10px 8px 28px;
  background:var(--tvp-acc-bg);
  border-radius:6px;
}
.tvp-methodology .tvp-acc-panel li::before{
  content:'✓';
  position:absolute;
  left:10px;
  top:8px;
  color:var(--tvp-acc-green);
  font-weight:700;
}
.tvp-methodology .tvp-acc-note{
  margin:14px 0 0;
  padding:12px 14px;
  background:var(--tvp-acc-bg);
  border-left:3px solid var(--tvp-acc-green);
  border-radius:0 6px 6px 0;
}
@media (min-width:768px){
  .tvp-methodology{margin:32px 25px 12px;font-size:15.5px;}
  .tvp-methodology .tvp-acc > summary{padding:16px 20px;font-size:16px;}
  .tvp-methodology .tvp-acc-panel{padding:6px 20px 22px;}
}

/* --- Sticky footer banner --- */
.tvp-sticky-banner{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:999;
  padding:0 12px calc(10px + env(safe-area-inset-bottom, 0px));
  pointer-events:none;
  opacity:0;
  transform:translateY(110%);
  transition:transform .22s ease, opacity .22s ease;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
.tvp-sticky-banner.is-visible{
  pointer-events:auto;
  opacity:1;
  transform:translateY(0);
}
.tvp-sticky-banner__inner{
  position:relative;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:10px 12px;
  max-width:920px;
  margin:0 auto;
  padding:12px 42px 12px 12px;
  background:#fff;
  border:1px solid #e0e0e0;
  border-radius:14px 14px 0 0;
  box-shadow:0 -8px 28px rgba(0,0,0,.14);
}
.tvp-sticky-banner__close{
  position:absolute;
  top:8px;
  right:8px;
  z-index:2;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  margin:0;
  padding:0;
  border:1px solid #d7dbe0;
  border-radius:999px;
  background:#f3f4f6;
  color:#374151;
  line-height:1;
  cursor:pointer;
  box-shadow:0 1px 2px rgba(0,0,0,.06);
  transition:background-color .15s ease, border-color .15s ease, color .15s ease;
}
.tvp-sticky-banner__close svg{
  display:block;
  width:14px;
  height:14px;
  pointer-events:none;
}
.tvp-sticky-banner__close:hover,
.tvp-sticky-banner__close:focus-visible{
  background:#e5e7eb;
  border-color:#c4c9d0;
  color:#111827;
  outline:none;
}
.tvp-sticky-banner__logo{
  width:44px;
  height:44px;
  object-fit:contain;
  border:1px solid #eee;
  border-radius:8px;
  padding:4px;
  background:#fff;
  flex-shrink:0;
}
.tvp-sticky-banner__copy{min-width:0;}
.tvp-sticky-banner__title{
  font-size:14px;
  font-weight:700;
  color:#333;
  line-height:1.25;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.tvp-sticky-banner__price{
  margin-top:2px;
  font-size:12.5px;
  color:#555;
  line-height:1.3;
}
.tvp-sticky-banner__price strong{
  color:#111;
  font-size:15px;
  font-weight:800;
  margin-right:4px;
}
.tvp-sticky-banner__cta-wrap{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:4px;
  min-width:0;
}
.tvp-sticky-banner__cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:11px 14px;
  border-radius:8px;
  background:#27ae60;
  color:#fff !important;
  text-decoration:none !important;
  font-weight:800;
  font-size:13.5px;
  line-height:1.15;
  white-space:nowrap;
  text-align:center;
}
.tvp-sticky-banner__cta:hover{background:#219653;}
.tvp-sticky-banner__ad{
  font-size:10.5px;
  color:#999;
  text-align:center;
  font-weight:400;
  letter-spacing:.02em;
}
html.tvp-sticky-banner-open{
  scroll-padding-bottom:96px;
}
@media (max-width:640px){
  .tvp-sticky-banner{padding-left:8px;padding-right:8px;}
  .tvp-sticky-banner__inner{
    grid-template-columns:auto minmax(0,1fr);
    grid-template-areas:
      "logo copy"
      "cta cta";
    gap:8px 10px;
    padding:12px 40px 12px 10px;
    border-radius:12px 12px 0 0;
  }
  .tvp-sticky-banner__logo{grid-area:logo;width:40px;height:40px;}
  .tvp-sticky-banner__copy{grid-area:copy;}
  .tvp-sticky-banner__cta-wrap{grid-area:cta;}
  .tvp-sticky-banner__title{font-size:13.5px;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
  .tvp-sticky-banner__cta{width:100%;padding:12px 12px;font-size:14px;}
}
@media (min-width:768px){
  .tvp-sticky-banner{padding-left:20px;padding-right:20px;}
  .tvp-sticky-banner__inner{padding:14px 46px 14px 16px;gap:14px 16px;}
  .tvp-sticky-banner__logo{width:52px;height:52px;}
  .tvp-sticky-banner__title{font-size:16px;}
  .tvp-sticky-banner__price{font-size:13px;}
  .tvp-sticky-banner__price strong{font-size:17px;}
  .tvp-sticky-banner__cta{min-width:180px;padding:12px 18px;font-size:14.5px;}
}
