/* ============================================================================
   Zodiac Oracle — "Star chart" layer (zo-theme 1.0.0, 2026-09-30).
   Loads after theme-variables.css and main.css; all site styling lives here.
   Dark-first: night ground, raised panels, starlight text, gold for stars,
   lines, numerals and the one button; periwinkle for links. Never text on
   imagery. main.css still supplies the mobile drawer mechanics and content
   defaults; everything visual is restated here.
   ========================================================================= */

html { background: var(--zo-night); overflow-x: clip; }
body {
    background: var(--zo-night);
    color: var(--zo-text);
    font-family: var(--zo-ui);
    font-size: var(--zo-size-body);
    line-height: var(--zo-lh-body);
    -webkit-font-smoothing: antialiased;
}
a { color: var(--zo-link); }
a:hover { color: var(--zo-link-hover); }
:focus-visible { outline: 2px solid var(--zo-gold); outline-offset: 2px; }
h1, h2, h3, h4, h5, h6 { font-family: var(--zo-display); font-weight: 400; color: var(--zo-text); letter-spacing: 0; line-height: 1.15; text-wrap: balance; }
::selection { background: var(--zo-gold); color: var(--zo-night); }
.site-main { padding: 0; max-width: none; }
.site-container { max-width: var(--zo-page-max); margin: 0 auto; padding: 0 var(--zo-gutter); }

.zo-skip-link { position: absolute; left: -9999px; top: 0; z-index: 2000; background: var(--zo-gold); color: var(--zo-night); padding: .75rem 1rem; }
.zo-skip-link:focus { left: 1rem; top: 1rem; }

.zo-kicker { margin: 0 0 .5rem; font-family: var(--zo-ui); font-size: var(--zo-size-meta); font-weight: 500; letter-spacing: var(--zo-track-meta); text-transform: uppercase; color: var(--zo-gold); }
.zo-kicker a { color: inherit; text-decoration: none; display: inline-flex; align-items: center; min-height: 24px; }
.zo-kicker a:hover { color: var(--zo-text); }
.zo-meta { margin: 0; font-family: var(--zo-ui); font-size: var(--zo-size-meta); letter-spacing: .06em; text-transform: uppercase; color: var(--zo-meta); display: flex; flex-wrap: wrap; align-items: center; gap: .15rem .55rem; }
.zo-meta .sep { color: var(--zo-gold); }

/* --- Masthead ---------------------------------------------------------------- */
.zo-masthead { background: var(--zo-deep); border-bottom: 1px solid var(--zo-gold-soft); position: relative; z-index: 100; }
.zo-masthead-inner {
    max-width: var(--zo-page-max); margin: 0 auto; padding: 0 var(--zo-gutter);
    display: grid; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "brand nav actions" "search search search";
    align-items: center; column-gap: 1.5rem; min-height: 84px; position: relative;
}
.zo-brand { grid-area: brand; display: flex; align-items: center; }
.zo-brand a { display: flex; align-items: center; min-height: var(--zo-tap); text-decoration: none; }
.zo-brand-h1 { margin: 0; line-height: 1; font-size: inherit; }
.zo-brand-logo { height: 52px; width: auto; display: block; }
.zo-drawer-clip { display: contents; }
.zo-masthead .main-navigation { grid-area: nav; justify-self: end; min-width: 0; }
.zo-masthead .primary-menu { display: flex; align-items: center; justify-content: flex-end; flex-wrap: nowrap; gap: 0; list-style: none; margin: 0; padding: 0; }
.zo-masthead .main-navigation a {
    display: inline-flex; align-items: center; min-height: 84px; padding: 0 .8rem; white-space: nowrap; position: relative;
    font-family: var(--zo-ui); font-size: .8125rem; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--zo-text); text-decoration: none;
}
.zo-masthead .main-navigation a:hover { color: var(--zo-gold); }
.zo-masthead .main-navigation a::after { content: ""; position: absolute; left: .8rem; right: .8rem; bottom: 22px; height: 1px; background: var(--zo-gold); opacity: 0; }
.zo-masthead .main-navigation .current-menu-item > a,
.zo-masthead .main-navigation .current-post-ancestor > a,
.zo-masthead .main-navigation .current-cat > a,
.zo-masthead .main-navigation .current-menu-parent > a { color: var(--zo-gold); }
.zo-masthead .main-navigation .current-menu-item > a::after,
.zo-masthead .main-navigation .current-post-ancestor > a::after,
.zo-masthead .main-navigation .current-cat > a::after { opacity: 1; }
.zo-masthead .sub-menu { display: none; }
.zo-masthead .header-actions { grid-area: actions; display: flex; align-items: center; gap: .25rem; }
.zo-masthead .desktop-search-toggle, .zo-masthead .mobile-search-toggle, .zo-masthead .mobile-menu-toggle {
    background: transparent; border: 0; min-width: var(--zo-tap); min-height: var(--zo-tap); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; color: var(--zo-text);
}
.zo-masthead .desktop-search-toggle svg, .zo-masthead .mobile-search-toggle svg { color: var(--zo-text); }
.zo-masthead .desktop-search-toggle:hover svg, .zo-masthead .mobile-search-toggle:hover svg { color: var(--zo-gold); }
.zo-masthead .hamburger-line { background: var(--zo-text); }
.zo-masthead .desktop-search-form, .zo-masthead .mobile-search-form { grid-area: search; background: var(--zo-panel); border-top: 1px solid var(--zo-rule); margin: 0; }
.zo-masthead .search-field { font-family: var(--zo-ui); font-size: 1rem; min-height: var(--zo-tap); border-radius: var(--zo-radius-sm); border: 1px solid var(--zo-rule-strong); background: var(--zo-night); color: var(--zo-text); }
.zo-masthead .search-field::placeholder { color: var(--zo-dim); }
.zo-masthead .desktop-search-form button[type="submit"], .zo-masthead .mobile-search-form button[type="submit"] { min-height: var(--zo-tap); border-radius: var(--zo-radius-sm); font-family: var(--zo-ui); font-weight: 600; background: var(--zo-gold); color: var(--zo-night); border: 0; padding: 0 1.25rem; }
.zo-masthead .search-close, .zo-masthead .mobile-search-close { background: transparent !important; color: var(--zo-text) !important; min-width: var(--zo-tap); min-height: var(--zo-tap); }

/* --- Section heads ------------------------------------------------------------ */
.zo-head { margin: 0 0 1.5rem; }
.zo-head-row { display: flex; align-items: center; gap: .75rem; }
.zo-head-star { flex: none; width: 14px; height: 14px; background: var(--zo-gold); clip-path: polygon(50% 0, 62% 38%, 100% 50%, 62% 62%, 50% 100%, 38% 62%, 0 50%, 38% 38%); }
.zo-head-title { margin: 0; font-size: var(--zo-h2); }
.zo-head-rule { flex: 1 1 auto; height: 1px; background: var(--zo-rule); min-width: 2rem; }
.zo-head-link { flex: none; font-size: .875rem; font-weight: 500; letter-spacing: .06em; text-decoration: none; display: inline-flex; align-items: center; min-height: var(--zo-tap); }

/* --- Home: the star chart ---------------------------------------------------- */
.zo-sky { padding: clamp(2rem, 4vw, 3rem) 0 0; }
.zo-chart {
    position: relative; height: clamp(520px, 44vw, 600px);
    background-color: var(--zo-deep);
    background-image: radial-gradient(circle, rgba(237, 230, 214, .10) 1px, transparent 1.2px);
    background-size: 28px 28px;
    border: 1px solid var(--zo-rule); border-radius: var(--zo-radius-lg);
    overflow: hidden;
}
.zo-chart-lines { position: absolute; inset: 0; width: 100%; height: 100%; }
.zo-chart-lines line { stroke: var(--zo-gold); stroke-opacity: .55; stroke-width: 1; stroke-dasharray: 3 4; }
.zo-chart-stars { list-style: none; margin: 0; padding: 0; counter-reset: none; }
.zo-star { position: absolute; left: var(--x); top: var(--y); width: 0; height: 0; }
.zo-star-dot { position: absolute; left: 0; top: 0; transform: translate(-50%, -50%); border-radius: 50%; background: var(--zo-gold); box-shadow: 0 0 0 4px rgba(224, 178, 92, .14), 0 0 18px rgba(224, 178, 92, .55); }
.zo-star--mag1 .zo-star-dot { width: 16px; height: 16px; }
.zo-star--mag2 .zo-star-dot { width: 11px; height: 11px; }
.zo-star--mag3 .zo-star-dot { width: 8px; height: 8px; }
.zo-star-panel {
    position: absolute; top: 0; transform: translateY(-50%); width: clamp(200px, 19vw, 244px);
    background: var(--zo-panel); border: 1px solid var(--zo-rule-strong); border-radius: var(--zo-radius);
    padding: .75rem .9rem .8rem; box-shadow: 0 10px 28px rgba(0, 0, 0, .35);
}
.zo-star--right .zo-star-panel { left: 20px; }
.zo-star--left .zo-star-panel { right: 20px; }
.zo-star-num { float: right; margin: 0 0 0 .5rem; font-family: var(--zo-display); font-size: .9375rem; color: var(--zo-gold); font-variant-numeric: tabular-nums; }
.zo-star-panel .zo-kicker { font-size: .6875rem; margin: 0 0 .3rem; }
.zo-star-title { display: block; font-family: var(--zo-display); font-size: 1.0625rem; line-height: 1.3; color: var(--zo-text); text-decoration: none; }
.zo-star-title::after { content: ""; position: absolute; inset: 0; }
.zo-star-title:hover { color: var(--zo-gold); }
.zo-star-panel:hover { border-color: var(--zo-gold-soft); }

.zo-legend { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.5rem; margin: .75rem 0 0; padding: .6rem 1rem; background: var(--zo-panel); border: 1px solid var(--zo-rule); border-radius: var(--zo-radius); }
.zo-legend-label { margin: 0; font-size: var(--zo-size-meta); letter-spacing: var(--zo-track-meta); text-transform: uppercase; color: var(--zo-meta); }
.zo-legend-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0 1.5rem; }
.zo-legend-list a { display: inline-flex; align-items: center; gap: .55rem; min-height: var(--zo-tap); color: var(--zo-text); text-decoration: none; font-size: .9375rem; }
.zo-legend-list a:hover .zo-legend-name { color: var(--zo-gold); }
.zo-legend-star { border-radius: 50%; background: var(--zo-gold); flex: none; }
.zo-legend-star--mag1 { width: 14px; height: 14px; }
.zo-legend-star--mag2 { width: 10px; height: 10px; }
.zo-legend-star--mag3 { width: 7px; height: 7px; }
.zo-legend-count { color: var(--zo-meta); font-variant-numeric: tabular-nums; }

/* --- Cards and rows -------------------------------------------------------- */
.zo-tonight { padding: clamp(2.5rem, 5vw, 3.5rem) 0 1.5rem; }
.zo-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.5rem); }
.zo-card { background: var(--zo-panel); border: 1px solid var(--zo-rule); border-radius: var(--zo-radius); overflow: hidden; display: flex; flex-direction: column; min-width: 0; position: relative; }
.zo-card:hover { border-color: var(--zo-gold-soft); }
.zo-card-frame { display: block; aspect-ratio: 16 / 10; background: var(--zo-raised); border-bottom: 1px solid var(--zo-rule); }
.zo-card-frame img { width: 100%; height: 100%; object-fit: cover; display: block; }
.zo-card-body { padding: 1rem 1.1rem 1.15rem; display: flex; flex-direction: column; gap: .45rem; flex: 1 1 auto; }
.zo-card-body .zo-kicker { margin: 0; position: relative; z-index: 1; }
.zo-card-title { margin: 0; font-size: 1.3125rem; line-height: 1.28; }
.zo-card-title a { color: var(--zo-text); text-decoration: none; }
.zo-card-title a::after { content: ""; position: absolute; inset: 0; }
.zo-card-title a:hover { color: var(--zo-gold); }
.zo-card-line { margin: 0; font-size: 1rem; line-height: 1.6; color: var(--zo-meta); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.zo-card .zo-meta { margin-top: auto; padding-top: .35rem; }

.zo-rows { display: grid; grid-template-columns: minmax(0, 1fr); }
.zo-row { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 1rem; align-items: start; padding: 1rem 0; border-top: 1px solid var(--zo-rule); position: relative; }
.zo-row:last-child { border-bottom: 1px solid var(--zo-rule); }
.zo-row-thumb { display: block; width: 96px; aspect-ratio: 1; border-radius: var(--zo-radius-sm); overflow: hidden; background: var(--zo-raised); }
.zo-row-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.zo-row-body { display: flex; flex-direction: column; gap: .3rem; min-width: 0; }
.zo-row-body .zo-kicker { margin: 0; }
.zo-row-title { margin: 0; font-size: 1.1875rem; line-height: 1.3; }
.zo-row-title a { color: var(--zo-text); text-decoration: none; }
.zo-row-title a::after { content: ""; position: absolute; inset: 0; }
.zo-row-title a:hover { color: var(--zo-gold); }

/* --- Archive ------------------------------------------------------------------ */
.zo-archive-head {
    margin: clamp(1.75rem, 3.5vw, 2.5rem) 0 clamp(2rem, 4vw, 2.75rem);
    display: grid; grid-template-columns: minmax(0, 1fr) 220px; gap: 2rem; align-items: center;
    background: var(--zo-panel); border: 1px solid var(--zo-rule); border-radius: var(--zo-radius-lg);
    padding: clamp(1.5rem, 3.5vw, 2.5rem);
}
.zo-archive-title { margin: 0; font-size: var(--zo-h1); }
.zo-archive-description { margin: .9rem 0 0; font-size: 1.0625rem; color: var(--zo-meta); max-width: 44rem; }
.zo-archive-count { margin: 1rem 0 0; font-size: var(--zo-size-meta); letter-spacing: var(--zo-track-meta); text-transform: uppercase; color: var(--zo-meta); }
.zo-archive-count span { font-family: var(--zo-display); font-size: 1.5rem; letter-spacing: 0; color: var(--zo-gold); margin-right: .25rem; }
.zo-constellation { width: 100%; height: auto; max-width: 220px; justify-self: end; }
.zo-constellation line { stroke: var(--zo-gold); stroke-opacity: .6; stroke-width: .6; }
.zo-constellation circle { fill: var(--zo-gold); }
.zo-archive-top { margin: 0 0 clamp(2.5rem, 5vw, 3rem); }
.zo-archive-layout { display: grid; grid-template-columns: minmax(0, 1fr) var(--zo-sidebar); gap: var(--zo-side-gap); align-items: start; padding-bottom: 1.5rem; }
.zo-empty { padding: 3rem 0; }

/* --- Pager ------------------------------------------------------------------ */
.zo-pager { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin: 2rem 0 0; }
.zo-pager .nav-links { display: flex; flex-wrap: wrap; gap: .4rem; }
.zo-pager .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: var(--zo-tap); min-height: var(--zo-tap); padding: 0 .8rem; border: 1px solid var(--zo-rule-strong); border-radius: var(--zo-radius-sm); background: transparent; color: var(--zo-text); text-decoration: none; font-size: .9375rem; font-variant-numeric: tabular-nums; }
.zo-pager .page-numbers:hover { border-color: var(--zo-gold); color: var(--zo-gold); }
.zo-pager .page-numbers.current { background: transparent; border-color: var(--zo-gold); color: var(--zo-gold); }
.zo-pager .page-numbers.dots { border: 0; }

/* --- Sidebar ---------------------------------------------------------------- */
.zo-sidebar { display: flex; flex-direction: column; gap: 1.25rem; min-width: 0; }
.zo-widget { background: var(--zo-panel); border: 1px solid var(--zo-rule); border-radius: var(--zo-radius); padding: 1.1rem 1.2rem 1.2rem; }
.zo-widget-title { margin: 0 0 .75rem; padding-bottom: .6rem; border-bottom: 1px solid var(--zo-rule); font-family: var(--zo-ui); font-size: var(--zo-size-meta); font-weight: 600; letter-spacing: var(--zo-track-meta); text-transform: uppercase; color: var(--zo-gold); }
.zo-mostread { list-style: none; margin: 0; padding: 0; }
.zo-mostread li { display: grid; grid-template-columns: 2rem minmax(0, 1fr); gap: .5rem; padding: .6rem 0; border-top: 1px solid var(--zo-rule); }
.zo-mostread li:first-child { border-top: 0; padding-top: 0; }
.zo-mostread-num { font-family: var(--zo-display); color: var(--zo-gold); font-size: 1.0625rem; line-height: 1.35; font-variant-numeric: tabular-nums; }
.zo-mostread-title { display: inline-block; font-size: .9875rem; line-height: 1.4; color: var(--zo-text); text-decoration: none; padding: 10px 0; margin: -10px 0; }
.zo-mostread-title:hover { color: var(--zo-gold); }
.zo-mostread .zo-meta { margin-top: .2rem; font-size: .75rem; }
.zo-cat-list { list-style: none; margin: 0; padding: 0; }
.zo-cat-list a { display: flex; justify-content: space-between; align-items: center; min-height: var(--zo-tap); border-top: 1px solid var(--zo-rule); color: var(--zo-text); text-decoration: none; }
.zo-cat-list li:first-child a { border-top: 0; }
.zo-cat-list a:hover { color: var(--zo-gold); }
.zo-cat-count { color: var(--zo-meta); font-variant-numeric: tabular-nums; }

/* --- Ad frames (labelled; render nothing when the block is empty) ---------- */
.zo-ad { background: var(--zo-panel); border: 1px solid var(--zo-rule); border-radius: var(--zo-radius); padding: .6rem; text-align: center; }
.zo-ad::before { content: "Advertisement"; display: block; margin: 0 0 .4rem; font-size: .6875rem; letter-spacing: var(--zo-track-meta); text-transform: uppercase; color: var(--zo-dim); }
.zo-ad:has(ins[data-ad-status="unfilled"]), .zo-ad:has(ins[data-ad-status="unfill-optimized"]) { display: none; }
.zo-ad-placeholder { padding: 2rem 1rem; font-size: .8125rem; color: var(--zo-dim); border: 1px dashed var(--zo-rule-strong); border-radius: var(--zo-radius-sm); }

/* --- Single ------------------------------------------------------------------- */
.zo-single { display: grid; grid-template-columns: minmax(0, 1fr) var(--zo-sidebar); gap: var(--zo-side-gap); align-items: start; padding: clamp(1.5rem, 3vw, 2.5rem) 0 .5rem; }
.zo-single > * { min-width: 0; }
.zo-article { background: var(--zo-panel); border: 1px solid var(--zo-rule); border-radius: var(--zo-radius-lg); padding: clamp(1.25rem, 3.5vw, 2.75rem); }
.zo-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: .1rem .5rem; margin: 0 0 1rem; font-size: var(--zo-size-meta); letter-spacing: .1em; text-transform: uppercase; }
.zo-breadcrumb a { color: var(--zo-link); text-decoration: none; display: inline-flex; align-items: center; min-height: 44px; }
.zo-breadcrumb .sep { color: var(--zo-gold); }
.zo-article-head { margin: 0 0 1.5rem; }
.zo-title { margin: 0; font-size: var(--zo-h1); line-height: 1.12; }
.zo-standfirst { margin: 1rem 0 0; font-size: 1.1875rem; line-height: 1.6; color: var(--zo-meta); }
.zo-article-meta { margin-top: 1rem; }
.zo-lead-photo { margin: 0 0 2rem; padding: .6rem; background: var(--zo-raised); border: 1px solid var(--zo-rule-strong); border-radius: var(--zo-radius); }
.zo-lead-photo img { width: 100%; height: auto; display: block; border-radius: var(--zo-radius-sm); }
.zo-caption, .zo-reading .entry-content figcaption, .zo-reading .entry-content .wp-caption-text { margin: .5rem .25rem 0; font-size: .875rem; line-height: 1.5; color: var(--zo-dim); text-align: left; font-style: normal; }

.zo-reading .entry-content { font-size: var(--zo-size-body); line-height: var(--zo-lh-body); color: var(--zo-text); }
.zo-reading .entry-content p, .zo-reading .entry-content li { color: var(--zo-text); }
.zo-reading .entry-content h2 { font-size: var(--zo-h2); margin: 2.4rem 0 .9rem; padding-left: 1.5rem; position: relative; }
.zo-reading .entry-content h2::before { content: ""; position: absolute; left: 0; top: .42em; width: 13px; height: 13px; background: var(--zo-gold); clip-path: polygon(50% 0, 62% 38%, 100% 50%, 62% 62%, 50% 100%, 38% 62%, 0 50%, 38% 38%); }
.zo-reading .entry-content h3 { font-size: var(--zo-h3); margin: 1.9rem 0 .7rem; }
.zo-reading .entry-content a { color: var(--zo-link); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(169, 184, 255, .5); }
.zo-reading .entry-content a:hover { color: var(--zo-link-hover); text-decoration-color: currentColor; }
.zo-reading .entry-content strong { color: var(--zo-text); font-weight: 600; }
.zo-reading .entry-content blockquote { margin: 2rem 0; padding: 1.25rem 1.5rem; background: var(--zo-raised); border: 1px solid var(--zo-gold-soft); border-radius: var(--zo-radius); font-family: var(--zo-display); font-size: 1.3125rem; line-height: 1.45; color: var(--zo-text); }
.zo-reading .entry-content blockquote p { margin: 0; }
.zo-reading .entry-content img { max-width: 100%; height: auto; border-radius: var(--zo-radius-sm); }
.zo-reading .entry-content figure { margin: 1.75rem 0; }
.zo-reading .entry-content hr { border: 0; height: 1px; background: var(--zo-rule); margin: 2rem 0; }
.zo-reading .entry-content ul, .zo-reading .entry-content ol { padding-left: 1.4rem; }
.zo-reading .entry-content li::marker { color: var(--zo-gold); }
.table-scroll { overflow-x: auto; margin: 1.5rem 0; border: 1px solid var(--zo-rule); border-radius: var(--zo-radius-sm); -webkit-overflow-scrolling: touch; }
.zo-reading .entry-content table { width: 100%; border-collapse: collapse; font-size: .9375rem; margin: 0; }
.zo-reading .entry-content th { background: var(--zo-raised); color: var(--zo-text); font-weight: 600; text-align: left; }
.zo-reading .entry-content th, .zo-reading .entry-content td { padding: .65rem .8rem; border-bottom: 1px solid var(--zo-rule); vertical-align: top; color: var(--zo-text); }

/* Contents card ("In this reading") — zo_toc_filter */
.zo-toc { margin: 0 0 1.75rem; background: var(--zo-raised); border: 1px solid var(--zo-rule-strong); border-radius: var(--zo-radius); overflow: hidden; }
.zo-toc summary { display: flex; align-items: center; gap: .75rem; min-height: 52px; padding: .6rem 1.1rem; border-bottom: 1px solid var(--zo-rule); cursor: pointer; list-style: none; }
.zo-toc summary::-webkit-details-marker { display: none; }
.zo-toc details:not([open]) summary { border-bottom: 0; }
.zo-toc-title { font-family: var(--zo-ui); font-size: var(--zo-size-meta); font-weight: 600; letter-spacing: var(--zo-track-meta); text-transform: uppercase; color: var(--zo-gold); }
.zo-toc-count { font-size: .8125rem; color: var(--zo-meta); }
.zo-toc-chevron { margin-left: auto; width: 9px; height: 9px; border-right: 2px solid var(--zo-gold); border-bottom: 2px solid var(--zo-gold); transform: rotate(45deg) translate(-2px, -2px); }
.zo-toc details:not([open]) .zo-toc-chevron { transform: rotate(-45deg); }
.zo-reading .entry-content .zo-toc-list, .zo-reading .entry-content .zo-toc-sub { list-style: none; margin: 0; padding: 0; }
.zo-reading .entry-content .zo-toc-list { padding: .4rem 1.1rem .7rem; }
.zo-reading .entry-content .zo-toc-list > li { margin: 0; break-inside: avoid; border-bottom: 1px solid var(--zo-rule); }
.zo-reading .entry-content .zo-toc-list > li:last-child { border-bottom: 0; }
.zo-reading .entry-content .zo-toc-list li::marker { content: none; }
.zo-reading .entry-content .zo-toc-list > li > a { display: flex; gap: .75rem; align-items: baseline; min-height: 44px; padding: .55rem 0; font-size: .9875rem; line-height: 1.4; color: var(--zo-text); text-decoration: none; }
.zo-toc-num { flex: none; min-width: 1.75rem; font-family: var(--zo-display); color: var(--zo-gold); font-variant-numeric: tabular-nums; }
.zo-reading .entry-content .zo-toc-sub { margin: -.35rem 0 .45rem 2.5rem; }
.zo-reading .entry-content .zo-toc-sub a { display: block; min-height: 36px; padding: .4rem 0; font-size: .9rem; color: var(--zo-meta); text-decoration: none; }
.zo-reading .entry-content .zo-toc a:hover .zo-toc-text, .zo-reading .entry-content .zo-toc-sub a:hover { color: var(--zo-gold); }
@media (min-width: 900px) { .zo-reading .entry-content .zo-toc-list--cols { columns: 2; column-gap: 2rem; } }
.zo-reading .entry-content h2[id], .zo-reading .entry-content h3[id] { scroll-margin-top: 1.5rem; }

.zo-page-links { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; margin: 1.5rem 0 0; }
.zo-page-links a, .zo-page-links > span > span { display: inline-flex; align-items: center; justify-content: center; min-width: var(--zo-tap); min-height: var(--zo-tap); border: 1px solid var(--zo-rule-strong); border-radius: var(--zo-radius-sm); text-decoration: none; }
.zo-label { font-size: var(--zo-size-meta); letter-spacing: var(--zo-track-meta); text-transform: uppercase; color: var(--zo-meta); margin-right: .5rem; }
.zo-share { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem 1rem; margin: 2rem 0 0; padding: .9rem 0 0; border-top: 1px solid var(--zo-rule); }
.zo-share a { display: inline-flex; align-items: center; min-height: var(--zo-tap); text-decoration: none; font-size: .9375rem; }
.zo-related { margin: 2.5rem 0 0; }
.zo-related .zo-card-title { font-size: 1.125rem; }

/* Comments on dark */
.comments-area { margin-top: 2rem; padding-top: 0; border-top: 0; color: var(--zo-text); }
.comments-area .comments-title, .comments-area .comment-reply-title { font-size: var(--zo-h3); color: var(--zo-text); margin-top: 0; }
.comments-area .comment-list { list-style: none; padding: 0; }
.comments-area .comment-body { background: var(--zo-raised); border: 1px solid var(--zo-rule); border-radius: var(--zo-radius); color: var(--zo-text); }
.comments-area .comment-respond { margin: 0; background: var(--zo-raised); border: 1px solid var(--zo-rule); border-radius: var(--zo-radius); }
.comments-area label, .comments-area .comment-notes, .comments-area .logged-in-as { color: var(--zo-meta); font-family: var(--zo-ui); }
.comments-area input:not([type="checkbox"]):not([type="submit"]), .comments-area textarea { border-radius: var(--zo-radius-sm); border: 1px solid var(--zo-rule-strong); background: var(--zo-night); color: var(--zo-text); font-family: var(--zo-ui); }
.comments-area input:focus, .comments-area textarea:focus { border-color: var(--zo-gold); outline: none; }
.comments-area .submit, .comments-area #submit { background: var(--zo-gold) !important; border: 0; border-radius: var(--zo-radius-sm) !important; color: var(--zo-night) !important; font-weight: 600; min-height: var(--zo-tap); padding: 0 1.5rem; cursor: pointer; }

/* --- Static pages (classic and Elementor-built) ------------------------------ */
.zo-page { max-width: var(--zo-content-max); margin: 0 auto; padding: clamp(1.75rem, 3.5vw, 2.75rem) 0 1rem; }
.zo-page-title { margin: 0 0 1.25rem; font-size: var(--zo-h1); }
.zo-page .entry-content { color: var(--zo-text); }
.zo-page .entry-content a { color: var(--zo-link); }
/* Elementor-built pages keep their own widgets; make their text readable on
   the night ground (Elementor's globals default to dark text). */
.elementor-page .elementor-widget-text-editor, .elementor-page .elementor-widget-text-editor p,
.elementor-page .elementor-heading-title, .elementor-page .elementor-widget-container li,
.elementor-page .elementor-icon-list-text, .elementor-page .elementor-field-label { color: var(--zo-text) !important; }
.elementor-page .elementor-widget-text-editor a { color: var(--zo-link) !important; }
.elementor-page .elementor-field-group .elementor-field { background: var(--zo-night) !important; color: var(--zo-text) !important; border-color: var(--zo-rule-strong) !important; }
.elementor-page .elementor-button { background: var(--zo-gold) !important; color: var(--zo-night) !important; }

/* --- Newsletter panel ------------------------------------------------------- */
.zo-newsletter { max-width: var(--zo-page-max); margin: 0 auto; padding: 1.5rem var(--zo-gutter) 1.5rem; }
.zo-newsletter-inner {
    max-width: calc(var(--zo-page-max) - 2 * var(--zo-gutter)); margin: 0 auto;
    display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center;
    padding: clamp(1.75rem, 4vw, 3rem);
    background: var(--zo-panel) url('../images/newsletter-lineart.webp?v=zo100') right center / auto 115% no-repeat;
    border: 1px solid var(--zo-rule-strong); border-radius: var(--zo-radius-lg);
}
.zo-newsletter h2 { margin: 0 0 .75rem; font-size: var(--zo-h2); }
.zo-newsletter-text p:not(.zo-kicker) { margin: 0; font-size: 1.0625rem; color: var(--zo-meta); }
.zo-newsletter-signup { display: flex; flex-direction: column; gap: .75rem; }
.zo-newsletter .newsletter-form { display: flex; flex-direction: column; gap: .6rem; margin: 0; max-width: none; }
.zo-newsletter .newsletter-form input[type="email"], .zo-widget-news .newsletter-form input[type="email"] { min-height: 50px; padding: 0 1rem; font: inherit; font-size: 1.0625rem; color: var(--zo-text); background: var(--zo-night); border: 1px solid var(--zo-rule-strong); border-radius: var(--zo-radius-sm); }
.zo-newsletter .newsletter-form input[type="email"]::placeholder { color: var(--zo-dim); }
.zo-newsletter .newsletter-form input[type="email"]:focus { border-color: var(--zo-gold); outline: none; }
.zo-newsletter .newsletter-form button, .zo-widget-news .newsletter-form button { min-height: 50px; padding: 0 1.25rem; font-family: var(--zo-ui); font-size: 1rem; font-weight: 600; letter-spacing: .04em; background: var(--zo-gold); color: var(--zo-night); border: 0; border-radius: var(--zo-radius-sm); cursor: pointer; }
.zo-newsletter .newsletter-form button:hover { background: #EBC37A; }
.zo-newsletter-note { text-transform: none; letter-spacing: 0; font-size: .875rem; }
.zo-newsletter .newsletter-message.success { color: #9FE0B5; }
.zo-newsletter .newsletter-message.error { color: #F6C9C9; }

/* --- Footer: the observatory log -------------------------------------------- */
.zo-footer { background: var(--zo-deep); border-top: 1px solid var(--zo-gold-soft); margin-top: 1.5rem; padding: clamp(2rem, 4vw, 3rem) var(--zo-gutter) clamp(1.5rem, 3vw, 2rem); }
.zo-footer-inner { max-width: calc(var(--zo-page-max) - 2 * var(--zo-gutter)); margin: 0 auto; }
.zo-log { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--zo-rule); }
.zo-log-row { display: grid; grid-template-columns: 3rem 11rem minmax(0, 1fr) auto; align-items: center; gap: .5rem 1rem; padding: .35rem 0; border-bottom: 1px solid var(--zo-rule); }
.zo-log-num { font-family: var(--zo-display); font-size: 1.0625rem; color: var(--zo-gold); font-variant-numeric: tabular-nums; }
.zo-log-label { margin: 0; font-size: var(--zo-size-meta); font-weight: 500; letter-spacing: var(--zo-track-meta); text-transform: uppercase; color: var(--zo-meta); }
.zo-log-links { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0 1.5rem; }
.zo-log-links a, .zo-log-social { display: inline-flex; align-items: center; gap: .4rem; min-height: var(--zo-tap); font-size: .9375rem; color: var(--zo-text); text-decoration: none; }
.zo-log-links a:hover, .zo-log-social:hover { color: var(--zo-gold); }
.zo-log-count { color: var(--zo-meta); font-variant-numeric: tabular-nums; font-size: .875rem; }
.zo-log-row--fine .zo-log-links a { color: var(--zo-meta); font-size: .875rem; }
.zo-log-row--fine .zo-log-links a:hover { color: var(--zo-text); }
.zo-log-close { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .5rem 1.5rem; margin: 1.25rem 0 0; }
.zo-log-brand { font-family: var(--zo-display); font-size: 1.375rem; color: var(--zo-text); text-decoration: none; display: inline-flex; align-items: center; min-height: var(--zo-tap); }
.zo-log-copy { margin: 0; font-size: .875rem; color: var(--zo-meta); }
.zo-footer-note { color: var(--zo-dim) !important; }

/* --- Search / 404 / index ---------------------------------------------------- */
.zo-search-head, .zo-notfound { padding: clamp(2rem, 4vw, 3rem) 0 1.5rem; }
.search-form { display: flex; gap: .5rem; flex-wrap: wrap; }
.search-form .search-field { min-height: var(--zo-tap); padding: 0 1rem; background: var(--zo-night); color: var(--zo-text); border: 1px solid var(--zo-rule-strong); border-radius: var(--zo-radius-sm); font: inherit; }
.search-form .search-submit, .search-form button { min-height: var(--zo-tap); padding: 0 1.25rem; background: var(--zo-gold); color: var(--zo-night); border: 0; border-radius: var(--zo-radius-sm); font-weight: 600; }

/* --- Responsive ---------------------------------------------------------------- */
@media (min-width: 1025px) {
    .zo-masthead .mobile-search-toggle, .zo-masthead .mobile-menu-toggle { display: none; }
}
@media (min-width: 1025px) and (max-width: 1200px) {
    .zo-masthead .main-navigation a { padding: 0 .55rem; letter-spacing: .1em; }
    .zo-masthead .main-navigation a::after { left: .55rem; right: .55rem; }
    .zo-brand-logo { height: 46px; }
}
@media (max-width: 1100px) {
    .zo-star-panel { width: 196px; }
    .zo-star-title { font-size: 1rem; }
}
@media (max-width: 1024px) {
    .zo-masthead-inner { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "brand actions" "search search"; min-height: 68px; }
    .zo-brand-logo { height: 42px; }
    .zo-masthead .main-navigation { grid-area: auto; display: block; justify-self: auto; }
    .zo-drawer-clip { display: block; position: fixed; inset: 0; overflow: hidden; pointer-events: none; z-index: 1000; }
    .zo-drawer-clip .main-navigation { position: absolute; pointer-events: auto; background: var(--zo-panel); }
    .zo-masthead .primary-menu, .zo-masthead .main-navigation ul { display: block; text-align: left; }
    .zo-masthead .main-navigation li { border-bottom: 1px solid var(--zo-rule); }
    .zo-masthead .main-navigation a { min-height: var(--zo-nav-tap); padding: 0 1.5rem; font-size: .9375rem; }
    .zo-masthead .main-navigation a::after { display: none; }
    .zo-masthead .header-actions { margin-left: auto; grid-column: 2; }
    .zo-masthead .mobile-menu-toggle.active { position: fixed; top: .75rem; right: .75rem; z-index: 1002; }
    .zo-single, .zo-archive-layout { grid-template-columns: minmax(0, 1fr); }
    .zo-sidebar { margin-top: 1rem; }
    .zo-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* ≤834px the star map becomes a numbered list: the stars stack as rows, the
   lines and the dotted sky go, each title keeps its number and category. */
@media (max-width: 834px) {
    .zo-chart { height: auto; background-image: none; padding: .25rem 1rem; }
    .zo-chart-lines { display: none; }
    .zo-star { position: static; width: auto; height: auto; border-bottom: 1px solid var(--zo-rule); }
    .zo-star:last-child { border-bottom: 0; }
    .zo-star-dot { display: none; }
    .zo-star-panel { position: relative; transform: none; width: auto; left: auto !important; right: auto !important; background: transparent; border: 0; box-shadow: none; padding: .9rem 0 .9rem 2.6rem; }
    .zo-star-num { float: none; position: absolute; left: 0; top: .9rem; font-size: 1.125rem; }
    .zo-star-title { font-size: 1.125rem; }
    .zo-legend { align-items: flex-start; flex-direction: column; gap: .25rem; }
    .zo-archive-head { grid-template-columns: minmax(0, 1fr); }
    .zo-constellation { max-width: 160px; justify-self: start; order: -1; }
    .zo-newsletter-inner { grid-template-columns: minmax(0, 1fr); background-size: auto 70%; background-position: right bottom; }
    .zo-log-row { grid-template-columns: 2.5rem minmax(0, 1fr); padding: .6rem 0; }
    .zo-log-row nav, .zo-log-social { grid-column: 2; }
}
@media (max-width: 640px) {
    .zo-cards { grid-template-columns: minmax(0, 1fr); }
    .zo-row { grid-template-columns: 76px minmax(0, 1fr); }
    .zo-row-thumb { width: 76px; }
    .zo-head-link { display: none; }
    .zo-article { padding: 1.1rem; border-radius: var(--zo-radius); }
    .zo-log-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1rem; }
}
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }


/* --- Trust pages (1.1.0, 2026-09-30): head band + reading column + help card --- */
.zo-trust { max-width: var(--zo-content-max); padding-top: clamp(1.5rem, 3vw, 2.5rem); }
.zo-page-head { position: relative; margin: 0 0 1.75rem; padding: clamp(1.5rem, 3vw, 2.25rem) clamp(1.25rem, 3vw, 2rem); background: var(--zo-panel); border: 1px solid var(--zo-rule); border-radius: var(--zo-radius-lg); overflow: hidden; }
.zo-page-head::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .5;
    background-image: radial-gradient(1.5px 1.5px at 12% 22%, var(--zo-gold-soft) 50%, transparent 51%), radial-gradient(1px 1px at 78% 30%, var(--zo-gold-soft) 50%, transparent 51%), radial-gradient(1.5px 1.5px at 88% 72%, var(--zo-gold-soft) 50%, transparent 51%), radial-gradient(1px 1px at 36% 80%, var(--zo-gold-soft) 50%, transparent 51%), radial-gradient(1px 1px at 58% 12%, var(--zo-gold-soft) 50%, transparent 51%); }
.zo-page-head > * { position: relative; }
.zo-page-head .zo-page-title { margin: 0 0 .75rem; text-wrap: balance; }
.zo-page-standfirst { margin: 0 0 .9rem; font-size: 1.125rem; line-height: 1.6; color: var(--zo-meta); max-width: 60ch; }
.zo-page-updated { margin: 0; font-family: var(--zo-ui); font-size: var(--zo-size-meta); letter-spacing: .04em; color: var(--zo-dim); }
.zo-page-body { font-size: var(--zo-size-body); line-height: var(--zo-lh-body); }
.zo-page-body h2 { margin: 2.25rem 0 .75rem; font-size: var(--zo-h2); scroll-margin-top: 1.5rem; }
.zo-page-body h3 { margin: 1.75rem 0 .6rem; font-size: var(--zo-h3); scroll-margin-top: 1.5rem; }
.zo-page-body > :first-child { margin-top: 0; }
.zo-page-body ul, .zo-page-body ol { padding-left: 1.4rem; }
.zo-page-body li { margin: .35rem 0; }
.zo-contact-card { margin: 1.5rem 0 0; padding: 1.5rem; background: var(--zo-raised); border: 1px solid var(--zo-rule-strong); border-radius: var(--zo-radius); }
.zo-contact-card .zo-kicker { margin: 0 0 .5rem; }
.zo-contact-lead { margin: 0 0 1rem; }
.zo-contact-email { display: inline-flex; align-items: center; min-height: var(--zo-tap); font-family: var(--zo-display); font-size: 1.5rem; color: var(--zo-gold) !important; text-decoration: none; word-break: break-all; }
.zo-contact-email:hover { text-decoration: underline; }
.zo-contact-card .zo-meta { margin: .5rem 0 0; }
.zo-page-help { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .5rem 1.5rem; align-items: center; margin: 2.5rem 0 0; padding: 1.25rem 1.5rem; background: var(--zo-panel); border: 1px solid var(--zo-rule); border-left: 3px solid var(--zo-gold); border-radius: var(--zo-radius); }
.zo-page-help .zo-kicker { grid-column: 1 / -1; margin: 0; }
.zo-page-help p:not(.zo-kicker) { margin: 0; color: var(--zo-meta); }
@media (max-width: 640px) { .zo-page-help { grid-template-columns: minmax(0, 1fr); } }
.zo-btn { display: inline-flex; align-items: center; justify-content: center; min-height: var(--zo-tap); padding: 0 1.25rem; border-radius: var(--zo-radius-sm); font-family: var(--zo-ui); font-weight: 600; font-size: .9375rem; background: var(--zo-gold); color: var(--zo-night) !important; text-decoration: none !important; white-space: nowrap; }
.zo-btn:hover { background: var(--zo-text); }


/* 1.1.1: the contents card on pages uses the same list styles as articles. */
.zo-page-body .zo-toc-list, .zo-page-body .zo-toc-sub { list-style: none; margin: 0; padding: 0; }
.zo-page-body .zo-toc-list { padding: .4rem 1.1rem .7rem; }
.zo-page-body .zo-toc-list > li { margin: 0; break-inside: avoid; border-bottom: 1px solid var(--zo-rule); }
.zo-page-body .zo-toc-list > li:last-child { border-bottom: 0; }
.zo-page-body .zo-toc-list li::marker { content: none; }
.zo-page-body .zo-toc-list > li > a { display: flex; gap: .75rem; align-items: baseline; min-height: 44px; padding: .55rem 0; font-size: .9875rem; line-height: 1.4; color: var(--zo-text); text-decoration: none; }
.zo-page-body .zo-toc-sub { margin: -.35rem 0 .45rem 2.5rem; }
.zo-page-body .zo-toc-sub a { display: block; min-height: 36px; padding: .4rem 0; font-size: .9rem; color: var(--zo-meta); text-decoration: none; }
.zo-page-body .zo-toc a:hover .zo-toc-text, .zo-page-body .zo-toc-sub a:hover { color: var(--zo-gold); }
@media (min-width: 900px) { .zo-page-body .zo-toc-list--cols { columns: 2; column-gap: 2rem; } }

/* 1.1.1: the Inedit contact form on the dark theme. */
.zo-page-body .inedit-contact-form-wrapper { margin: 1.5rem 0 0; padding: clamp(1.25rem, 3vw, 1.75rem); background: var(--zo-panel) !important; border: 1px solid var(--zo-rule) !important; border-radius: var(--zo-radius) !important; box-shadow: none !important; color: var(--zo-text) !important; max-width: none !important; }
.zo-page-body .inedit-contact-form-wrapper label { color: var(--zo-text) !important; font-family: var(--zo-ui); font-weight: 500; }
.zo-page-body .inedit-contact-form-wrapper input, .zo-page-body .inedit-contact-form-wrapper textarea, .zo-page-body .inedit-contact-form-wrapper select {
    background: var(--zo-night) !important; color: var(--zo-text) !important; border: 1px solid var(--zo-rule-strong) !important; border-radius: var(--zo-radius-sm) !important; min-height: var(--zo-tap); font: inherit; }
.zo-page-body .inedit-contact-form-wrapper input:focus, .zo-page-body .inedit-contact-form-wrapper textarea:focus { outline: 2px solid var(--zo-gold) !important; outline-offset: 1px; }
.zo-page-body .inedit-contact-form-wrapper button, .zo-page-body .inedit-contact-form-wrapper input[type="submit"] { background: var(--zo-gold) !important; color: var(--zo-night) !important; border: 0 !important; border-radius: var(--zo-radius-sm) !important; min-height: var(--zo-tap); font-family: var(--zo-ui); font-weight: 600; padding: 0 1.5rem; cursor: pointer; }


/* --- Page content on the dark ground (2026-09-30) ---------------------------------
   main.css colours bold/italic/small headings and table text in dark ink, which
   vanished on night (e.g. "Display Advertising" on Advertiser Disclosure).
   Leftover Elementor icons are unsized SVGs that grew to page width (Terms). */
.zo-page-body strong, .zo-page-body b, .zo-page-body em, .zo-page-body i,
.zo-page-body h4, .zo-page-body h5, .zo-page-body h6,
.zo-page-body li, .zo-page-body td, .zo-page-body th, .zo-page-body dt, .zo-page-body dd,
.zo-page-body blockquote, .zo-page-body figcaption { color: var(--zo-text); }
.zo-page-body strong, .zo-page-body b { font-weight: 600; }
.zo-page-body th { background: var(--zo-raised); }
.zo-page-body td, .zo-page-body th { border-color: var(--zo-rule-strong); }
.zo-page-body svg:not([width]):not([class*="zo-"]) { width: 1em; height: 1em; vertical-align: -0.125em; fill: currentColor; }
.zo-page-body img { max-width: 100%; height: auto; border-radius: var(--zo-radius-sm); }

/* Meet the Team (1.1.3): small round portraits beside each bio, not full-width photos. */
.zo-page-body .zo-team { display: grid; gap: 28px; margin-top: 32px; }
.zo-page-body .zo-team-card { display: grid; grid-template-columns: 104px 1fr; gap: 20px; align-items: start; padding-top: 28px; border-top: 1px solid var(--zo-rule-strong); }
.zo-page-body .zo-team-card:first-child { padding-top: 0; border-top: 0; }
.zo-page-body img.zo-team-photo { width: 104px; height: 104px; object-fit: cover; object-position: 50% 18%; border-radius: 50%; border: 2px solid var(--zo-gold-soft); margin: 0; }
.zo-page-body .zo-team-text h2 { margin: 0 0 6px; }
.zo-page-body .zo-team-text p { margin: 0; }
@media (max-width: 520px) {
    .zo-page-body .zo-team-card { grid-template-columns: 72px 1fr; gap: 14px; }
    .zo-page-body img.zo-team-photo { width: 72px; height: 72px; }
}
