/* Theme-specific overrides and WordPress alignment */
.ol-main { min-height: 50vh; }
body.ol-nav-open { overflow: hidden; }

.ol-cookie-bar {
  position: fixed;
  left: 10px;
  bottom: 10px;
  z-index: 180;
  max-width: 380px;
  background: var(--ink);
  color: #C3CDD8;
  border: 1px solid var(--line-dark);
  border-radius: var(--radius);
  box-shadow: 0 18px 44px -22px rgba(0, 0, 0, .6);
  padding: 18px 20px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  transform: translateY(16px);
  opacity: 0;
  visibility: hidden;
  transition: opacity .32s ease, transform .32s ease, visibility .32s;
}
.ol-cookie-bar--visible {
  transform: none;
  opacity: 1;
  visibility: visible;
}
.ol-cookie-bar .ol-cookie-bar__text { font-size: 13.5px; line-height: 1.5; }
.ol-cookie-bar .ol-cookie-bar__text a {
  color: var(--brass-soft);
  border-bottom: 1px solid rgba(201, 165, 103, .35);
}
.ol-cookie-bar .ol-cookie-bar__text a:hover {
  color: #fff;
  border-color: #fff;
}
.ol-cookie-bar .ol-cookie-bar__button {
  align-self: flex-start;
  background: var(--brass);
  color: #fff;
  border: 0;
  border-radius: var(--radius);
  font-family: var(--sans);
  font-weight: 600;
  font-size: 14px;
  padding: 10px 22px;
  cursor: pointer;
  transition: .16s ease;
}
.ol-cookie-bar .ol-cookie-bar__button:hover {
  background: #9c742f;
  transform: translateY(-1px);
}
.ol-cookie-bar .ol-cookie-bar__button:focus-visible {
  outline: 2px solid var(--brass-soft);
  outline-offset: 2px;
}
@media (max-width: 767px) {
  .ol-cookie-bar {
    left: 10px;
    right: 10px;
    bottom: 10px; 
    max-width: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .ol-cookie-bar { transition: opacity .2s ease, visibility .2s; }
  .ol-cookie-bar--visible { transform: none; }
}

.ol-mobile-sticky {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 90;
  background: var(--surface);
  border-top: 1px solid var(--line);
  padding: 10px 16px;
  gap: 8px;
  grid-template-columns: 1fr 1fr 1fr;
}
@media (max-width: 767px) {
  .ol-mobile-sticky { display: grid; grid-template-columns: 1fr 1fr; }
  body { padding-bottom: 64px; }
}

.ol-breadcrumbs {
  padding: 0;
  margin: 0 0 20px;
  font-family: var(--sans);
  font-size: 12.5px;
  line-height: 20px;
  color: var(--mist);
}
.ol-breadcrumbs ol {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding: 0;
  margin: 0;
}
.ol-breadcrumbs li::after { content: '/'; margin-left: 8px; color: var(--mist-2); }
.ol-breadcrumbs li:last-child::after { content: ''; }
.ol-breadcrumbs a { color: var(--mist); }
.ol-breadcrumbs a:hover { color: var(--brass-text); }
.ol-breadcrumbs span[aria-current="page"] { color: var(--ink); }

.ol-meta-bar .ol-breadcrumbs { margin-bottom: 0; }

.ol-article-hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  font-size: 13.5px;
  color: var(--mist);
  margin-top: 16px;
}
.ol-article-hero-meta .ol-mono { font-family: var(--mono); }

.ol-toc {
  position: sticky;
  top: 88px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 20px;
}
.ol-toc ol { padding-left: 18px; }
.ol-toc a { color: var(--ink-3); font-size: 14px; }

.ol-article-layout {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 40px;
  align-items: start;
}
@media (max-width: 1024px) {
  .ol-article-layout { grid-template-columns: 1fr; }
  .ol-toc { position: static; }
}

.ol-text-page__content {
  max-width: 760px;
}
.ol-text-page__content h2 { margin: 32px 0 12px; font-size: var(--text-h2); }
.ol-text-page__content p { margin-bottom: 16px; color: var(--ink-3); }
.ol-text-page__content ul { padding-left: 22px; margin-bottom: 16px; }

.swiper.ol-review-swiper { overflow: hidden; padding-bottom: 8px; }
.swiper.ol-review-swiper .swiper-slide { height: auto; }

.ol-honeypot {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}


/* BEM shared lead/stat typography */
.ol-section-head .ol-hero__lead{font-size:18px;color:var(--mist)}
.ol-page-hero .ol-hero__lead{font-size:19px;color:var(--ink-3);max-width:720px}
.ol-hero__trust .ol-hero__stat-value{font-family:var(--mono);font-size:22px;font-weight:600;color:#fff}
.ol-hero__trust .ol-hero__stat-label{font-size:13px;color:var(--mist-2)}
footer.ol-footer{background:var(--ink);color:#AEBAC7;padding:54px 0 34px}
footer.ol-footer .ol-header__brand{color:#fff;display:flex;align-items:center;gap:10px;font-size:18px;line-height:115%;}
footer.ol-footer .ol-header__brand .ol-header__logo{background:#fff;color:var(--ink)}
.ol-footer__description {
  font-size: 16px;
  margin-top: 20px;
}
