
/* Layout additions for content, forms, and archive pages. */
.text-link { color: #65c4ff; text-decoration: underline; text-underline-offset: 0.2em; }
.subpage-hero--content { min-height: 23rem; display: grid; place-items: center; border-bottom: 1px solid var(--line); background: radial-gradient(circle at 50% 0, rgba(22,119,255,.18), transparent 34rem); }
.content-hero__inner { max-width: 58rem; padding-block: clamp(5rem, 10vw, 8rem) clamp(3rem, 6vw, 5rem); text-align: center; }
.content-hero__inner h1 { margin: .65rem 0 1rem; font-size: clamp(2.7rem, 7vw, 5.5rem); }
.content-hero__inner .hero__lead { max-width: 48rem; margin-inline: auto; }
.section--content-top { padding-top: clamp(3rem, 7vw, 6rem); }
.content-layout { max-width: 65rem; }
.content-card { padding: clamp(1.35rem, 4vw, 3.5rem); overflow: hidden; }
.mirrored-content { color: #d9e6f2; }
.mirrored-content > :first-child { margin-top: 0; }
.mirrored-content h2, .mirrored-content h3, .mirrored-content h4 { margin: 2.1em 0 .65em; color: #fff; }
.mirrored-content h2 { font-size: clamp(1.7rem, 4vw, 2.45rem); }
.mirrored-content h3 { font-size: clamp(1.35rem, 3vw, 1.8rem); }
.mirrored-content h4 { font-size: 1.15rem; }
.mirrored-content p, .mirrored-content li { color: #c5d4e2; }
.mirrored-content a { color: #69c7ff; text-decoration: underline; text-underline-offset: .18em; }
.mirrored-content ul, .mirrored-content ol { padding-left: 1.35rem; }
.mirrored-content blockquote { margin: 1.5rem 0; padding: 1.2rem 1.4rem; border-left: 3px solid var(--blue-bright); background: rgba(20,57,94,.3); }
.mirrored-content pre { overflow: auto; padding: 1rem; border: 1px solid var(--line); border-radius: .75rem; background: #02070e; }
.mirrored-content img { width: auto; max-width: 100%; height: auto; margin: 1.5rem auto; border-radius: 1rem; }
.mirrored-content table { width: 100%; border-collapse: collapse; display: block; overflow-x: auto; }
.mirrored-content th, .mirrored-content td { min-width: 9rem; padding: .8rem; border: 1px solid var(--line); text-align: left; }
.content-loading { display: grid; gap: .8rem; }
.content-loading span { height: 1rem; border-radius: 999px; background: linear-gradient(90deg, rgba(255,255,255,.05), rgba(255,255,255,.13), rgba(255,255,255,.05)); background-size: 220% 100%; animation: content-pulse 1.4s linear infinite; }
.content-loading span:nth-child(1) { width: 58%; height: 2rem; }
.content-loading span:nth-child(2) { width: 100%; }
.content-loading span:nth-child(3) { width: 92%; }
.content-loading span:nth-child(4) { width: 74%; }
@keyframes content-pulse { to { background-position: -220% 0; } }
.content-error { padding: 1.2rem; border: 1px solid rgba(255,94,94,.35); border-radius: .85rem; background: rgba(125,17,24,.18); }

.faq-search { position: sticky; top: calc(var(--header-height) + 1rem); z-index: 3; margin-bottom: 1.4rem; padding: .8rem; border: 1px solid var(--line); border-radius: .9rem; background: rgba(3,12,21,.92); backdrop-filter: blur(14px); }
.faq-search input { width: 100%; min-height: 3rem; padding: .7rem .9rem; border: 1px solid rgba(135,185,225,.25); border-radius: .7rem; background: #020912; color: #fff; }
.faq-list { display: grid; gap: .8rem; }
.faq-item { border: 1px solid var(--line); border-radius: .95rem; background: rgba(7,20,34,.72); overflow: clip; }
.faq-item[hidden] { display: none; }
.faq-item summary { position: relative; padding: 1.05rem 3rem 1.05rem 1.15rem; color: #fff; font-weight: 800; cursor: pointer; list-style: none; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: "+"; position: absolute; right: 1.15rem; top: 50%; translate: 0 -50%; color: #66c4ff; font-size: 1.5rem; font-weight: 400; }
.faq-item[open] summary::after { content: "–"; }
.faq-item__body { padding: 0 1.15rem 1.15rem; }
.faq-item__body > :last-child { margin-bottom: 0; }
.faq-empty { padding: 1.5rem; text-align: center; color: var(--muted); }

.news-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.news-card { display: flex; min-height: 17rem; padding: 1.4rem; flex-direction: column; }
.news-card__date { color: #76c9ff; font-size: .78rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.news-card h2 { margin: .8rem 0; font-size: clamp(1.25rem, 2.4vw, 1.65rem); }
.news-card p { color: var(--muted); }
.news-card .service-card__link { margin-top: auto; }
.article-hero { padding: clamp(5rem,10vw,8rem) 0 clamp(2.5rem,5vw,4rem); border-bottom: 1px solid var(--line); background: radial-gradient(circle at 50% 0, rgba(22,119,255,.18), transparent 34rem); }
.article-hero h1 { margin: .75rem 0 1rem; font-size: clamp(2.5rem, 7vw, 5rem); }
.article-back { display: inline-block; margin-bottom: 1.5rem; color: #71caff; font-weight: 750; }
.article-meta { color: var(--muted); }
.article-content { font-size: 1.03rem; }

@media (max-width: 70rem) and (min-width: 64.01rem) { .button--webmail { display: none; } .site-header__inner { gap: 1rem; } .primary-nav ul { gap: .35rem; } }
@media (max-width: 62rem) {
  .news-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 46rem) {
  .news-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .content-loading span { animation: none; }
}

/* Animated Oplink header logo: self-contained SVG, approved animation. */
.brand-logo-animated {
  display: block;
  width: clamp(9.2rem, 15vw, 11.4rem);
  height: auto;
  aspect-ratio: 472 / 222;
}
@media (max-width: 36rem) {
  .brand-logo-animated { width: 8.8rem; }
}
