/* Radioguide.fm ad planner (/adverteren/planner). Uses the design 2 tokens when present, with fallbacks for the other designs. */
.adp {
    --adp-bg: var(--bg, #F7F8FA);
    --adp-card: var(--card, #FFFFFF);
    --adp-ink: var(--ink, #151A2D);
    --adp-text: var(--text, #3B4256);
    --adp-muted: var(--muted, #5B6378);
    --adp-line: var(--line, #E7E9EF);
    --adp-line2: var(--line2, #E1E4EB);
    --adp-soft: var(--soft, #F1F3F6);
    --adp-accent: var(--accent, #B43E0A);
    --adp-accent-d: var(--accent-d, #8A2F07);
    --adp-peach: var(--peach, #FFF1E6);
    --adp-green: var(--green, #0B6B3A);
    --adp-green-bg: var(--green-bg, #E7F6EE);
    --adp-red: var(--red, #B42318);
    --adp-red-bg: var(--red-bg, #FEF0EE);
    --adp-r: var(--r, 16px);
    --adp-r-lg: var(--r-lg, 24px);
    color: var(--adp-ink);
    font-family: var(--font, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif);
}
.adp *, .adp *::before, .adp *::after { box-sizing: border-box; }
.adp-wrap { max-width: 1200px; margin: 0 auto; padding: 0 16px 40px; }
@media (min-width: 761px) { .adp-wrap { padding: 0 24px 48px; } }
.adp-head { padding: 8px 0 20px; }
.adp-head h1 { margin: 4px 0 10px; font-size: 32px; line-height: 1.1; font-weight: 800; letter-spacing: -.02em; }
@media (min-width: 761px) { .adp-head h1 { font-size: 42px; } }
.adp-head p { max-width: 720px; color: var(--adp-text); font-size: 17px; margin: 0 0 8px; }
.adp-eyebrow { margin: 0; color: var(--adp-accent); font-weight: 600; font-size: 15px; }

.adp-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; align-items: start; }
@media (min-width: 980px) { .adp-grid { grid-template-columns: minmax(0, 1fr) 380px; gap: 28px; } }
.adp-steps { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.adp-card { background: var(--adp-card); border: 1px solid var(--adp-line); border-radius: var(--adp-r-lg); padding: 20px; min-width: 0; }
@media (min-width: 761px) { .adp-card { padding: 24px; } }
.adp-card > h2 { display: flex; align-items: center; gap: 10px; font-size: 19px; margin: 0 0 4px; }
.adp-card > h2 .adp-n { flex: none; display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--adp-ink); color: #fff; font-size: 14px; }
.adp-card > .adp-hint { color: var(--adp-muted); font-size: 14px; margin: 0 0 14px; }
.adp-field { margin: 14px 0 0; }
.adp-field > label, .adp-label { display: block; font-weight: 600; font-size: 14px; margin: 0 0 6px; color: var(--adp-ink); }
.adp-field .adp-sub { font-weight: 400; color: var(--adp-muted); }

/* placements */
.adp-places { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
@media (min-width: 600px) { .adp-places { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.adp-place { position: relative; display: block; border: 1.5px solid var(--adp-line2); border-radius: var(--adp-r); padding: 14px 14px 12px; cursor: pointer; background: var(--adp-card); transition: border-color .15s, background .15s; }
.adp-place:hover { border-color: #C9CEDB; }
.adp-place input { position: absolute; opacity: 0; pointer-events: none; }
.adp-place b { display: block; font-size: 15px; line-height: 1.3; padding-right: 64px; }
.adp-place small { display: block; color: var(--adp-muted); font-size: 13px; line-height: 1.4; margin-top: 4px; }
.adp-place b + small { padding-right: 58px; }
.adp-place .adp-from { position: absolute; top: 13px; right: 14px; font-size: 12px; color: var(--adp-muted); text-align: right; line-height: 1.2; }
.adp-place .adp-from strong { display: block; font-size: 14px; color: var(--adp-ink); }
.adp-place.is-on, .adp-place:has(input:checked) { border-color: var(--adp-accent); background: var(--adp-peach); }
.adp-place:has(input:focus-visible) { outline: 3px solid rgba(238, 111, 0, .45); outline-offset: 2px; }

/* chips and toggles */
.adp-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.adp-chip { display: inline-flex; align-items: center; gap: 6px; min-height: 38px; padding: 7px 13px; border-radius: 999px; border: 1px solid var(--adp-line2); background: var(--adp-card);
    font-size: 14px; font-weight: 500; color: var(--adp-text); cursor: pointer; line-height: 1.2; user-select: none; }
.adp-chip:hover { border-color: #C9CEDB; }
.adp-chip input { position: absolute; opacity: 0; pointer-events: none; }
.adp-chip.is-on, .adp-chip:has(input:checked) { background: var(--adp-ink); border-color: var(--adp-ink); color: #fff; }
.adp-chip:has(input:focus-visible) { outline: 3px solid rgba(238, 111, 0, .45); outline-offset: 2px; }
.adp-aud { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
@media (min-width: 600px) { .adp-aud { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.adp-aud label { position: relative; display: block; border: 1.5px solid var(--adp-line2); border-radius: 14px; padding: 11px 12px 10px 40px; cursor: pointer; background: var(--adp-card); }
.adp-aud input { position: absolute; left: 13px; top: 13px; width: 18px; height: 18px; accent-color: var(--adp-accent); }
.adp-aud b { display: block; font-size: 14px; }
.adp-aud small { display: block; color: var(--adp-muted); font-size: 12.5px; line-height: 1.35; margin-top: 2px; }
.adp-aud .adp-season { display: inline-block; margin-top: 5px; font-size: 11.5px; font-weight: 600; color: var(--adp-accent); }
.adp-aud label:has(input:checked) { border-color: var(--adp-accent); background: var(--adp-peach); }

/* token picker */
.adp-picker { position: relative; }
.adp-picker input[type=search], .adp-input, .adp select, .adp textarea {
    width: 100%; min-height: 44px; padding: 10px 14px; border-radius: 12px; border: 1px solid var(--adp-line2); background: var(--adp-card); font: inherit; font-size: 15px; color: var(--adp-ink); }
.adp textarea { min-height: 90px; resize: vertical; }
.adp-picker input[type=search]:focus, .adp-input:focus, .adp select:focus, .adp textarea:focus { outline: none; border-color: var(--adp-accent); box-shadow: 0 0 0 3px rgba(238, 111, 0, .18); }
.adp-menu { position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% + 4px); max-height: 260px; overflow: auto; background: var(--adp-card); border: 1px solid var(--adp-line2);
    border-radius: 12px; box-shadow: 0 20px 48px rgba(21, 26, 45, .12); padding: 4px; display: none; }
.adp-menu.is-open { display: block; }
.adp-menu button { display: flex; width: 100%; justify-content: space-between; gap: 8px; border: 0; background: none; padding: 10px 12px; border-radius: 8px; font: inherit; font-size: 14px; color: var(--adp-ink); text-align: left; cursor: pointer; }
.adp-menu button:hover, .adp-menu button.is-active { background: var(--adp-soft); }
.adp-menu button small { color: var(--adp-muted); }
.adp-menu .adp-empty { padding: 10px 12px; color: var(--adp-muted); font-size: 14px; }
.adp-tokens { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.adp-tokens:empty { display: none; }
.adp-token { display: inline-flex; align-items: center; gap: 4px; padding: 5px 6px 5px 11px; border-radius: 999px; background: var(--adp-soft); font-size: 13.5px; color: var(--adp-ink); }
.adp-token button { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; border: 0; background: transparent; color: var(--adp-muted); cursor: pointer; font-size: 16px; line-height: 1; }
.adp-token button:hover { background: #E1E4EB; color: var(--adp-ink); }

.adp-row { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
@media (min-width: 600px) { .adp-row--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .adp-row--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.adp-more { margin-top: 14px; border-top: 1px dashed var(--adp-line2); padding-top: 12px; }
.adp-more summary { cursor: pointer; font-weight: 600; font-size: 14px; color: var(--adp-accent); list-style: none; }
.adp-more summary::-webkit-details-marker { display: none; }
.adp-more summary::after { content: ' +'; }
.adp-more[open] summary::after { content: ' −'; }
.adp-seg { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 4px; border-radius: 999px; background: var(--adp-soft); }
.adp-seg label { position: relative; padding: 8px 14px; border-radius: 999px; font-size: 14px; font-weight: 600; cursor: pointer; color: var(--adp-text); }
.adp-seg input { position: absolute; opacity: 0; pointer-events: none; }
.adp-seg label:has(input:checked) { background: var(--adp-card); color: var(--adp-ink); box-shadow: 0 1px 3px rgba(21, 26, 45, .12); }
.adp-money { position: relative; }
.adp-money span { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--adp-muted); }
.adp-money .adp-input { padding-left: 30px; }

/* results */
.adp-result { position: sticky; top: 16px; display: flex; flex-direction: column; gap: 14px; }
.adp-sum { background: var(--adp-ink); color: #fff; border-radius: var(--adp-r-lg); padding: 22px; }
.adp-sum h2 { color: #fff !important; font-size: 15px; font-weight: 600; margin: 0 0 14px; opacity: .85; }
.adp-big { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 12px; }
.adp-big div { min-width: 0; }
.adp .adp-sum .adp-big dt { font-size: 12.5px; font-weight: 500; color: #C9CEDB; margin: 0 0 2px; }
.adp .adp-sum .adp-big dd { color: #fff; margin: 0; font-size: 22px; font-weight: 800; letter-spacing: -.01em; line-height: 1.15; overflow-wrap: anywhere; }
.adp-big .adp-total { grid-column: 1 / -1; padding-top: 12px; border-top: 1px solid rgba(255, 255, 255, .14); }
.adp .adp-sum .adp-big .adp-total dd { font-size: 32px; }
.adp-badge[hidden] { display: none; }
.adp-badge { display: inline-block; margin-left: 6px; padding: 2px 8px; border-radius: 999px; background: #2E7D4F; color: #fff; font-size: 12px; font-weight: 700; vertical-align: middle; }
.adp-sum .adp-cta { margin-top: 18px; display: flex; width: 100%; justify-content: center; min-height: 48px; border-radius: 999px; border: 0; background: var(--orange, #EE6F00); color: #fff !important;
    font: inherit; font-weight: 700; font-size: 16px; cursor: pointer; align-items: center; text-decoration: none; }
.adp-sum .adp-cta:hover { background: #D46200; }
.adp-sum .adp-fine { margin: 10px 0 0; font-size: 12.5px; color: #C9CEDB; }
.adp-loading .adp-big dd { opacity: .45; transition: opacity .2s; }
.adp-notes { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 8px; }
.adp-notes li { font-size: 13.5px; line-height: 1.45; padding: 10px 12px; border-radius: 12px; background: #FFF7E6; color: #6B4A00; }
.adp-notes:empty { display: none; }
.adp-box { background: var(--adp-card); border: 1px solid var(--adp-line); border-radius: var(--adp-r); padding: 16px 18px; }
.adp-box h3 { font-size: 15px; margin: 0 0 10px; }
.adp-calc { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.adp-calc td { padding: 5px 0; border-bottom: 1px solid var(--adp-line); vertical-align: top; }
.adp-calc tr:last-child td { border-bottom: 0; font-weight: 700; }
.adp-calc td:last-child { text-align: right; white-space: nowrap; padding-left: 10px; }
.adp-top { list-style: none; margin: 0; padding: 0; font-size: 13.5px; }
.adp-top li { display: flex; justify-content: space-between; gap: 10px; padding: 6px 0; border-bottom: 1px solid var(--adp-line); }
.adp-top li:last-child { border-bottom: 0; }
.adp-top small { color: var(--adp-muted); white-space: nowrap; }
.adp-src { font-size: 12.5px; color: var(--adp-muted); margin: 10px 0 0; line-height: 1.5; }

/* request form */
.adp-request { scroll-margin-top: 20px; }
.adp-request .adp-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 10px 22px; border-radius: 999px; border: 0; background: var(--adp-accent);
    color: #fff; font: inherit; font-weight: 700; font-size: 16px; cursor: pointer; }
.adp-request .adp-btn:hover { background: var(--adp-accent-d); }
.adp-flash { padding: 12px 14px; border-radius: 12px; background: var(--adp-red-bg); color: var(--adp-red); font-size: 14px; margin: 0 0 14px; }
.adp-flash--ok { background: var(--adp-green-bg); color: var(--adp-green); }
.adp-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.adp-recap { margin: 0 0 14px; padding: 12px 14px; border-radius: 12px; background: var(--adp-soft); font-size: 14px; }
.adp-faq { margin-top: 8px; }
.adp-faq h3 { font-size: 15px; margin: 14px 0 4px; }
.adp-faq p { font-size: 14px; color: var(--adp-text); margin: 0; }
.adp-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
