/* Advertenties gebruiken dezelfde compacte kaarttaal. Home en de eerste
   nieuwspagina mengen één advertentie tussen de vijf nieuwste artikelen. */
.public-ad { box-sizing:border-box; min-width:0; overflow:hidden; border:1px solid var(--color-border); border-radius:10px; background:var(--color-surface); box-shadow:none; }
.public-ad-action { display:block; height:100%; color:inherit; text-decoration:none; }
.public-ad-action:focus-visible { outline:3px solid rgba(39,115,83,.38); outline-offset:-3px; }
.public-ad-media { position:relative; overflow:hidden; background:linear-gradient(135deg,#dceee3,#eff6f1); }
.public-ad-media img { display:block; width:100%; height:100%; aspect-ratio:1.88 / 1; object-fit:cover; }
.public-ad-content { display:grid; align-content:start; gap:8px; min-width:0; padding:14px 16px 15px; }
.public-ad-label { display:inline-flex; width:fit-content; min-height:24px; align-items:center; margin:0; padding:4px 9px; border:1px solid #cde0d3; border-radius:999px; background:#eaf5ee; color:#176b4b; font-size:.68rem; font-weight:800; line-height:1; letter-spacing:.02em; text-transform:uppercase; }
.public-ad h2 { display:-webkit-box; margin:0; overflow:hidden; color:var(--color-text); font-family:var(--font-body); font-size:.95rem; line-height:1.35; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
.public-ad-copy { display:-webkit-box; margin:0!important; overflow:hidden; color:var(--color-text-muted)!important; font-size:.82rem; line-height:1.5; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.public-ad:hover { box-shadow:var(--shadow-sm); transform:translateY(-1px); }
.public-ad.is-image-only .public-ad-media { min-height:0; }
.public-ad.is-image-only .public-ad-media img { object-fit:contain; background:#f5f8f5; }
.public-ad.is-image-only .public-ad-label { position:absolute; top:10px; left:10px; background:rgba(255,255,255,.94); box-shadow:0 1px 3px rgba(20,42,31,.12); }
.home-cards > .public-ad, .news-grid > .public-ad, .event-grid > .public-ad, .listing-grid > .public-ad, .directory-grid > .public-ad { width:100%; margin:0; }
@media (max-width:620px) { .public-ad-media img { aspect-ratio:1.55 / 1; } }
/* De beeldhoogte volgt de nieuwskaarten, ook bij een staande advertentieafbeelding. */
.home-cards > .public-ad .public-ad-media, .news-grid > .public-ad .public-ad-media { aspect-ratio:1.88 / 1; }
.home-cards > .public-ad .public-ad-media img, .news-grid > .public-ad .public-ad-media img { width:100%; height:100%; aspect-ratio:auto; }
/* Eén vaste kaart, ook wanneer beeld- en tekstcampagnes elkaar afwisselen. */
.public-ad-rotating { position:relative; }
.public-ad-rotating .public-ad-stage { position:relative; padding-top:calc(53.19149% + 174px); }
.public-ad-rotating .public-ad-stage > .public-ad-action { position:absolute; inset:0; display:flex; flex-direction:column; }
.public-ad-rotating .public-ad-media { flex:none; width:100%; aspect-ratio:1.88 / 1; }
.public-ad-rotating .public-ad-media img { width:100%; height:100%; aspect-ratio:auto; }
.public-ad-rotating .public-ad-content { box-sizing:border-box; height:174px; flex:none; overflow:hidden; }
.public-ad-rotating.is-image-only .public-ad-media { height:100%; aspect-ratio:auto; }
.public-ad-fallback { display:grid; place-items:center; color:var(--color-primary); font:700 1.2rem var(--font-display); }
.public-ad-unavailable { position:absolute; inset:0; display:grid; place-items:center; padding:32px; margin:0; color:var(--color-text-muted); text-align:center; }

/* Mijn advertenties: dezelfde rustige overzichtsstijl als Marktplaats en evenementen. */
.advertising-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.advertising-actions button { min-height:44px; padding:9px 13px; border:1px solid var(--color-border); border-radius:8px; background:#fff; color:var(--color-primary); font:700 .82rem var(--font-body); cursor:pointer; }
.advertising-actions button[type="submit"] { background:var(--color-primary); color:#fff; }
.advertising-actions button.advertising-remove { color:#a13d36; background:#fff3f1; border-color:#efcbc6; }
.advertising-actions button:disabled { opacity:.55; cursor:wait; }
.advertising-dialog { box-sizing:border-box; width:min(560px,calc(100% - 32px)); max-height:calc(100dvh - 32px); padding:24px; overflow:auto; border:1px solid var(--color-border); border-radius:16px; background:#fff; color:var(--color-text); box-shadow:var(--shadow-lg); }
.advertising-dialog::backdrop { background:rgba(18,41,31,.5); }
.advertising-dialog form { display:grid; gap:14px; }
.advertising-dialog h2 { margin:0; }
.advertising-dialog p { margin:0; font-size:.88rem; line-height:1.6; }
.advertising-dialog label { display:grid; gap:6px; font-size:.88rem; }
.advertising-dialog input, .advertising-dialog textarea { box-sizing:border-box; width:100%; min-width:0; }
.advertising-dialog textarea { min-height:100px; resize:vertical; }
.advertising-dialog .advertising-checkbox { display:flex; align-items:center; gap:8px; }
.advertising-dialog .advertising-checkbox input { width:18px; height:18px; min-height:18px; margin:0; accent-color:var(--color-primary); }
.advertising-campaign-agreement { margin:14px 0 0; padding-top:12px; border-top:1px solid #edf1ee; color:#698277; font-size:.72rem; line-height:1.45; }
body.advertising-page { background: var(--color-bg); }
.advertising-dashboard { width: min(100%, 1160px); margin: 0 auto; }
.advertising-back-link { display: inline-flex; min-height: 44px; align-items: center; margin-bottom: var(--space-4); color: var(--color-primary); font-size: .9rem; font-weight: 750; text-decoration: none; }
.advertising-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--space-5); padding: clamp(20px, 4vw, 38px); border: 1px solid var(--color-border); border-radius: var(--radius-xl); background: linear-gradient(125deg, #eef7f1 0%, #fff 72%); box-shadow: var(--shadow-sm); }
.advertising-heading h1 { margin: 0; letter-spacing: -.025em; }
.advertising-heading p:not(.eyebrow) { margin: var(--space-2) 0 0; color: var(--color-text-muted); }
.advertising-message { min-height: 1.5em; margin: var(--space-4) 0 0; color: var(--color-danger); font-weight: 650; }
.advertising-overview { margin-top: var(--space-4); padding: clamp(20px, 3vw, 28px); border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-surface); box-shadow: var(--shadow-sm); }
.advertising-overview-heading { padding-bottom: var(--space-5); border-bottom: 1px solid #e7ece8; }
.advertising-overview-heading h2 { margin: 0; font-family: var(--font-body); font-size: 1.16rem; }
.advertising-overview-heading p { margin: 4px 0 0; color: var(--color-text-muted); font-size: .9rem; }
.advertising-campaign-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,360px)); justify-content:start; gap:20px; margin-top:var(--space-5); }
.advertising-campaign-card { display:flex; min-width:0; overflow:hidden; flex-direction:column; border:1px solid var(--color-border); border-radius:14px; background:#fff; box-shadow:0 3px 12px rgba(20,42,31,.06); transition:box-shadow .18s ease,transform .18s ease; }
.advertising-campaign-card:hover { box-shadow:0 8px 22px rgba(20,42,31,.1); transform:translateY(-1px); }
.advertising-campaign-media { display:grid; width:100%; overflow:hidden; aspect-ratio:16 / 9; place-items:center; background:linear-gradient(135deg,#dceee3,#eff6f1); border-bottom:1px solid var(--color-border); }
.advertising-campaign-media img { display:block; width:100%; height:100%; object-fit:cover; }
.advertising-campaign-fallback { display: grid; width: 54px; height: 54px; place-items: center; border: 1px solid #bdd7c7; border-radius: 16px; background: rgba(255, 255, 255, .68); color: var(--color-primary); font-size: .7rem; font-weight: 850; text-align: center; }
.advertising-campaign-content { display:flex; min-width:0; height:100%; flex-direction:column; padding:18px; }
.advertising-campaign-meta { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.advertising-status, .advertising-placement { display: inline-flex; min-height: 25px; align-items: center; padding: 4px 9px; border-radius: 999px; font-size: .72rem; font-weight: 800; line-height: 1.1; }
.advertising-status { border: 1px solid #cde0d3; background: #edf7f0; color: #176b4b; }
.advertising-status-rejected, .advertising-status-paused { border-color: #efcbc6; background: #fff3f1; color: #a13d36; }
.advertising-status-pending, .advertising-status-draft { border-color: #eadcab; background: #fffaf0; color: #806114; }
.advertising-placement { background: var(--color-surface-muted); color: #557166; }
.advertising-campaign-title { display:-webkit-box; margin:var(--space-3) 0 0; overflow:hidden; font-family:var(--font-body); font-size:1rem; line-height:1.35; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.advertising-campaign-copy { display: -webkit-box; margin: 7px 0 0; overflow: hidden; color: var(--color-text-muted); font-size: .84rem; line-height: 1.5; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.advertising-campaign-details { display:grid; gap:8px; margin:var(--space-4) 0 0; padding-top:var(--space-3); border-top:1px solid #edf1ee; }
.advertising-campaign-detail { display:grid; grid-template-columns:62px minmax(0,1fr); gap:var(--space-2); font-size:.78rem; line-height:1.45; }
.advertising-campaign-detail dt { color: #698277; font-weight: 750; }
.advertising-campaign-detail dd { min-width: 0; margin: 0; color: #314b3e; }
.advertising-empty-state { grid-column: 1 / -1; display: grid; min-height: 180px; place-items: center; margin: 0; padding: var(--space-8); color: var(--color-text-muted); border: 1px dashed #b9cbc0; border-radius: var(--radius-md); background: var(--color-surface-muted); text-align: center; }
.advertising-campaign-content > .advertising-actions { margin-top:auto; padding-top:16px; }
.advertising-campaign-content > .advertising-actions button { flex:1 1 110px; }
@media (min-width: 901px) { body.has-app-shell .advertising-dashboard.app-main { width: auto; max-width: none; margin-left: var(--sidebar-width); padding: calc(var(--topbar-height) + var(--space-8)) clamp(var(--space-4), 4vw, 64px) 80px; } body.has-app-shell .advertising-dashboard.app-main > * { width: min(100%, 1160px); margin-right: auto; margin-left: auto; } }
@media (max-width: 900px) { .advertising-heading { align-items: flex-start; flex-direction: column; } body.has-app-shell .advertising-dashboard.app-main { padding-top: calc(var(--topbar-height) + var(--space-5)); } }
@media (max-width:680px) { .advertising-dashboard { width:100%; } .advertising-heading,.advertising-overview { border-radius:var(--radius-md); } .advertising-heading .button { width:100%; } .advertising-campaign-grid { grid-template-columns:1fr; } }
@media (max-width:420px) { .advertising-overview { padding:16px; } .advertising-campaign-content { padding:16px; } .advertising-campaign-content > .advertising-actions { display:grid; grid-template-columns:1fr 1fr; } }
