/* instantproof advertisement block. Deliberately in instantproof's own colours (navy/teal), not PDF Desk's,
   so it reads as a separate advertiser in both light and dark mode. */
.ad { margin: 2.5rem 0; }
.ad-label { margin: 0 0 .5rem; font-size: .78rem; color: var(--muted); }
.ad-label strong { text-transform: uppercase; letter-spacing: .08em; font-weight: 600; }
.ad-card {
  display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 0;
  border-radius: var(--radius, 14px); overflow: hidden; text-decoration: none;
  background: #0D1B33; color: #EAF0F7; box-shadow: 0 10px 30px rgba(13, 27, 51, .25);
  border: 1px solid rgba(255, 255, 255, .08);
}
.ad-card:hover .ad-cta { background: #00C9AB; }
.ad-card:focus-visible { outline: 3px solid var(--focus, #f5a524); outline-offset: 3px; }
.ad-body { display: flex; flex-direction: column; gap: .55rem; padding: 1.4rem 1.5rem; justify-content: center; }
.ad-brand { font-weight: 600; font-size: .95rem; color: #fff; }
.ad-brand b { color: #00B99E; font-weight: 600; }
.ad-title { font-size: 1.35rem; line-height: 1.2; font-weight: 700; color: #fff; text-wrap: balance; }
.ad-text { font-size: .95rem; line-height: 1.5; color: #C5D1DE; }
.ad-points { display: flex; flex-wrap: wrap; gap: .4rem; }
.ad-points span { font-size: .78rem; padding: .25rem .6rem; border-radius: 999px; background: rgba(0, 185, 158, .14); color: #7FE3D3; }
.ad-cta { align-self: flex-start; margin-top: .35rem; padding: .6rem 1rem; border-radius: 10px; background: #00B99E; color: #0D1B33; font-weight: 700; transition: background .15s; }
.ad-small { font-size: .78rem; color: #8FA0B3; }

/* photo with a frosted thought bubble (positions are % of the photo, aimed at his head) */
.ad-photo { position: relative; display: block; container-type: inline-size; aspect-ratio: 1448 / 1086; background: #2a2f38; }
.ad-photo picture, .ad-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ad-thought {
  --cloud: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 250' preserveAspectRatio='none'%3E%3Cpath d='M64 206C26 206 6 178 18 148C-2 126 8 86 44 80C44 44 90 22 126 40C146 10 204 4 228 32C254 8 310 14 322 52C364 50 396 82 384 118C402 144 386 190 346 192C344 226 298 244 262 222C238 248 182 248 160 224C128 246 78 238 64 206Z'/%3E%3C/svg%3E");
  position: absolute; left: 2.5%; top: 4%; width: 48%;
  display: grid; place-items: center; padding: 9.5% 9% 10.5%;
  text-align: center; color: #0D1B33; isolation: isolate;
}
.ad-thought::before, .ad-thought::after {
  content: ""; position: absolute; inset: 0;
  -webkit-mask: var(--cloud) center / 100% 100% no-repeat; mask: var(--cloud) center / 100% 100% no-repeat;
}
.ad-thought::before { z-index: -2; background: rgba(13, 27, 51, .3); transform: translate(0, 3%); filter: blur(8px); }
.ad-thought::after { z-index: -1; background: rgba(252, 251, 247, .78); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.ad-thought-text {
  display: block; font-family: Georgia, "Times New Roman", serif; font-weight: 500;
  font-size: clamp(10px, 4cqw, 20px); line-height: 1.15; text-wrap: balance;
  transition: opacity .35s ease, transform .35s ease;
}
.ad-thought.is-swapping .ad-thought-text { opacity: 0; transform: translateY(4px); }
.ad-dot {
  position: absolute; aspect-ratio: 1; border-radius: 50%;
  background: rgba(252, 251, 247, .82); box-shadow: 0 3px 8px rgba(13, 27, 51, .25);
}
.ad-dot.d1 { left: 47.5%; top: 40%; width: 2.8%; }
.ad-dot.d2 { left: 50.8%; top: 35%; width: 2%; }
.ad-dot.d3 { left: 53.2%; top: 31%; width: 1.3%; }

@media (max-width: 720px) {
  .ad-card { grid-template-columns: 1fr; }
  .ad-body { padding: 1.1rem 1.2rem 1.3rem; }
  .ad-title { font-size: 1.2rem; }
}
@media (prefers-reduced-motion: reduce) { .ad-thought-text { transition: none; } }
