/*
Theme Name: Horoscop.space Premium Light
Theme URI: https://horoscop.space/
Author: Horoscop.space
Description: Jasny, premium, kosmiczny motyw Horoscop.space. Warstwa prezentacyjna współpracująca z istniejącymi modułami astrologicznymi i publikacyjnymi.
Version: 1.1.1
Requires at least: 6.5
Requires PHP: 8.1
Text Domain: horoscop-space
*/

:root {
  --hs-bg: #fbfaf8;
  --hs-bg-warm: #fff9f2;
  --hs-paper: rgba(255,255,255,.92);
  --hs-paper-strong: #ffffff;
  --hs-ink: #151528;
  --hs-ink-soft: #5f6073;
  --hs-ink-faint: #89899a;
  --hs-gold: #c78b2b;
  --hs-gold-deep: #a96e19;
  --hs-gold-soft: #f4ddb5;
  --hs-gold-pale: #fff5df;
  --hs-rose: #dba9c1;
  --hs-lilac: #c7b8e7;
  --hs-blue: #b9d3ea;
  --hs-border: rgba(126, 102, 78, .14);
  --hs-shadow: 0 18px 60px rgba(63, 45, 29, .08);
  --hs-shadow-soft: 0 8px 28px rgba(63,45,29,.06);
  --hs-radius-xl: 28px;
  --hs-radius-lg: 20px;
  --hs-radius-md: 15px;
  --hs-max: 1240px;
  --hs-serif: Georgia, 'Times New Roman', serif;
  --hs-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  color-scheme: light;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background:
    radial-gradient(circle at 8% 14%, rgba(242, 213, 224, .34), transparent 23rem),
    radial-gradient(circle at 93% 12%, rgba(194, 211, 241, .34), transparent 24rem),
    linear-gradient(180deg, #fff 0%, var(--hs-bg) 48%, #fffdfa 100%);
  color: var(--hs-ink);
  font-family: var(--hs-sans);
  font-size: 16px;
  line-height: 1.58;
  -webkit-font-smoothing: antialiased;
}
body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: .58;
  background-image:
    radial-gradient(circle at 12% 18%, rgba(198,139,43,.18) 0 1px, transparent 1.5px),
    radial-gradient(circle at 76% 8%, rgba(199,139,43,.14) 0 1px, transparent 1.5px),
    radial-gradient(circle at 61% 32%, rgba(154,132,194,.16) 0 1px, transparent 1.5px);
  background-size: 110px 110px, 170px 170px, 220px 220px;
}
a { color: inherit; text-decoration: none; }
a:hover { color: var(--hs-gold-deep); }
img { max-width: 100%; height: auto; }
button, input, select { font: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 3px solid rgba(199,139,43,.42); outline-offset: 3px; }

.hs-container { width: min(calc(100% - 36px), var(--hs-max)); margin-inline: auto; }
.hs-section { margin-top: 18px; }
.hs-card { background: var(--hs-paper); border: 1px solid var(--hs-border); border-radius: var(--hs-radius-lg); box-shadow: var(--hs-shadow-soft); backdrop-filter: blur(10px); }
.hs-eyebrow { margin: 0 0 12px; color: #6e6872; font-size: .68rem; font-weight: 800; letter-spacing: .32em; text-transform: uppercase; }
.hs-title { margin: 0; font-family: var(--hs-serif); font-weight: 500; letter-spacing: -.025em; line-height: 1.02; }
.hs-muted { color: var(--hs-ink-soft); }
.hs-gold { color: var(--hs-gold-deep); }
.hs-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 46px; padding: 0 24px; border: 1px solid transparent; border-radius: 999px; font-weight: 750; transition: transform .18s ease, box-shadow .18s ease, background .18s ease; }
.hs-btn:hover { transform: translateY(-1px); }
.hs-btn--gold { color: #fff; background: linear-gradient(135deg, #dca64c, #b8781f); box-shadow: 0 10px 24px rgba(178,116,31,.22); }
.hs-btn--ghost { color: #343248; border-color: rgba(62,51,42,.25); background: rgba(255,255,255,.62); }
.hs-arrow { font-size: 1.15em; transform: translateY(-1px); }

/* Header */
.hs-header { position: sticky; top: 0; z-index: 40; background: rgba(255,255,255,.9); border-bottom: 1px solid rgba(128,106,80,.11); backdrop-filter: blur(18px); }
.hs-header-row { display: grid; grid-template-columns: minmax(240px, 1fr) auto minmax(240px, 1fr); align-items: center; gap: 22px; min-height: 72px; }
.hs-brand { display: inline-flex; align-items: center; gap: 12px; min-width: 0; }
.hs-brand-mark { position: relative; display: grid; place-items: center; width: 43px; height: 43px; flex: 0 0 43px; border: 1px solid rgba(199,139,43,.5); border-radius: 50%; color: var(--hs-gold-deep); font-family: var(--hs-serif); font-size: 24px; }
.hs-brand-mark::before, .hs-brand-mark::after { content:''; position:absolute; inset:6px; border:1px solid rgba(199,139,43,.28); border-radius:50%; }
.hs-brand-mark::after { inset:12px -5px; border-color: rgba(199,139,43,.21); transform: rotate(45deg); }
.hs-brand-copy { display: grid; line-height: 1; }
.hs-brand-name { font-family: var(--hs-serif); font-size: 1.34rem; letter-spacing: .035em; }
.hs-brand-tagline { margin-top: 5px; color: #85808a; font-size: .47rem; font-weight: 750; letter-spacing: .38em; text-transform: uppercase; }
.hs-nav { display: flex; align-items: center; justify-content: center; gap: 27px; font-size: .82rem; white-space: nowrap; }
.hs-nav a { color: #2d2b3b; }
.hs-nav a:hover { color: var(--hs-gold-deep); }
.hs-header-actions { display:flex; align-items:center; justify-content:flex-end; gap:10px; }
.hs-icon-btn { display:grid; place-items:center; width:42px; height:42px; border:0; border-radius:50%; background:transparent; color:#302f40; }
.hs-icon-btn:hover { background:#f7f1e8; }
.hs-language { position:relative; }
.hs-language select { min-height:42px; padding:0 30px 0 12px; border:1px solid rgba(87,72,57,.12); border-radius:999px; color:#3d3a47; background:#fff; appearance:none; }
.hs-language::after { content:'⌄'; position:absolute; right:11px; top:8px; pointer-events:none; color:#746c6b; }
.hs-mobile-toggle { display:none; }

/* Hero */
.hs-hero-shell { position:relative; overflow:hidden; min-height:440px; border-radius:0 0 28px 28px; background:linear-gradient(100deg,#fff 0%,#fff 41%,#fffaf7 61%,#f4eefb 100%); isolation:isolate; }
.hs-hero-shell::after { content:''; position:absolute; z-index:0; inset:auto auto -90px -65px; width:210px; height:210px; border:1px solid rgba(199,139,43,.18); border-radius:50%; box-shadow:0 0 0 22px rgba(199,139,43,.03),0 0 0 49px rgba(199,139,43,.025); }
.hs-hero-backdrop { position:absolute; z-index:0; inset:0 0 0 auto; width:min(62vw,1020px); overflow:hidden; pointer-events:none; }
.hs-hero-backdrop::before { content:''; position:absolute; z-index:2; inset:0; background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.94) 12%,rgba(255,255,255,.54) 27%,rgba(255,255,255,.10) 50%,rgba(255,255,255,0) 72%),linear-gradient(0deg,rgba(255,255,255,.34),rgba(255,255,255,0) 34%); pointer-events:none; }
.hs-hero-backdrop::after { content:''; position:absolute; z-index:3; inset:0; background:radial-gradient(circle at 73% 42%,rgba(255,238,204,.06),rgba(255,255,255,0) 48%); pointer-events:none; }
.hs-hero-img { position:absolute; inset:-2% -1% -3% -7%; width:108%; height:105%; object-fit:cover; object-position:center right; filter:saturate(.96) brightness(1.045) contrast(.98); -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.22) 12%,rgba(0,0,0,.82) 30%,#000 48%,#000 100%); mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.22) 12%,rgba(0,0,0,.82) 30%,#000 48%,#000 100%); }
.hs-hero { position:relative; z-index:1; min-height:440px; }
.hs-hero-copy { position:relative; z-index:4; width:min(55%,690px); padding:52px 0 42px 18px; }
.hs-hero h1 { max-width:690px; font-size:clamp(2.75rem,5.2vw,5.15rem); }
.hs-hero h1 .hs-gold { display:block; }
.hs-hero-lead { max-width:610px; margin:18px 0 0; color:#676474; font-size:1.02rem; line-height:1.55; }
.hs-hero-actions { display:flex; gap:14px; flex-wrap:wrap; margin-top:26px; }
.hs-trust-row { display:flex; gap:28px; flex-wrap:wrap; margin-top:28px; color:#535161; font-size:.74rem; }
.hs-trust-item { display:flex; align-items:center; gap:9px; }
.hs-trust-icon { display:grid; place-items:center; width:32px; height:32px; border-radius:50%; color:var(--hs-gold-deep); background:#fbf1e2; }

/* Zodiac strip */
.hs-zodiac-panel { position:relative; z-index:3; margin-top:-4px; padding:20px 22px 16px; }
.hs-zodiac-panel h2 { margin:0 0 17px; font-family:var(--hs-serif); font-size:1.32rem; font-weight:500; }
.hs-zodiac-grid { display:grid; grid-template-columns:repeat(12,minmax(70px,1fr)); gap:8px; }
.hs-zodiac { display:grid; justify-items:center; gap:7px; min-width:0; padding:3px 2px 0; border-radius:14px; text-align:center; transition: transform .18s ease, background .18s ease; }
.hs-zodiac:hover { transform:translateY(-2px); background:linear-gradient(180deg,rgba(255,249,239,.84),rgba(255,255,255,0)); }
.hs-zodiac-icon { position:relative; display:grid; place-items:center; width:64px; height:64px; border:1px solid rgba(199,139,43,.30); border-radius:50%; color:#b7781c; background:radial-gradient(circle at 50% 38%,#fff 0%,#fffaf2 63%,#f8ead3 100%); box-shadow: inset 0 0 0 6px rgba(255,255,255,.75), 0 7px 20px rgba(160,109,32,.07); font-family:'Times New Roman',serif; font-size:2.05rem; line-height:1; }
.hs-zodiac-icon::before { content:''; position:absolute; inset:7px; border:1px dashed rgba(199,139,43,.18); border-radius:50%; }
.hs-zodiac-icon::after { content:'✦'; position:absolute; top:-10px; color:#cf983f; font-size:.62rem; text-shadow:0 0 8px rgba(225,184,112,.45); }
.hs-zodiac strong { font-family:var(--hs-serif); font-size:.84rem; font-weight:600; }
.hs-zodiac small { color:#777381; font-size:.62rem; white-space:nowrap; }

/* Feature cards */
.hs-feature-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.hs-feature { overflow:hidden; min-height:164px; }
.hs-feature-art { height:98px; background-repeat:no-repeat; background-size:cover; background-position:center; border-bottom:1px solid rgba(112,91,71,.08); }
.hs-feature--love .hs-feature-art { background-image:url('../img/premium-light/feature-love.webp'); }
.hs-feature--career .hs-feature-art { background-image:url('../img/premium-light/feature-career.webp'); }
.hs-feature--finance .hs-feature-art { background-image:url('../img/premium-light/feature-finance.webp'); }
.hs-feature--energy .hs-feature-art { background-image:url('../img/premium-light/feature-energy.webp'); }
.hs-feature-body { display:grid; grid-template-columns:1fr auto; gap:4px 12px; align-items:center; padding:13px 16px 14px; }
.hs-feature h3 { margin:0; font-family:var(--hs-serif); font-size:1rem; font-weight:500; }
.hs-feature p { margin:0; color:#737080; font-size:.72rem; }
.hs-mini-arrow { grid-row:1/3; grid-column:2; display:grid; place-items:center; width:30px; height:30px; border-radius:50%; background:#f7f0e6; color:#5f5861; }

/* Sky + articles */
.hs-content-grid { display:grid; grid-template-columns: .72fr 1.55fr; gap:14px; }
.hs-sky { padding:18px; }
.hs-sky h2, .hs-articles h2 { margin:0 0 14px; font-family:var(--hs-serif); font-size:1.17rem; font-weight:500; }
.hs-sky-layout { display:grid; grid-template-columns:1fr 150px; gap:10px; align-items:center; }
.hs-sky-list { display:grid; gap:9px; }
.hs-sky-row { display:grid; grid-template-columns:22px 1fr auto; gap:8px; align-items:center; min-height:26px; color:#555262; font-size:.72rem; }
.hs-sky-row strong { color:#2b2939; font-weight:750; }
.hs-sky-row span:last-child { color:#777381; text-align:right; }
.hs-moon { position:relative; width:132px; height:132px; margin:auto; border-radius:50%; background: radial-gradient(circle at 35% 30%,#fffef8 0 12%,#f2eee6 28%,#ddd9d2 55%,#f7f5ef 73%,#d3d1ce 100%); box-shadow:0 0 0 10px rgba(244,228,201,.21), 0 14px 32px rgba(132,107,74,.16); }
.hs-moon::before, .hs-moon::after { content:''; position:absolute; border-radius:50%; background:rgba(169,164,154,.18); }
.hs-moon::before { width:28px; height:18px; left:29px; top:29px; box-shadow:46px 16px 0 -4px rgba(169,164,154,.14), 20px 50px 0 4px rgba(169,164,154,.12); }
.hs-moon::after { inset:-18px; border:1px solid rgba(199,139,43,.16); background:transparent; }
.hs-sky-foot { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:14px; padding-top:12px; border-top:1px solid rgba(94,77,61,.1); }
.hs-sky-location { color:#7a7580; font-size:.68rem; }
.hs-location-btn { border:0; padding:8px 11px; border-radius:999px; color:#8b5a18; background:#fff4df; font-weight:750; font-size:.66rem; }
.hs-location-btn[disabled] { opacity:.5; cursor:wait; }
.hs-sky-status { margin-top:9px; color:#8a8690; font-size:.64rem; }
.hs-articles { padding:18px; }
.hs-article-grid { display:grid; grid-template-columns:1.5fr .75fr; grid-template-rows:1fr 1fr; gap:10px; min-height:242px; }
.hs-article { position:relative; overflow:hidden; border-radius:14px; border:1px solid rgba(126,102,78,.10); background:#fff; }
.hs-article:first-child { grid-row:1/3; min-height:242px; }
.hs-article-visual { position:absolute; inset:0; background-repeat:no-repeat; background-size:cover; background-position:center; }
.hs-article:first-child .hs-article-visual { background-image:linear-gradient(180deg,rgba(255,255,255,0) 36%,rgba(255,255,255,.94) 86%),url('../img/premium-light/article-main.webp'); }
.hs-article:nth-child(2) .hs-article-visual { background-image:linear-gradient(180deg,rgba(255,255,255,0) 28%,rgba(255,255,255,.94) 88%),url('../img/premium-light/article-moon.webp'); }
.hs-article:nth-child(3) .hs-article-visual { background-image:linear-gradient(180deg,rgba(255,255,255,0) 28%,rgba(255,255,255,.94) 88%),url('../img/premium-light/article-ascendant.webp'); }
.hs-article-content { position:absolute; inset:auto 0 0; z-index:2; padding:14px 16px; }
.hs-article-kicker { display:inline-block; margin-bottom:4px; padding:3px 7px; border-radius:999px; color:#80591f; background:#fff2d9; font-size:.54rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.hs-article h3 { margin:0; font-family:var(--hs-serif); font-size:1rem; font-weight:500; line-height:1.15; }
.hs-article:first-child h3 { font-size:1.25rem; }
.hs-article p { margin:5px 0 0; color:#6f6c78; font-size:.68rem; line-height:1.35; }

/* Trust strip / footer */
.hs-proof { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; padding:22px 6px 28px; }
.hs-proof-item { display:flex; align-items:center; justify-content:center; gap:12px; color:#565261; }
.hs-proof-icon { color:#c88d2e; font-size:1.75rem; }
.hs-proof strong { display:block; font-family:var(--hs-serif); color:#6f501d; font-size:.92rem; font-weight:500; }
.hs-proof small { display:block; color:#807b85; font-size:.64rem; }
.hs-footer { margin-top:24px; padding:32px 0 24px; border-top:1px solid rgba(125,101,75,.12); background:rgba(255,252,248,.82); }
.hs-footer-grid { display:grid; grid-template-columns:1.35fr repeat(3,1fr); gap:28px; }
.hs-footer h3 { margin:0 0 9px; font-family:var(--hs-serif); font-size:.95rem; font-weight:500; }
.hs-footer p, .hs-footer a { color:#77727c; font-size:.72rem; }
.hs-footer-nav { display:grid; gap:7px; }
.hs-footer-bottom { display:flex; justify-content:space-between; gap:16px; margin-top:26px; padding-top:16px; border-top:1px solid rgba(125,101,75,.10); color:#918c93; font-size:.64rem; }

/* Standard WP content */
.hs-standard { padding:34px 0 64px; }
.hs-prose { max-width:860px; margin:auto; padding:clamp(22px,4vw,42px); }
.hs-prose h1 { font-family:var(--hs-serif); font-size:clamp(2rem,4vw,3.5rem); font-weight:500; line-height:1.05; }
.hs-prose h2,.hs-prose h3 { font-family:var(--hs-serif); font-weight:500; }
.hs-prose a { color:var(--hs-gold-deep); text-decoration:underline; text-underline-offset:2px; }

/* Search overlay */
.hs-search-overlay { position:fixed; inset:0; z-index:100; display:none; place-items:start center; padding-top:15vh; background:rgba(40,31,36,.22); backdrop-filter:blur(12px); }
.hs-search-overlay.is-open { display:grid; }
.hs-search-box { width:min(620px,calc(100% - 32px)); padding:18px; }
.hs-search-form { display:grid; grid-template-columns:1fr auto; gap:8px; }
.hs-search-form input { min-height:48px; padding:0 16px; border:1px solid rgba(92,72,52,.18); border-radius:999px; background:#fff; }

@media (max-width: 1080px) {
  .hs-header-row { grid-template-columns:1fr auto; }
  .hs-nav { display:none; position:absolute; left:18px; right:18px; top:66px; flex-direction:column; align-items:stretch; gap:0; padding:12px; border:1px solid var(--hs-border); border-radius:16px; background:#fff; box-shadow:var(--hs-shadow); }
  .hs-nav.is-open { display:flex; }
  .hs-nav a { padding:12px 10px; }
  .hs-mobile-toggle { display:grid; }
  .hs-header-actions .hs-btn { display:none; }
  .hs-zodiac-grid { overflow-x:auto; grid-template-columns:repeat(12,84px); padding-bottom:6px; scrollbar-width:thin; }
  .hs-feature-grid { grid-template-columns:repeat(2,1fr); }
}

@media (max-width: 820px) {
  .hs-container { width:min(calc(100% - 24px),var(--hs-max)); }
  .hs-header-row { min-height:64px; }
  .hs-brand-tagline { display:none; }
  .hs-brand-name { font-size:1.08rem; }
  .hs-language { display:none; }
  .hs-hero-shell { min-height:650px; border-radius:0 0 22px 22px; }
  .hs-hero { min-height:650px; }
  .hs-hero-copy { width:100%; padding:38px 8px 300px; }
  .hs-hero h1 { font-size:clamp(2.55rem,10vw,4.1rem); max-width:620px; }
  .hs-hero-backdrop { inset:auto -8% 0 18%; width:90%; height:340px; }
  .hs-hero-backdrop::before { background:linear-gradient(180deg,#fff 0%,rgba(255,255,255,.66) 13%,rgba(255,255,255,.04) 44%,rgba(255,255,255,0) 72%); }
  .hs-hero-img { inset:-6% -4% -4% -4%; width:108%; height:110%; object-position:center 20%; -webkit-mask-image:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.55) 15%,#000 36%,#000 100%); mask-image:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.55) 15%,#000 36%,#000 100%); }
  .hs-trust-row { gap:14px; }
  .hs-content-grid { grid-template-columns:1fr; }
  .hs-proof { grid-template-columns:repeat(2,1fr); }
  .hs-footer-grid { grid-template-columns:1fr 1fr; }
}

@media (max-width: 560px) {
  .hs-header-actions { gap:2px; }
  .hs-brand-mark { width:38px; height:38px; flex-basis:38px; }
  .hs-hero-copy { padding-top:30px; }
  .hs-hero-lead { font-size:.92rem; }
  .hs-hero-actions { display:grid; grid-template-columns:1fr; }
  .hs-btn { width:100%; }
  .hs-zodiac-panel { padding-inline:14px; }
  .hs-feature-grid { grid-template-columns:1fr; }
  .hs-feature { display:grid; grid-template-columns:42% 58%; min-height:116px; }
  .hs-feature-art { height:auto; min-height:116px; border-bottom:0; border-right:1px solid rgba(112,91,71,.08); }
  .hs-sky-layout { grid-template-columns:1fr 112px; }
  .hs-sky .hs-moon { width:100px; height:100px; }
  .hs-article-grid { grid-template-columns:1fr; grid-template-rows:auto; min-height:0; }
  .hs-article, .hs-article:first-child { grid-row:auto; min-height:170px; }
  .hs-proof { grid-template-columns:1fr; align-items:start; }
  .hs-proof-item { justify-content:flex-start; padding-left:14px; }
  .hs-footer-grid { grid-template-columns:1fr; }
  .hs-footer-bottom { flex-direction:column; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
}

/* RTL: Arabic keeps the same premium composition without mirroring the artwork itself. */
[dir="rtl"] .hs-hero-copy,
[dir="rtl"] .hs-footer,
[dir="rtl"] .hs-prose { text-align:right; }
[dir="rtl"] .hs-header-actions { justify-content:flex-start; }
[dir="rtl"] .hs-brand { direction:ltr; }
[dir="rtl"] .hs-hero-backdrop { transform:scaleX(-1); }
[dir="rtl"] .hs-sky-row { grid-template-columns:auto 1fr 22px; }
[dir="rtl"] .hs-sky-row > :first-child { grid-column:3; grid-row:1; }
[dir="rtl"] .hs-sky-row > strong { grid-column:2; grid-row:1; }
[dir="rtl"] .hs-sky-row > :last-child { grid-column:1; grid-row:1; text-align:left; }

/* 1.1.5 — restore the established menu hierarchy inside Premium Light. */
.hs-header { overflow: visible; }
.hs-header-row { position: relative; overflow: visible; }
.hs-header .site-nav { position: static; justify-self: center; z-index: 80; }
.hs-header .site-nav__list { display:flex; align-items:center; gap:4px; margin:0; padding:0; list-style:none; }
.hs-header .site-nav__list > li { position:relative; }
.hs-header .site-nav__list > li > a { display:flex; align-items:center; min-height:44px; padding:0 11px; border-radius:999px; color:#2d2b3b; font-size:.82rem; white-space:nowrap; }
.hs-header .site-nav__list > li > a:hover,
.hs-header .site-nav__list > li:focus-within > a,
.hs-header .site-nav__list > .current-menu-item > a,
.hs-header .site-nav__list > .current-menu-ancestor > a { color:var(--hs-gold-deep); background:#fff8ed; }
.hs-header .site-nav__list > .menu-item-has-children > a::after { content:'⌄'; margin-inline-start:6px; color:#8c7b69; font-size:.72rem; }
.hs-header .site-nav .sub-menu { position:absolute; z-index:120; top:100%; left:0; display:none; min-width:250px; margin:0; padding:9px; list-style:none; border:1px solid var(--hs-border); border-radius:16px; background:#fff; box-shadow:0 20px 55px rgba(65,46,28,.14); }
.hs-header .site-nav li:hover > .sub-menu { display:flex; flex-direction:column; }
/* 1.2.7 — :focus-within is a no-JS fallback only. With the script active the
   JS state machine owns open/closed, otherwise a submenu opened by keyboard or
   by the disclosure button could never be dismissed with Escape: focus stays
   inside the item, so this rule kept forcing it visible (WCAG 2.2 1.4.13). */
.hs-header .site-nav:not(.hs-nav-enhanced) li:focus-within > .sub-menu { display:flex; flex-direction:column; }
.hs-header .site-nav .sub-menu a { display:block; padding:9px 11px; border-radius:10px; color:#383443; font-size:.78rem; white-space:nowrap; }
.hs-header .site-nav .sub-menu a:hover { color:var(--hs-gold-deep); background:#fff8ed; }
.hs-header .site-nav .sub-menu--zodiac,
.hs-header .site-nav__list > li:nth-child(2) > .sub-menu { width:360px; flex-flow:row wrap; }
.hs-header .site-nav .sub-menu--zodiac > li,
.hs-header .site-nav__list > li:nth-child(2) > .sub-menu > li { width:50%; }
.hs-header .nav-mega-trigger { position:static !important; }
.hs-header .nav-mega { z-index:125; top:100%; border-color:var(--hs-border); background:#fff; box-shadow:0 24px 65px rgba(65,46,28,.14); }
.hs-header .nav-mega__intro { background:linear-gradient(145deg,#fff9ef,#f8f1ff); }
.hs-header .nav-mega__column a:hover { background:#fff8ed; }

/* 1.2.7.2 — readable astronomical dashboard, one truthful live phase illustration. */
.hs-sky, .home .hs-card.hs-sky { border:1px solid #c7d2e7; background:linear-gradient(145deg,#f7faff 0%,#f1f3ff 57%,#fff8f0 100%); box-shadow:0 18px 46px rgba(31,44,79,.12); }
.hs-sky > h2 { color:#202a4b; font-weight:700; letter-spacing:.01em; }
.hs-sky-layout { grid-template-columns:minmax(0,1fr) minmax(104px,138px); gap:14px; }
.hs-sky-list { gap:7px; min-width:0; }
.hs-sky-row { grid-template-columns:22px minmax(0,1fr) minmax(45px,auto); min-height:36px; padding:7px 9px; border:1px solid #dce4f2; border-radius:10px; background:rgba(255,255,255,.80); color:#37415e; font-size:.73rem; line-height:1.3; }
.hs-sky-row > :first-child { color:#4f5aa2; font-size:1.02rem; }
.hs-sky-row strong { min-width:0; color:#202941; font-weight:750; overflow-wrap:anywhere; }
.hs-sky-row span:last-child { color:#344274; font-weight:650; text-align:end; overflow-wrap:anywhere; }
.hs-moon { isolation:isolate; display:grid; place-items:center; width:min(100%,132px); height:auto; aspect-ratio:1; border:1px solid #56658e; border-radius:50%; margin:auto; background:radial-gradient(circle at 42% 34%,#354779,#111c3b 72%); box-shadow:0 0 0 8px rgba(104,118,190,.13), 0 0 30px rgba(81,97,182,.24), 0 14px 26px rgba(25,34,70,.24); }
.hs-moon::before { content:''; position:absolute; inset:0; border-radius:50%; background:radial-gradient(circle at 52% 40%,transparent 47%,rgba(5,10,28,.35) 100%); pointer-events:none; width:auto; height:auto; left:0; top:0; box-shadow:none; }
.hs-moon::after { content:''; position:absolute; inset:-13px; border:1px solid rgba(101,112,173,.27); background:none; border-radius:50%; pointer-events:none; }
.hs-moon-art { display:block; width:92%; height:92%; }
.hs-moon-art svg { width:100%; height:100%; filter:drop-shadow(0 2px 6px rgba(255,227,163,.17)); }
.hs-moon-loading { display:grid; place-items:center; width:100%; height:100%; color:#e8ddc2; font-size:2rem; font-weight:700; letter-spacing:.12em; }
.hs-moon-cycle { margin-top:17px; padding-top:15px; border-top:1px solid #cbd5e9; }
.hs-moon-cycle-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:13px; }
.hs-moon-cycle-head h3 { margin:0; color:#202a4b; font-family:var(--hs-serif); font-size:1.05rem; font-weight:650; }
.hs-moon-cycle-current { max-width:55%; padding:5px 9px; border:1px solid #c8d4ee; border-radius:20px; background:#fff; color:#2d3d7b; font-size:.72rem; font-weight:750; line-height:1.4; text-align:end; }
.hs-moon-phases { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
.hs-moon-phase { display:grid; grid-template-rows:40px 1fr; justify-items:center; align-items:center; gap:7px; min-width:0; min-height:83px; padding:8px 5px 9px; border:1px solid #d8e0ef; border-radius:13px; background:#fff; color:#37415d; text-align:center; transition:background .22s ease,color .22s ease,border-color .22s ease,transform .22s ease,box-shadow .22s ease; }
.hs-moon-phase.is-current { border-color:#4d55a0; background:linear-gradient(155deg,#283862,#474b8c); color:#fff; box-shadow:0 7px 17px rgba(41,49,102,.20); transform:translateY(-2px); }
.hs-moon-phase-label { max-width:100%; color:inherit; font-size:.75rem; font-weight:650; line-height:1.2; overflow-wrap:anywhere; }
.hs-moon-phase-disc { display:grid; place-items:center; width:39px; height:39px; border:0; border-radius:50%; background:radial-gradient(circle,#273355,#111a34); overflow:visible; box-shadow:0 0 0 2px rgba(98,113,163,.16),0 3px 10px rgba(32,44,77,.18); }
.hs-moon-phase-disc svg { width:100%; height:100%; display:block; }
.hs-moon-svg-shadow { fill:#1b284b; }
.hs-moon-svg-light { fill:#f9dfaa; }
.hs-moon-svg-edge { fill:none; stroke:#6573a1; stroke-width:.85; }
.hs-moon-phase.is-current .hs-moon-phase-disc { box-shadow:0 0 0 3px rgba(250,216,151,.32),0 0 15px rgba(246,222,172,.30); }
.hs-moon-phase.is-current .hs-moon-svg-shadow { fill:#131e3b; }
.hs-moon-phase.is-current .hs-moon-svg-light { fill:#fff0bd; }
.hs-moon-phase.is-current .hs-moon-svg-edge { stroke:#a6abd2; }
.hs-sky-foot { border-top-color:#cbd5e9; }
.hs-sky-location,.hs-sky-status { color:#495574; }
.hs-moon::after { animation:hs-moon-halo 9s ease-in-out infinite; }
@keyframes hs-moon-halo { 0%,100% { opacity:.52; transform:scale(.97); } 50% { opacity:1; transform:scale(1.06); } }
.hs-moon-updated .hs-moon-art { animation:hs-moon-reveal .65s cubic-bezier(.2,.8,.2,1) both; }
@keyframes hs-moon-reveal { from { opacity:.45; transform:scale(.94) rotate(-6deg); } to { opacity:1; transform:scale(1) rotate(0); } }
@media (prefers-reduced-motion:reduce) { .hs-moon::after { animation:none; } .hs-moon-phase { transition:none; } .hs-moon-updated .hs-moon-art { animation:none; } }

@media (max-width: 1120px) {
  .hs-header .site-nav { position:absolute; left:18px; right:18px; top:66px; display:none; max-height:calc(100vh - 88px); overflow:auto; padding:12px; border:1px solid var(--hs-border); border-radius:16px; background:#fff; box-shadow:var(--hs-shadow); }
  .hs-header .site-nav.is-open { display:block; }
  .hs-header .site-nav__list { flex-direction:column; align-items:stretch; gap:2px; }
  .hs-header .site-nav__list > li > a { justify-content:space-between; border-radius:10px; }
  .hs-header .site-nav .sub-menu,
  .hs-header .site-nav .sub-menu--zodiac,
  .hs-header .site-nav__list > li:nth-child(2) > .sub-menu { position:static; display:flex; width:auto; min-width:0; flex-direction:column; margin:2px 0 6px 10px; border:0; border-radius:12px; background:#fffaf3; box-shadow:none; }
  .hs-header .site-nav .sub-menu--zodiac > li,
  .hs-header .site-nav__list > li:nth-child(2) > .sub-menu > li { width:100%; }
  .hs-header .nav-mega { position:static; display:grid; width:auto; margin:4px 0 7px 10px; box-shadow:none; }
  .hs-mobile-toggle { display:grid; }
}
@media (max-width: 560px) {
  .hs-moon-phases { grid-template-columns:repeat(4,minmax(0,1fr)); gap:5px; }
  .hs-sky .hs-moon-phase { padding:8px 4px; }
  .hs-sky .hs-moon-phase-disc { width:36px; height:36px; }
  .hs-sky .hs-moon-phase-label { font-size:.65rem; }
}
@media (max-width:480px) {
  /* On narrow phones, two readable phase tiles per row beat eight tiny captions. */
  .hs-sky .hs-moon-phases { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .hs-sky .hs-moon-phase { grid-template-columns:40px minmax(0,1fr); grid-template-rows:1fr; justify-items:start; gap:9px; min-height:62px; padding:8px 10px; text-align:start; }
  .hs-sky .hs-moon-phase-disc { width:37px; height:37px; }
  .hs-sky .hs-moon-phase-label { font-size:.78rem; line-height:1.25; }
}
[dir="rtl"] .hs-moon-cycle-current { text-align:left; }
[dir="rtl"] .hs-header .site-nav .sub-menu { left:auto; right:0; }
.hs-native-sky-widget { margin:0 0 14px; overflow:hidden; border:1px solid rgba(199,139,43,.14); border-radius:15px; background:#fffdf9; }
.hs-native-sky-widget > * { max-width:100%; }
body.admin-bar .hs-header { top:32px; }
@media (max-width:782px) { body.admin-bar .hs-header { top:46px; } }

/* 1.1.6 runtime integrations: Publisher forecast + Local Sky */
.forecast-copy .hs-reading-section { margin:0 0 22px; }
.forecast-copy .hs-reading-section h2 { margin:0 0 9px; font-family:var(--hs-serif); font-size:1.28rem; color:#242235; }
.forecast-copy .hs-reading-section p { margin:0 0 10px; color:#555264; line-height:1.7; }
.forecast-copy .hs-reading-tip { margin:22px 0; padding:18px 20px; border:1px solid rgba(171,130,204,.22); border-radius:14px; background:linear-gradient(135deg,#fbf7ff,#fff9ef); }
.forecast-copy .hs-reading-sky, .forecast-copy .hs-reading-methodology { padding-top:16px; border-top:1px solid rgba(91,72,55,.10); }
.forecast-unavailable { padding:16px 18px; border:1px solid rgba(199,139,43,.16); border-radius:12px; background:#fffaf2; color:#6d6570; }
.sign-sky-card { margin-top:14px; padding:16px; }
.sign-sky-card__eyebrow { display:block; margin-bottom:11px; color:var(--hs-gold-deep); font-size:.64rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.hs-sky--compact .hs-sky-row { margin-top:7px; }
.hs-sky--compact .hs-sky-foot { margin-top:11px; }
.hs-sky--compact .hs-sky-status { margin-top:7px; }
/* 1.1.7 — automatic magazine / ten latest articles */
.hs-latest{padding:28px 30px;background:rgba(255,255,255,.78);border:1px solid rgba(183,148,92,.2);box-shadow:0 18px 48px rgba(82,52,84,.08)}
.hs-latest-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:14px}.hs-latest-head h2{margin:.18rem 0 0}.hs-latest-all{white-space:nowrap}.hs-latest-list{display:grid}.hs-latest-item{display:grid;grid-template-columns:34px 70px minmax(0,1fr) 24px;align-items:center;gap:14px;padding:12px 4px;border-top:1px solid rgba(90,63,91,.1);color:inherit;text-decoration:none;transition:transform .18s ease,background .18s ease}.hs-latest-item:first-child{border-top:0}.hs-latest-item:hover{transform:translateX(3px);background:rgba(255,249,242,.66)}.hs-latest-number{font-size:.72rem;letter-spacing:.08em;opacity:.5}.hs-latest-thumb img{width:70px;height:52px;display:block;object-fit:cover;border-radius:13px}.hs-latest-copy strong{display:block;font-family:var(--hs-serif,Georgia,serif);font-size:1rem;line-height:1.22}.hs-latest-copy small{display:block;margin-top:4px;opacity:.68;line-height:1.35}.hs-latest-arrow{color:#b78b49;font-size:1.05rem}@media(max-width:720px){.hs-latest{padding:22px 18px}.hs-latest-head{align-items:flex-start;flex-direction:column}.hs-latest-item{grid-template-columns:28px 54px minmax(0,1fr) 18px;gap:10px}.hs-latest-thumb img{width:54px;height:48px}.hs-latest-copy small{display:none}}

/* ========================================================================== */
/* 1.2.0 — mobile-first header/home hardening                                 */
/* ========================================================================== */
.hs-header-row, .hs-header-actions, .hs-brand, .hs-brand-copy { min-width:0; }
.hs-brand-name { overflow-wrap:normal; white-space:nowrap; }

@media (max-width:1120px) {
  body.nav-open { overflow:hidden; }
  .hs-header .site-nav { overscroll-behavior:contain; -webkit-overflow-scrolling:touch; }
  .hs-header .site-nav .sub-menu,
  .hs-header .site-nav .sub-menu--zodiac,
  .hs-header .site-nav__list > li:nth-child(2) > .sub-menu,
  .hs-header .site-nav .nav-mega { display:none !important; }
  .hs-header .site-nav li.is-submenu-open > .sub-menu { display:flex !important; }
  .hs-header .site-nav li.is-submenu-open > .nav-mega { display:grid !important; }
  .hs-header .site-nav__list > .menu-item-has-children { display:grid; grid-template-columns:minmax(0,1fr) 44px; align-items:start; }
  .hs-header .site-nav__list > .menu-item-has-children > a { grid-column:1; grid-row:1; }
  .hs-header .site-nav__list > .menu-item-has-children > .hs-submenu-toggle { grid-column:2; grid-row:1; }
  .hs-header .site-nav__list > .menu-item-has-children > .sub-menu,
  .hs-header .site-nav__list > .menu-item-has-children > .nav-mega { grid-column:1 / -1; }
  .hs-submenu-toggle { display:grid; place-items:center; width:44px; height:44px; border:0; border-radius:10px; color:#756a69; background:transparent; font-size:1rem; }
  .hs-submenu-toggle::before { content:'⌄'; transition:transform .18s ease; }
  .is-submenu-open > .hs-submenu-toggle::before { transform:rotate(180deg); }
}

@media (min-width:1121px) { .hs-submenu-toggle { display:none; } }

@media (max-width:820px) {
  .hs-header-row { gap:10px; }
  .hs-language { display:block; }
  .hs-language select { width:58px; min-height:40px; padding:0 21px 0 8px; font-size:.72rem; }
  .hs-language::after { right:8px; top:7px; }
  .hs-header .site-nav { top:60px; left:12px; right:12px; max-height:calc(100dvh - 78px); }
  .hs-hero-copy { padding-inline:4px; }
  .hs-trust-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; }
  .hs-trust-item { min-width:0; }
  .hs-trust-item span:last-child { min-width:0; }
}

@media (max-width:560px) {
  .hs-container { width:min(calc(100% - 20px),var(--hs-max)); }
  .hs-header-row { min-height:58px; gap:6px; }
  .hs-brand { gap:8px; }
  .hs-brand-mark { width:34px; height:34px; flex-basis:34px; font-size:20px; }
  .hs-brand-mark::before { inset:5px; }
  .hs-brand-mark::after { inset:10px -4px; }
  .hs-brand-name { font-size:.9rem; letter-spacing:.02em; }
  .hs-header-actions { gap:1px; }
  .hs-icon-btn { width:38px; height:38px; }
  .hs-language select { width:54px; min-height:38px; padding-left:7px; }
  .hs-header .site-nav { top:56px; }
  .hs-hero-shell, .hs-hero { min-height:620px; }
  .hs-hero-copy { padding:28px 2px 278px; }
  .hs-hero h1 { font-size:clamp(2.25rem,11.5vw,3.25rem); line-height:.98; }
  .hs-hero-lead { font-size:.9rem; line-height:1.5; }
  .hs-hero-actions { margin-top:20px; }
  .hs-trust-row { gap:10px; margin-top:20px; }
  .hs-trust-icon { width:29px; height:29px; }
  .hs-hero-backdrop { inset:auto -13% 0 6%; width:108%; height:310px; }
  .hs-zodiac-grid { grid-template-columns:repeat(12,76px); gap:6px; }
  .hs-zodiac-icon { width:58px; height:58px; font-size:1.85rem; }
  .hs-feature { grid-template-columns:108px minmax(0,1fr); }
  .hs-feature-body { padding:12px 12px 12px 13px; }
  .hs-sky-foot { align-items:flex-start; flex-direction:column; }
  .hs-location-btn { width:100%; min-height:40px; }
  .hs-search-form { grid-template-columns:1fr; }
}

@media (max-width:430px) {
  .hs-icon-btn[data-hs-search] { display:none; }
  .hs-brand-name { font-size:.86rem; }
  .hs-hero-shell, .hs-hero { min-height:600px; }
  .hs-hero-copy { padding-bottom:260px; }
  .hs-sky-layout { grid-template-columns:1fr; }
  .hs-sky .hs-moon { width:100px; height:100px; margin-top:10px; }
  .hs-feature { grid-template-columns:96px minmax(0,1fr); }
  .hs-feature-art { min-height:108px; }
  .hs-feature h3 { font-size:.95rem; }
  .hs-feature p { font-size:.68rem; }
  .hs-latest { padding:18px 13px; }
  .hs-latest-item { grid-template-columns:22px 46px minmax(0,1fr) 14px; gap:8px; }
  .hs-latest-thumb img { width:46px; height:44px; border-radius:10px; }
}

@media (max-width:360px) {
  .hs-brand-name { font-size:.8rem; }
  .hs-brand-mark { width:32px; height:32px; flex-basis:32px; }
  .hs-language select { width:50px; }
  .hs-mobile-toggle { width:36px; }
  .hs-trust-row { grid-template-columns:1fr; }
  .hs-feature { grid-template-columns:88px minmax(0,1fr); }
}

/* 1.2.1 — regional hero artwork + deeper page integration. */
.hs-hero-backdrop picture { position:absolute; inset:0; display:block; width:100%; height:100%; }
.hs-hero-img--regional { inset:0; width:100%; height:100%; object-fit:cover; object-position:center right; filter:saturate(.98) brightness(1.035) contrast(.98); -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.34) 13%,rgba(0,0,0,.88) 35%,#000 52%,#000 100%); mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.34) 13%,rgba(0,0,0,.88) 35%,#000 52%,#000 100%); }
.hs-hero-backdrop:has(.hs-hero-img--regional)::before { background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.93) 13%,rgba(255,255,255,.42) 31%,rgba(255,255,255,.05) 56%,rgba(255,255,255,0) 78%),linear-gradient(0deg,rgba(255,252,248,.42),rgba(255,255,255,0) 38%); }
@media (max-width:760px) {
  .hs-hero-img--regional { object-position:center bottom; -webkit-mask-image:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.60) 14%,#000 34%,#000 100%); mask-image:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.60) 14%,#000 34%,#000 100%); }
  .hs-hero-backdrop:has(.hs-hero-img--regional)::before { background:linear-gradient(180deg,#fff 0%,rgba(255,255,255,.72) 16%,rgba(255,255,255,.08) 46%,rgba(255,255,255,0) 75%); }
}

/* ==========================================================
   1.2.2 — fixed premium scene canvas
   The scene is fixed to the viewport; the document scrolls above it.
   Regional artwork is a full scene layer, never a masked/cut-out hero IMG.
   ========================================================== */
body {
  position: relative;
  min-height: 100%;
  background: #071027;
}
body::before { display: none; }

.hs-page-backdrop {
  position: fixed;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(5,10,31,.10) 0%, rgba(7,13,35,.18) 38%, rgba(6,11,30,.42) 100%),
    var(--hs-cosmic-base) center center / cover no-repeat;
  transform: translateZ(0);
}
.hs-page-backdrop::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 72% 18%, rgba(255,205,112,.20), transparent 24rem),
    radial-gradient(circle at 28% 8%, rgba(86,119,199,.14), transparent 28rem),
    linear-gradient(90deg, rgba(4,9,27,.48) 0%, rgba(5,10,29,.10) 45%, rgba(4,8,24,.04) 100%);
}
.hs-page-backdrop::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(3,8,25,.02) 0%, rgba(3,8,25,.02) 54%, rgba(3,8,25,.24) 100%);
}
.hs-page-backdrop__regional {
  position: absolute;
  z-index: 1;
  top: 0;
  right: 0;
  width: min(64vw, 1180px);
  height: min(84vh, 880px);
  min-height: 610px;
  background:
    linear-gradient(180deg, rgba(7,13,35,.02), rgba(7,13,35,.12)),
    var(--hs-regional-scene) center right / cover no-repeat;
  opacity: .98;
  -webkit-mask-image:
    linear-gradient(90deg, transparent 0%, rgba(0,0,0,.20) 9%, rgba(0,0,0,.72) 24%, #000 40%, #000 100%),
    linear-gradient(180deg, #000 0%, #000 64%, rgba(0,0,0,.88) 77%, transparent 100%);
  -webkit-mask-composite: source-in;
  mask-image:
    linear-gradient(90deg, transparent 0%, rgba(0,0,0,.20) 9%, rgba(0,0,0,.72) 24%, #000 40%, #000 100%),
    linear-gradient(180deg, #000 0%, #000 64%, rgba(0,0,0,.88) 77%, transparent 100%);
  mask-composite: intersect;
}

/* 1.2.7.1 — the header is excluded here. This rule lifts page content above
   the fixed backdrop, but applying position:relative to .hs-header overrode its
   own position:sticky. The header then stopped sticking on scroll, and with the
   WordPress admin bar its `top:32px` (written for sticky) turned into a plain
   32px downward shift, opening a gap between the admin bar and the header and
   pushing the header down onto the artwork. The header already carries
   z-index:30000, so it needs no help from this rule. */
body > :not(.hs-page-backdrop):not(.hs-header) { position: relative; z-index: 1; }
#wpadminbar { z-index: 99999; }

/* Homepage becomes a transparent scrolling content layer over the fixed scene. */
.home main { background: transparent; }
.home .hs-hero-shell {
  overflow: visible;
  min-height: 520px;
  border-radius: 0;
  background: transparent;
  isolation: auto;
}
.home .hs-hero-shell::after { display: none; }
.home .hs-hero-backdrop { display: none !important; }
.home .hs-hero { min-height: 520px; }
.home .hs-hero-copy {
  width: min(56%, 700px);
  padding: 68px 0 66px 18px;
}
.home .hs-hero h1 {
  color: #fff;
  text-shadow: 0 3px 26px rgba(0,0,0,.34);
}
.home .hs-hero h1 .hs-gold { color: #f3bd62; }
.home .hs-hero .hs-eyebrow { color: #f2c66f; text-shadow: 0 1px 14px rgba(0,0,0,.35); }
.home .hs-hero-lead { color: rgba(255,255,255,.90); text-shadow: 0 2px 18px rgba(0,0,0,.28); }
.home .hs-trust-row { color: rgba(255,255,255,.93); }
.home .hs-trust-item small { color: rgba(255,255,255,.78); }
.home .hs-trust-icon { color:#f2bd62; background:rgba(8,16,42,.50); border:1px solid rgba(242,189,98,.34); }
.home .hs-btn--ghost { color:#fff; border-color:rgba(255,255,255,.44); background:rgba(7,15,39,.36); }
.home .hs-btn--ghost:hover { background:rgba(7,15,39,.58); }

/* The content is deliberately card-based so the fixed artwork stays visible
   around the reading surface while text remains highly legible. */
.home .hs-card,
.home .hs-latest,
.home .hs-main-grid > section,
.home .hs-proof {
  background: rgba(255,255,255,.945);
  border-color: rgba(255,255,255,.72);
  box-shadow: 0 22px 70px rgba(2,8,28,.22);
}
.home .hs-zodiac-panel,
.home .hs-feature,
.home .hs-sky-card,
.home .hs-editorial,
.home .hs-latest { backdrop-filter: none; }
.home .hs-section { scroll-margin-top: 120px; }

/* Header is part of the scene on the homepage, not a white strip pasted on top. */
.home .hs-header {
  color:#fff;
  background:rgba(6,13,34,.82);
  border-bottom-color:rgba(255,255,255,.10);
  box-shadow:0 10px 30px rgba(1,5,20,.16);
  backdrop-filter: blur(14px);
}
.home .hs-brand-name,
.home .hs-nav a,
.home .site-nav a,
.home .hs-icon-btn { color:#fff; }
.home .hs-brand-tagline { color:rgba(255,255,255,.62); }
.home .hs-brand-mark { color:#f2bd62; border-color:rgba(242,189,98,.66); }
.home .hs-icon-btn:hover { background:rgba(255,255,255,.10); }
.home .hs-language select {
  color:#fff;
  border-color:rgba(255,255,255,.22);
  background:rgba(8,16,42,.60);
}
.home .hs-language::after { color:#fff; }
.home .site-nav .sub-menu,
.home .site-nav .nav-mega > .sub-menu {
  color:var(--hs-ink);
  background:rgba(255,255,255,.98);
}
.home .site-nav .sub-menu a { color:#2d2b3b; }

/* Footer still belongs to the scrolling layer but lets the fixed scene breathe. */
.hs-footer {
  background:rgba(255,251,245,.955);
  box-shadow:0 -18px 60px rgba(2,8,28,.13);
}

/* On inner pages the same static cosmic canvas remains, while topic hero art
   and reading surfaces scroll above it. */
body:not(.home) main.site-main,
body:not(.home) main#main { background: transparent; }
body:not(.home) .section > .shell,
body:not(.home) .entry-shell,
body:not(.home) .search-shell { position:relative; }

@media (max-width: 1120px) {
  .home .hs-hero-copy { width:min(62%,650px); }
  .hs-page-backdrop__regional { width:66vw; height:76vh; }
}

@media (max-width: 760px) {
  .hs-page-backdrop {
    background:
      linear-gradient(180deg, rgba(5,10,31,.18), rgba(5,10,31,.46)),
      var(--hs-cosmic-base) center top / auto 100vh no-repeat;
  }
  .hs-page-backdrop__regional {
    top: 56px;
    right: -6%;
    width: 108%;
    height: 56vh;
    min-height: 360px;
    background:
      linear-gradient(180deg, rgba(6,12,32,.02), rgba(6,12,32,.16)),
      var(--hs-regional-scene-mobile) center 22% / cover no-repeat;
    opacity: .92;
    -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 57%, rgba(0,0,0,.62) 76%, transparent 100%);
    mask-image: linear-gradient(180deg, #000 0%, #000 57%, rgba(0,0,0,.62) 76%, transparent 100%);
  }
  .home .hs-header { background:rgba(6,13,34,.91); }
  .home .hs-hero-shell,
  .home .hs-hero { min-height: 600px; }
  .home .hs-hero-copy {
    width:100%;
    padding:42px 4px 270px;
  }
  .home .hs-hero h1 { font-size:clamp(2.5rem,11vw,4rem); }
  .home .hs-hero-lead { max-width:92%; }
  .home .hs-trust-row { gap:12px 18px; }
  .home .hs-zodiac-panel { margin-top:0; }
}

@media (max-width: 430px) {
  .hs-page-backdrop__regional { right:-12%; width:118%; height:52vh; }
  .home .hs-hero-copy { padding-top:32px; padding-bottom:248px; }
  .home .hs-hero h1 { font-size:clamp(2.22rem,11.2vw,3.25rem); }
  .home .hs-hero-actions { grid-template-columns:1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .hs-page-backdrop { transform:none; }
}

/* Keep the full fixed regional canvas scoped to the homepage. Inner pages
   retain the established light reading surface and their own thematic heroes. */
body:not(.home) {
  background:
    radial-gradient(circle at 8% 14%, rgba(242,213,224,.28), transparent 23rem),
    radial-gradient(circle at 93% 12%, rgba(194,211,241,.28), transparent 24rem),
    linear-gradient(180deg,#fff 0%,var(--hs-bg) 48%,#fffdfa 100%);
}
body:not(.home) .hs-page-backdrop { display:none; }

/* ==========================================================
   1.2.3 — Premium full-scene backgrounds, batch 1
   PL / DE / IT / ES / JA
   The approved artwork is the entire fixed page canvas. No cut-out woman,
   no blurred bridge layer, no stitched regional fragment.
   ========================================================== */
.home .hs-page-backdrop--full-scene {
  background:
    linear-gradient(90deg, rgba(5,12,34,.86) 0%, rgba(5,12,34,.68) 29%, rgba(5,12,34,.30) 51%, rgba(5,12,34,.08) 72%, rgba(5,12,34,.04) 100%),
    linear-gradient(180deg, rgba(5,10,28,.10) 0%, rgba(5,10,28,.05) 56%, rgba(5,10,28,.34) 100%),
    var(--hs-full-scene) center center / cover no-repeat;
  background-color:#09122d;
}
.home .hs-page-backdrop--full-scene::before {
  background:
    radial-gradient(circle at 22% 18%, rgba(255,196,91,.10), transparent 30rem),
    linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(2,7,22,.04) 58%, rgba(2,7,22,.20) 100%);
}
.home .hs-page-backdrop--full-scene::after {
  background: linear-gradient(180deg, rgba(3,8,25,.02) 0%, rgba(3,8,25,.01) 52%, rgba(3,8,25,.20) 100%);
}
.home .hs-page-backdrop--full-scene .hs-page-backdrop__regional { display:none; }

/* Keep content clearly floating above the complete artwork rather than
   visually becoming a second background. */
.home .hs-page-backdrop--full-scene ~ .hs-header { background:rgba(5,12,34,.78); }
.home .hs-page-backdrop--full-scene ~ main .hs-card,
.home .hs-page-backdrop--full-scene ~ main .hs-latest,
.home .hs-page-backdrop--full-scene ~ main .hs-main-grid > section,
.home .hs-page-backdrop--full-scene ~ main .hs-proof {
  background:rgba(255,255,255,.94);
  border-color:rgba(255,255,255,.72);
  box-shadow:0 22px 70px rgba(2,8,28,.20);
}

@media (max-width:760px) {
  .home .hs-page-backdrop--full-scene {
    background:
      linear-gradient(180deg, rgba(5,12,34,.50) 0%, rgba(5,12,34,.20) 32%, rgba(5,12,34,.08) 58%, rgba(5,12,34,.30) 100%),
      linear-gradient(90deg, rgba(5,12,34,.34) 0%, rgba(5,12,34,.06) 70%),
      var(--hs-full-scene-mobile) 68% center / cover no-repeat;
    background-color:#09122d;
  }
  .home .hs-page-backdrop--full-scene::before {
    background:linear-gradient(180deg, rgba(4,10,29,.12), rgba(4,10,29,.02) 50%, rgba(4,10,29,.22));
  }
  .home .hs-page-backdrop--full-scene ~ main .hs-hero-copy {
    padding-bottom:285px;
  }
}


/* ========================================================================== */
/* 1.2.4 — stable, clickable navigation                                      */
/* ========================================================================== */
.hs-header { z-index:1000; overflow:visible; }
.hs-header .site-nav { position:relative; z-index:1010; overflow:visible; }
.hs-header .site-nav__list > li { z-index:1011; }
.hs-header .site-nav .sub-menu,
.hs-header .site-nav .nav-mega {
  z-index:1100;
  pointer-events:auto;
}
.hs-header .site-nav li.is-submenu-open > .sub-menu { display:flex !important; }
.hs-header .site-nav li.is-submenu-open > .nav-mega { display:grid !important; }

/* Keep a real hover corridor between a top-level item and its dropdown. */
@media (min-width:1121px) {
  .hs-header .site-nav__list > .menu-item-has-children { position:relative; display:flex; align-items:center; }
  .hs-header .site-nav__list > .nav-mega-trigger { position:static !important; }
  .hs-header .site-nav__list > .menu-item-has-children::before {
    content:"";
    position:absolute;
    left:0;
    right:0;
    top:100%;
    height:12px;
    z-index:1090;
  }
  .hs-header .site-nav .sub-menu,
  .hs-header .nav-mega { top:calc(100% + 1px); margin-top:0; }

  /* Desktop gets a dedicated disclosure button: parent label remains a normal link. */
  .hs-header .site-nav__list > .menu-item-has-children > a { padding-inline-end:5px; }
  .hs-header .site-nav__list > .menu-item-has-children > a::after { display:none !important; }
  .hs-header .site-nav__list > .menu-item-has-children > .hs-submenu-toggle {
    display:grid;
    place-items:center;
    width:28px;
    height:28px;
    flex:0 0 28px;
    margin-inline-start:-2px;
    margin-inline-end:3px;
    padding:0;
    border:0;
    border-radius:999px;
    color:#6e6470;
    background:transparent;
    cursor:pointer;
  }
  .hs-header .site-nav__list > .menu-item-has-children > .hs-submenu-toggle::before {
    content:'⌄';
    display:block;
    line-height:1;
    transition:transform .18s ease;
  }
  .hs-header .site-nav__list > .menu-item-has-children.is-submenu-open > .hs-submenu-toggle::before {
    transform:rotate(180deg);
  }
  .hs-header .site-nav__list > .menu-item-has-children > .hs-submenu-toggle:hover,
  .hs-header .site-nav__list > .menu-item-has-children > .hs-submenu-toggle:focus-visible {
    color:var(--hs-gold-deep);
    background:#fff8ed;
    outline:2px solid rgba(195,137,45,.22);
    outline-offset:1px;
  }
  .home .hs-header .site-nav__list > .menu-item-has-children > .hs-submenu-toggle { color:#fff; }
  .home .hs-header .site-nav__list > .menu-item-has-children > .hs-submenu-toggle:hover,
  .home .hs-header .site-nav__list > .menu-item-has-children > .hs-submenu-toggle:focus-visible {
    color:#fff;
    background:rgba(255,255,255,.13);
  }
}

/* Explicit dropdown palette so the dark homepage header never leaks white text
   into the white submenu panel. */
.hs-header .site-nav .sub-menu,
.hs-header .site-nav .nav-mega {
  color:#292534;
  background:#fffdf9;
  border-color:rgba(177,133,69,.26);
  box-shadow:0 24px 70px rgba(17,18,35,.24);
}
.hs-header .site-nav .sub-menu a,
.home .hs-header .site-nav .sub-menu a,
.hs-header .site-nav .nav-mega a,
.home .hs-header .site-nav .nav-mega a {
  color:#2d2936 !important;
  text-shadow:none;
}
.hs-header .site-nav .sub-menu a:hover,
.hs-header .site-nav .sub-menu a:focus-visible,
.hs-header .site-nav .nav-mega a:hover,
.hs-header .site-nav .nav-mega a:focus-visible {
  color:#9d671b !important;
  background:#fff3df;
}
.home .hs-header .site-nav__list > li > a { color:#fff; }

@media (max-width:1120px) {
  .hs-header .site-nav { z-index:1200; }
  .hs-header .site-nav__list > .menu-item-has-children { position:relative; }
  .hs-header .site-nav__list > .menu-item-has-children > .hs-submenu-toggle { cursor:pointer; }
  .hs-header .site-nav .sub-menu,
  .hs-header .site-nav .nav-mega { z-index:auto; }
}

/* ========================================================================== */
/* 1.2.5 — menu layer/order + contrast hardening                              */
/* ========================================================================== */
/* Keep navigation above every hero/content stacking context, but below the
   WordPress admin bar (99999). */
.hs-header {
  z-index: 30000 !important;
  isolation: isolate;
  overflow: visible !important;
}
.hs-header-row,
.hs-header .site-nav,
.hs-header .site-nav__list,
.hs-header .site-nav__list > li {
  overflow: visible !important;
}
.hs-header .site-nav { z-index: 30010 !important; }
.hs-header .site-nav__list > li { z-index: 30011 !important; }
.hs-header .site-nav .sub-menu,
.hs-header .site-nav .nav-mega {
  z-index: 30100 !important;
  pointer-events: auto !important;
  opacity: 1;
  visibility: visible;
}

@media (min-width:1121px) {
  /* No dead gap: dropdown physically touches the clickable parent/corridor. */
  .hs-header .site-nav .sub-menu,
  .hs-header .site-nav .nav-mega {
    top: 100% !important;
    margin-top: 0 !important;
  }
  .hs-header .site-nav__list > .menu-item-has-children::before {
    top: calc(100% - 2px) !important;
    height: 18px !important;
    pointer-events: auto;
    z-index: 30090 !important;
  }

  /* Explicit homepage top-level hover/current palette. Earlier rules left
     white text on an almost-white hover pill. */
  .home .hs-header .site-nav__list > li > a:hover,
  .home .hs-header .site-nav__list > li > a:focus-visible,
  .home .hs-header .site-nav__list > li:focus-within > a,
  .home .hs-header .site-nav__list > li.is-submenu-open > a,
  .home .hs-header .site-nav__list > .current-menu-item > a,
  .home .hs-header .site-nav__list > .current-menu-ancestor > a {
    color: #0b1630 !important;
    background: linear-gradient(135deg,#fff8e8 0%,#efc16b 100%) !important;
    text-shadow: none !important;
    box-shadow: 0 7px 24px rgba(3,9,29,.18);
  }
  .home .hs-header .site-nav__list > li.is-submenu-open > .hs-submenu-toggle,
  .home .hs-header .site-nav__list > li:focus-within > .hs-submenu-toggle {
    color:#0b1630 !important;
    background:#efc16b !important;
  }

  /* Submenus are always opaque reading surfaces and cannot inherit hero text. */
  .hs-header .site-nav .sub-menu,
  .hs-header .site-nav .nav-mega {
    color:#252231 !important;
    background:#fffdf9 !important;
    border:1px solid rgba(177,133,69,.30) !important;
    box-shadow:0 28px 80px rgba(4,8,24,.34) !important;
  }
  .hs-header .site-nav .sub-menu a,
  .hs-header .site-nav .nav-mega a,
  .home .hs-header .site-nav .sub-menu a,
  .home .hs-header .site-nav .nav-mega a {
    color:#292534 !important;
    background:transparent;
    text-shadow:none !important;
  }
  .hs-header .site-nav .sub-menu a:hover,
  .hs-header .site-nav .sub-menu a:focus-visible,
  .hs-header .site-nav .nav-mega a:hover,
  .hs-header .site-nav .nav-mega a:focus-visible {
    color:#7b4d10 !important;
    background:#fff0d5 !important;
  }
}

/* Keep the admin toolbar on top while logged in. */
#wpadminbar { z-index: 99999 !important; }

/* 1.2.6 — sign compatibility: clear two-step selector and premium result card. */
.hs-compat .hs-compat__body { position:relative; z-index:2; padding-top:clamp(20px,3vw,44px); padding-bottom:clamp(54px,7vw,110px); max-width:1240px; }
.hs-compat__form { margin:0; }
.hs-compat__pickers { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(14px,2vw,24px); align-items:start; }
.hs-compat__choose { min-width:0; margin:0; padding:clamp(16px,2vw,26px); border:1px solid rgba(196,152,85,.43); background:rgba(255,253,249,.98); border-radius:24px; box-shadow:0 16px 42px rgba(20,21,44,.15); }
.hs-compat__choose legend { width:100%; float:left; display:flex; flex-direction:column; gap:5px; margin:0 0 18px; padding:0; color:#27253b; }
.hs-compat__step { color:#986a2c; letter-spacing:.1em; font-weight:800; text-transform:uppercase; font-size:.69rem; }
.hs-compat__choose legend strong { font-family:Georgia,'Times New Roman',serif; font-size:clamp(1.25rem,2.3vw,1.65rem); font-weight:600; }
.hs-compat__sign-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; width:100%; }
.hs-compat__sign { position:relative; min-width:0; cursor:pointer; display:block; }
.hs-compat__sign input { position:absolute; width:100%; height:100%; inset:0; opacity:0; cursor:pointer; z-index:1; margin:0; }
.hs-compat__sign-content { min-width:0; display:flex; align-items:center; justify-content:center; flex-direction:column; min-height:102px; padding:10px 4px; gap:7px; border:1px solid #e7dac6; border-radius:15px; background:linear-gradient(180deg,#fffdf9,#fff9ef); transition:border-color .15s,box-shadow .15s,background .15s; color:#2a293a; text-align:center; }
.hs-compat__glyph { display:grid; place-items:center; width:42px; height:42px; border:1px solid #e7bd82; border-radius:50%; background:white; color:#b77d30; font-size:1.55rem; line-height:1; font-variant-emoji:text; }
.hs-compat__sign-name { width:100%; font-size:clamp(.7rem,.85vw,.87rem); font-weight:700; overflow-wrap:anywhere; line-height:1.3; }
.hs-compat__sign input:focus-visible + .hs-compat__sign-content { outline:3px solid #8a65cc; outline-offset:3px; }
.hs-compat__sign input:checked + .hs-compat__sign-content { border:2px solid #b9832d; background:linear-gradient(135deg,#fff9e8,#f8ebd4); box-shadow:0 0 0 3px rgba(208,157,75,.17),0 10px 24px rgba(129,83,31,.12); }
.hs-compat__sign input:checked + .hs-compat__sign-content .hs-compat__glyph { color:#fff; background:#b88335; border-color:#b88335; }
.hs-compat__sign:hover .hs-compat__sign-content { border-color:#c49147; }
.hs-compat__submit { display:flex; justify-content:center; margin:20px 0 28px; }
.hs-compat__button { display:inline-flex; align-items:center; justify-content:center; gap:10px; border:0; border-radius:999px; padding:14px 26px; min-height:48px; background:linear-gradient(135deg,#dba852,#b37b2e); color:white!important; font-size:.92rem; font-weight:750; text-decoration:none; cursor:pointer; box-shadow:0 8px 22px rgba(111,75,30,.20); }
.hs-compat__button:hover,.hs-compat__button:focus-visible { background:linear-gradient(135deg,#ba883e,#895922); color:white!important; }
.hs-compat__result { scroll-margin-top:clamp(100px,13vh,170px); }
.hs-compat__result-inner { padding:clamp(20px,4vw,48px); background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(255,251,243,.98)); border:1px solid rgba(198,157,93,.51); border-radius:28px; box-shadow:0 20px 72px rgba(14,23,52,.22); color:#292539; }
.hs-compat__result-heading { text-align:center; margin-bottom:22px; }
.hs-compat__overline { display:block; font-size:.76rem; font-weight:800; color:#a77326; letter-spacing:.13em; text-transform:uppercase; }
.hs-compat__result h2 { font-size:clamp(1.4rem,4vw,2.5rem); margin:9px 0 0; color:#292539; line-height:1.25; overflow-wrap:anywhere; }
.hs-compat__result h2 span { color:#b57b30; }
.hs-compat__score { display:grid; grid-template-columns:minmax(118px,170px) 1fr; align-items:center; gap:clamp(18px,5vw,55px); max-width:820px; margin:0 auto 26px; }
.hs-compat__score-circle { width:clamp(118px,16vw,170px); aspect-ratio:1; display:grid; place-items:center; border-radius:50%; background:conic-gradient(#c79341 calc(var(--score) * 1%),#eae2d7 0); position:relative; isolation:isolate; }
.hs-compat__score-circle::before { content:""; position:absolute; z-index:-1; inset:9px; border-radius:50%; background:#fffaf0; }
.hs-compat__score-circle > span { font-family:Georgia,'Times New Roman',serif; color:#80541f; font-weight:700; font-size:clamp(2.2rem,4vw,3.6rem); }
.hs-compat__score-circle small { font-family:inherit; font-size:.46em; }
.hs-compat__score > div:last-child > span { display:block; color:#926225; font-size:.84rem; font-weight:800; margin-bottom:9px; }
.hs-compat__score p { margin:0; line-height:1.65; color:#433e49; font-size:clamp(.9rem,1.1vw,1.05rem); }
.hs-compat__dimensions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 24px; max-width:980px; margin:0 auto 26px; }
.hs-compat__dimension { display:flex; align-items:center; gap:12px; min-width:0; border:1px solid #ece0d0; border-radius:16px; background:#fff; padding:15px; }
.hs-compat__dimension-icon { display:grid;place-items:center;flex:none;width:43px;height:43px;border-radius:13px;background:#fff3e3;color:#a46a22;font-size:1.6rem; font-variant-emoji:text; }
.hs-compat__dimension-text { flex:1; min-width:0; }
.hs-compat__dimension-label { display:flex; justify-content:space-between; align-items:center; gap:8px; margin-bottom:9px; font-size:.85rem; color:#302b3a; }
.hs-compat__dimension-label strong { overflow-wrap:anywhere; }
.hs-compat__dimension-label > span { font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:800;color:#976124; }
.hs-compat__meter { height:8px; background:#eee8e0; border-radius:100px; overflow:hidden; }
.hs-compat__meter > span { display:block; height:100%; background:linear-gradient(90deg,#c18e43,#e4bd76); border-radius:100px; }
.hs-compat__share { display:flex; justify-content:center; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:20px; }
.hs-compat__share > a,.hs-compat__share > button:not(.hs-compat__button) { display:inline-flex;align-items:center;justify-content:center;min-height:45px; padding:10px 18px; border:1px solid #d6b98f; border-radius:999px; background:#fff; color:#6e4821; font-size:.88rem;font-weight:750;text-decoration:none;cursor:pointer; }
.hs-compat__share > a:hover,.hs-compat__share > button:not(.hs-compat__button):hover { background:#fff1dc;color:#674018; }
.hs-compat__status { font-size:.83rem; color:#336248; }
.hs-compat__disclaimer { max-width:900px; margin:0 auto!important; padding:16px 19px; background:#f9f5ee; border-left:3px solid #c2924a; border-radius:9px; color:#605968; font-size:.83rem; line-height:1.65; }
.hs-compat__empty { display:grid;place-items:center;min-height:150px;padding:30px 15px; background:rgba(255,253,247,.97); border:1px dashed #caa66f; border-radius:20px; text-align:center; color:#4f4958; }
.hs-compat__empty > span { font-size:1.6rem;color:#af7933; }
.hs-compat__empty p { margin:9px 0 0; }
html[dir=rtl] .hs-compat__disclaimer { border-left:0; border-right:3px solid #c2924a; }
@media (max-width:940px){.hs-compat__pickers{grid-template-columns:1fr;}.hs-compat__sign-grid{grid-template-columns:repeat(6,minmax(0,1fr));}.hs-compat__sign-content{min-height:90px;}}
@media (max-width:600px){.hs-compat .hs-compat__body{padding-top:18px;}.hs-compat__choose{padding:16px 12px;border-radius:19px;}.hs-compat__sign-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;}.hs-compat__sign-content{min-height:78px;padding:8px 2px;gap:4px;}.hs-compat__glyph{width:32px;height:32px;font-size:1.27rem;}.hs-compat__sign-name{font-size:.68rem;}.hs-compat__result-inner{border-radius:19px;padding:21px 13px;}.hs-compat__score{grid-template-columns:100px 1fr;gap:15px;}.hs-compat__score-circle{width:100px;}.hs-compat__score-circle::before{inset:7px;}.hs-compat__dimensions{grid-template-columns:1fr;}.hs-compat__dimension{padding:11px;}.hs-compat__share{align-items:stretch;}.hs-compat__share>*{width:100%;}.hs-compat__score > div:last-child > span{font-size:.75rem;}.hs-compat__score p{font-size:.82rem;}}
@media (max-width:350px){.hs-compat__sign-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}

/* ==========================================================
   1.2.7 — Compatibility scene

   Root causes fixed here (see RELEASE-1.2.7.0 for the audit):
   1. The artwork was painted twice — `cover` on .hs-page-backdrop and
      `contain` on .hs-page-backdrop__regional. Two different scales of the
      same picture stacked on each other produced the enlarged figures and the
      shifted composition. There is now exactly ONE paint of the artwork.
   2. `cover` on a fixed full-viewport box crops horizontally, and the
      localized titles sit in the upper-left quadrant, so they were the first
      thing cut. The artwork is now sized to the full page width at its
      intrinsic ratio — it is never cropped horizontally at any viewport.
   3. A 90deg scrim at .74 alpha darkened exactly the area holding the baked-in
      title. Removed; the titles are dark navy on pastel sky and need no scrim.
   4. The sticky header sat on top of the artwork's title. The artwork now
      starts below the header, and the strip behind the header continues the
      sky using colours sampled from the artwork's own top edge.
   5. The space under the artwork was flat #07102a while the artwork's bottom
      edge is warm gold/stone — hence the hard dark cut-off. That space is now
      a ramp sampled from the artwork's real bottom edge, descending into the
      page surface.

   Geometry is derived from the artwork's own proportions (--hs-scene-ratio,
   emitted per language by inc/compatibility-scene.php), not from hand-tuned
   background-position / background-size values.
   ========================================================== */

body.hs-page--compatibility-scene {
  --hs-admin-bar: 0px;               /* WordPress admin bar, when logged in */
  --hs-header-h: 72px;               /* sticky header height */
  --hs-scene-top: calc(var(--hs-admin-bar) + var(--hs-header-h));
  --hs-scene-fade: 62vh;             /* colour-matched descent below the art */
  --hs-scene-surface: #fbfaf8;       /* page surface the scene resolves into */
  background: var(--hs-scene-surface);
}

/* Logged-in editors see the admin bar, which pushes the whole document down.
   Without this the artwork started 32px too high and the header covered its
   top edge — on narrower screens that clipped the localized title. */
body.admin-bar.hs-page--compatibility-scene { --hs-admin-bar: 32px; }
@media (max-width: 782px) {
  body.admin-bar.hs-page--compatibility-scene { --hs-admin-bar: 46px; }
}

/* The compatibility page opts back into the fixed backdrop that inner pages
   normally hide. */
body.hs-page--compatibility-scene .hs-page-backdrop {
  display: block;
}

/* Parent carries no artwork at all — it is only the surface the scene
   resolves into. This is what removes the second, cover-cropped copy. */
body.hs-page--compatibility-scene .hs-page-backdrop--compatibility-scene {
  background: var(--hs-scene-surface);
  background-color: var(--hs-scene-surface);
}
body.hs-page--compatibility-scene .hs-page-backdrop--compatibility-scene::before {
  content: none;
  display: none;
}

/* 1.2.7.1 — no whitening veil at the fold.
   The homepage solves this well: the artwork is pinned to the viewport, fills
   it edge to edge, and the content simply floats over it. The compatibility
   scene now behaves the same way. On a window wider than the artwork the
   picture runs to the bottom of the screen and is never "finished" on screen,
   so it needs no descent there — an earlier fade to the page surface only made
   it look washed out and cut short.

   The colour-matched descent below still exists on .hs-page-backdrop__regional
   for the opposite case: a tall or narrow window where the artwork genuinely
   ends above the fold. */
body.hs-page--compatibility-scene .hs-page-backdrop--compatibility-scene::after {
  content: none;
  display: none;
}

/* The single artwork layer.
   width:100% + aspect-ratio gives the exact intrinsic height for the current
   page width, so background-size:100% 100% fills the box without distorting
   and without cropping. No background-position guesswork. */
body.hs-page--compatibility-scene .hs-page-backdrop--compatibility-scene .hs-page-backdrop__regional {
  display: block;
  position: absolute;
  top: var(--hs-scene-top);
  inset-inline: 0;
  width: 100%;
  height: auto;
  min-height: 0;
  aspect-ratio: var(--hs-scene-ratio, 1.77683);
  opacity: 1;
  background: var(--hs-scene) center top / 100% 100% no-repeat;
  -webkit-mask-image: none;
  mask-image: none;
}

/* Sky continued upward behind the sticky header, using colours sampled from
   the artwork's own top edge — the header can no longer sit on the title. */
body.hs-page--compatibility-scene .hs-page-backdrop__regional::before {
  content: '';
  position: absolute;
  inset-inline: 0;
  bottom: 100%;
  height: var(--hs-scene-top);
  background: var(--hs-scene-sky-ramp, var(--hs-scene-sky, #8a8298));
}

/* Colour-matched descent from the artwork's real bottom edge into the page
   surface, for windows tall enough that the artwork ends above the fold. On
   wider windows the artwork runs past the bottom of the screen and this layer
   is simply never seen. */
body.hs-page--compatibility-scene .hs-page-backdrop__regional::after {
  content: '';
  position: absolute;
  inset-inline: 0;
  top: 100%;
  height: var(--hs-scene-fade);
  background:
    linear-gradient(180deg,
      rgba(251, 250, 248, 0) 0%,
      rgba(251, 250, 248, .42) 34%,
      rgba(251, 250, 248, .86) 72%,
      var(--hs-scene-surface) 100%),
    var(--hs-scene-blend-ramp, var(--hs-scene-blend, #926b56));
}

/* ---- Page shell over the scene ---------------------------------------- */

body.hs-page--compatibility-scene main.site-main,
body.hs-page--compatibility-scene main#main { background: transparent; }

/* The header keeps the theme's light identity: the artwork is a bright,
   pastel composition, so the previous dark navy bar was both a visual break
   and unnecessary. */
body.hs-page--compatibility-scene .hs-header {
  background: rgba(255, 255, 255, .88);
  border-bottom-color: rgba(128, 106, 80, .14);
}

body.hs-page--compatibility-scene .hs-compat__hero {
  position: relative;
  z-index: 1;
}

/* The hero is a spacer sized from the artwork itself, so the first card
   always lands in the same place relative to the composition instead of at an
   arbitrary clamp() value. Capped so the form stays reachable on short
   viewports. */
body.hs-page--compatibility-scene .hs-compat__hero-inner {
  width: var(--shell);
  /* The scene is a backdrop, not a poster: the first card has to be visible
     without scrolling. Capped so the form always reaches the first screen, and
     kept below the couple's faces at every width. */
  min-height: min(
    calc(var(--hs-scene-top) + (100vw / var(--hs-scene-ratio, 1.77683)) * .66),
    calc(100vh - 230px)
  );
  display: flex;
  align-items: flex-end;
  padding-top: calc(var(--hs-scene-top) + 24px);
  padding-bottom: 26px;
}

/* Artwork already carries the localized title: the H1 stays in the document
   for accessibility and search engines but is not painted a second time. */
body.hs-page--compatibility-scene .hs-compat__hero--art-directed .hs-compat__hero-inner {
  padding-bottom: 0;
}

/* Fallback for any locale rendered without baked-in artwork text. */
body.hs-page--compatibility-scene .hs-compat__hero-copy {
  width: min(46%, 540px);
  color: #201d33;
}
body.hs-page--compatibility-scene .hs-compat__hero-copy h1 {
  margin: 10px 0 0;
  color: #201d33;
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 4.6vw, 4.25rem);
  line-height: 1.03;
  text-shadow: 0 2px 18px rgba(255, 255, 255, .55);
}
body.hs-page--compatibility-scene .hs-compat__hero-copy p {
  max-width: 520px;
  margin: 18px 0 0;
  color: #3b3652;
  font-size: 1rem;
  line-height: 1.65;
  text-shadow: 0 2px 14px rgba(255, 255, 255, .5);
}
body.hs-page--compatibility-scene .hs-compat__hero .eyebrow,
body.hs-page--compatibility-scene .hs-compat__hero .eyebrow::before {
  color: #8a6314;
}

body.hs-page--compatibility-scene .hs-compat .hs-compat__body {
  padding-top: 0;
  padding-bottom: clamp(36px, 4vw, 64px);
}
body.hs-page--compatibility-scene .hs-compat__submit { margin: 16px 0 20px; }
body.hs-page--compatibility-scene .hs-compat__empty { min-height: 116px; padding: 22px 15px; }
body.hs-page--compatibility-scene .hs-compat__choose,
body.hs-page--compatibility-scene .hs-compat__result-inner,
body.hs-page--compatibility-scene .hs-compat__empty {
  box-shadow: 0 22px 70px rgba(2, 8, 28, .20);
}
body.hs-page--compatibility-scene .hs-footer {
  background: rgba(255, 251, 245, .955);
  box-shadow: 0 -18px 60px rgba(2, 8, 28, .13);
}

@media (max-width: 980px) {
  body.hs-page--compatibility-scene .hs-compat__hero-copy { width: min(56%, 520px); }
}

/* Tablets and phones: same rule, mobile artwork and the shorter header.
   The artwork is still never cropped — only the source file and the amount of
   colour-matched breathing room below it change. */
@media (max-width: 820px) {
  body.hs-page--compatibility-scene {
    --hs-header-h: 64px;
    --hs-scene-fade: 46vh;
  }
}

/* Tablets and small laptops get a mid-size copy of the same artwork instead of
   the full-width desktop file: same composition, ~55% of the bytes. */
@media (min-width: 761px) and (max-width: 1280px) {
  body.hs-page--compatibility-scene .hs-page-backdrop--compatibility-scene .hs-page-backdrop__regional {
    aspect-ratio: var(--hs-scene-ratio-tablet, var(--hs-scene-ratio, 1.77683));
    background-image: var(--hs-scene-tablet, var(--hs-scene));
  }
}

@media (max-width: 760px) {
  body.hs-page--compatibility-scene .hs-page-backdrop--compatibility-scene .hs-page-backdrop__regional {
    aspect-ratio: var(--hs-scene-ratio-mobile, var(--hs-scene-ratio, 1.77683));
    background-image: var(--hs-scene-mobile);
  }
  /* On a portrait phone a 16:9 composition is only ~56vw tall. Rather than
     zooming into it (which cut the title and enlarged the faces), the full
     composition is kept and the scene is given room to breathe underneath, so
     it reads as a scene rather than a cropped banner. */
  body.hs-page--compatibility-scene .hs-compat__hero-inner {
    /* Measured: the form's own leading whitespace already adds ~59px, so the
       earlier +26px left an 85px dead band of bare gradient between the
       artwork and the first card on every phone size. The card now meets the
       artwork, the way it does on desktop. */
    min-height: calc(var(--hs-scene-top) + (100vw / var(--hs-scene-ratio-mobile, 1.77683)) - 47px);
    padding-top: calc(var(--hs-scene-top) + 12px);
    padding-bottom: 0;
    align-items: flex-start;
  }
  body.hs-page--compatibility-scene .hs-compat__hero-copy {
    width: 100%;
    max-width: 430px;
  }
  body.hs-page--compatibility-scene .hs-compat__hero-copy h1 {
    font-size: clamp(2.35rem, 10.5vw, 3.35rem);
  }
}

/* Very wide, short windows: the artwork is taller than the viewport, so its
   lower edge (foreground flora and balustrade) falls below the fold. That is
   the only part of the composition allowed to leave the first screen — the
   title and the couple always stay visible. */
@media (min-aspect-ratio: 2/1) and (min-width: 1100px) {
  body.hs-page--compatibility-scene .hs-compat__hero-inner {
    min-height: calc(100vh - 210px);
  }
}

@media (prefers-reduced-motion: reduce) {
  body.hs-page--compatibility-scene .hs-page-backdrop { transform: none; }
}

/* ==========================================================
   1.2.7.1 — mobile navigation palette

   Below 1120px the navigation collapses into a light dropdown panel. The
   homepage rules paint top-level links white (`.home .site-nav a`,
   `.home .hs-header .site-nav__list > li > a`) because the desktop homepage
   header sits on the dark full-scene artwork — but inside this light panel that
   produced white text on a white background: measured contrast 1.00:1, five menu
   items completely invisible on a phone.

   The panel now owns its palette on every page, so no page-level header theme
   can leak into it.
   ========================================================== */
@media (max-width: 1120px) {
  .hs-header .site-nav,
  .home .hs-header .site-nav,
  body.hs-page--compatibility-scene .hs-header .site-nav {
    background: #fffdf9;
  }

  .hs-header .site-nav__list > li > a,
  .home .hs-header .site-nav__list > li > a,
  .home .hs-nav a,
  .home .site-nav a,
  body.hs-page--compatibility-scene .site-nav a {
    color: #2d2b3b;          /* 13.8:1 on the panel */
    text-shadow: none;
  }

  .hs-header .site-nav__list > .menu-item-has-children > .hs-submenu-toggle,
  .home .hs-header .site-nav__list > .menu-item-has-children > .hs-submenu-toggle {
    color: #6b6070;          /* 5.8:1 */
  }

  /* Open / current pill. The previous gold-on-cream measured 4.04:1, under the
     4.5:1 WCAG AA threshold; this is 6.5:1. */
  .hs-header .site-nav__list > li > a:hover,
  .hs-header .site-nav__list > li > a:focus-visible,
  .hs-header .site-nav__list > li:focus-within > a,
  .hs-header .site-nav__list > li.is-submenu-open > a,
  .hs-header .site-nav__list > .current-menu-item > a,
  .hs-header .site-nav__list > .current-menu-ancestor > a,
  .home .hs-header .site-nav__list > li > a:hover,
  .home .hs-header .site-nav__list > li > a:focus-visible,
  .home .hs-header .site-nav__list > li:focus-within > a,
  .home .hs-header .site-nav__list > li.is-submenu-open > a,
  .home .hs-header .site-nav__list > .current-menu-item > a,
  .home .hs-header .site-nav__list > .current-menu-ancestor > a {
    color: #7a4e08 !important;
    background: #fff3dc !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }

  /* Nested links keep the same reading surface as the panel. */
  .hs-header .site-nav .sub-menu,
  .home .hs-header .site-nav .sub-menu,
  .hs-header .site-nav .nav-mega,
  .home .hs-header .site-nav .nav-mega {
    background: #fff8ee;
  }
}

/* ==========================================================
   1.2.7.1 — mobile navigation geometry

   Pre-existing defect, present in 1.2.6.7 and verified side by side:
   the ≤1120px rule makes the panel `position:absolute`, but the later
   unconditional `.hs-header .site-nav { position:relative }` (added with the
   1.2.4 layering work) overrides it — media queries add no specificity. The
   panel therefore sat in the header's grid flow: the header row grew from 64px
   to 298px and pushed the logo and the header buttons 150px apart.

   The panel is re-anchored to the header row, which also makes it follow the
   WordPress admin bar automatically.
   ========================================================== */
@media (max-width: 1120px) {
  /* Four generations of mobile-panel CSS coexist across theme.css and this
     file (`.site-nav` fixed, `.hs-nav` absolute, `.hs-header .site-nav` at two
     breakpoints, plus an unconditional position:relative and an
     `overflow: visible !important`). Nine rule sets matched this one element.
     Rather than add a tenth layer that loses to the existing !important, this
     is the single authoritative definition of the panel. */
  .hs-header .site-nav,
  .hs-header .site-nav.is-open {
    position: absolute !important;
    /* .hs-header-row is a grid container, so an absolutely positioned child is
       laid out against its own grid area, not the row. Spanning every column
       makes that area the full row width — otherwise left/right resolved
       against the narrow middle column and the panel shrank to its content. */
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
    /* `.hs-header .site-nav { justify-self: center }` from the desktop rules
       makes an absolutely positioned grid child shrink-to-fit and centre inside
       its area instead of stretching between left and right — the panel came
       out 169px wide, centred, instead of spanning the row. */
    justify-self: stretch !important;
    align-self: start !important;
    inset: calc(100% + 8px) 0 auto 0 !important;
    width: auto !important;
    height: auto !important;
    max-height: calc(100dvh - 8rem) !important;
    overflow: auto !important;
    overscroll-behavior: contain;
    z-index: 30010 !important;
    padding: 10px !important;
    border: 1px solid rgba(177, 133, 69, .26);
    border-radius: 16px;
    box-shadow: 0 24px 70px rgba(17, 18, 35, .24);
  }
  .hs-header .site-nav { display: none; }
  .hs-header .site-nav.is-open { display: block !important; }
  .hs-header .site-nav__list {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 2px;
    width: 100%;
  }

  /* One disclosure affordance per item: the list marker on the link duplicated
     the chevron on the injected toggle button, so every parent item showed two. */
  .hs-header .site-nav__list > .menu-item-has-children > a::after {
    display: none !important;
    content: none !important;
  }

  /* Comfortable, thumb-sized rows. */
  .hs-header .site-nav__list > li > a {
    min-height: 46px;
    padding: 0 12px;
  }
  .hs-header .site-nav .sub-menu a {
    min-height: 42px;
    display: flex;
    align-items: center;
  }
}

/* --- Sky now: server-rendered ephemeris panel (1.2.9.0) ------------------ */
.hs-sky-now__head{margin-bottom:18px}
.hs-sky-now__lead{margin:6px 0 0;opacity:.75;max-width:60ch}
.hs-sky-now__table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.hs-sky-now__table th,.hs-sky-now__table td{text-align:start;padding:10px 12px;border-bottom:1px solid rgba(0,0,0,.08)}
.hs-sky-now__table thead th{font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;opacity:.6}
.hs-sky-now__table tbody th{font-weight:600;white-space:nowrap}
.hs-sky-now__deg{font-weight:600;margin-inline-end:.4em}
.hs-sky-now__sign{opacity:.85}
.hs-sky-now__retro{display:inline-block;margin-inline-start:.6em;padding:1px 8px;border-radius:999px;font-size:.75rem;background:rgba(120,60,160,.12)}
.hs-sky-now__stamp{margin-top:12px;font-size:.8rem;opacity:.65}
@media (max-width:560px){
  .hs-sky-now__table th,.hs-sky-now__table td{padding:9px 6px}
  .hs-sky-now__retro{margin-inline-start:0;margin-block-start:4px}
  .hs-sky-now__table td{display:flex;flex-wrap:wrap;gap:.3em;align-items:baseline}
}

/* --- Sky panel: all ten bodies as a grid (1.2.9.3) ----------------------- */
.hs-sky-strip{
  position:relative;z-index:2;
  margin-block:0 clamp(16px,2.4vw,28px);
  border-top:1px solid rgba(255,255,255,.16);
  background:linear-gradient(180deg,rgba(18,12,28,.34) 0%,rgba(18,12,28,.56) 100%);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  backdrop-filter:blur(14px) saturate(140%);
  color:#fdf7ee;
}
.hs-sky-strip__inner{padding-block:16px}
.hs-sky-strip__head{
  display:flex;align-items:baseline;justify-content:space-between;
  gap:16px;flex-wrap:wrap;margin-bottom:12px;
}
.hs-sky-strip__label{
  margin:0;display:flex;align-items:center;gap:8px;
  font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
  color:#f0cf92;white-space:nowrap;
}
.hs-sky-strip__dot{
  width:7px;height:7px;border-radius:50%;
  background:#f0cf92;box-shadow:0 0 0 4px rgba(240,207,146,.18);
}
.hs-sky-strip__stamp{margin:0;font-size:.72rem;opacity:.62;white-space:nowrap}

/* auto-fit: six across on a wide desktop, two on a phone, never clipped */
.hs-sky-strip__grid{
  list-style:none;margin:0;padding:0;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(168px,1fr));
  gap:2px;
  border-radius:12px;overflow:hidden;
  background:rgba(255,255,255,.07);
}
.hs-sky-strip__cell{
  display:flex;align-items:center;gap:10px;
  padding:10px 12px;
  background:rgba(18,12,28,.30);
  font-variant-numeric:tabular-nums;
}
.hs-sky-strip__glyph{
  flex:0 0 auto;width:26px;height:26px;border-radius:50%;
  display:grid;place-items:center;
  font-size:1rem;line-height:1;color:#f0cf92;
  background:rgba(240,207,146,.14);
}
.hs-sky-strip__body{display:flex;flex-direction:column;min-width:0;gap:1px}
.hs-sky-strip__name{
  font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;
  opacity:.72;display:flex;align-items:center;gap:6px;
}
.hs-sky-strip__pos{font-size:.9rem;white-space:nowrap}
.hs-sky-strip__pos strong{font-weight:600}
.hs-sky-strip__retro{
  font-size:.62rem;padding:0 5px;border-radius:999px;line-height:1.5;
  background:rgba(240,207,146,.22);color:#f6dfb4;letter-spacing:0;
}
.hs-sky-strip__cell.is-retrograde .hs-sky-strip__glyph{
  box-shadow:inset 0 0 0 1px rgba(240,207,146,.45);
}

/* Card variant: light content flow, above the zodiac signs. */
.hs-sky-strip--card{
  border:1px solid rgba(26,18,40,.10);
  border-radius:18px;
  background:linear-gradient(180deg,rgba(255,252,247,.97) 0%,rgba(250,244,235,.97) 100%);
  -webkit-backdrop-filter:none;backdrop-filter:none;
  color:#241a33;
  box-shadow:0 10px 30px -22px rgba(40,25,70,.45);
}
.hs-sky-strip--card .hs-sky-strip__inner{padding:16px clamp(16px,2.2vw,26px)}
.hs-sky-strip--card .hs-sky-strip__label{color:#8a6a1f}
.hs-sky-strip--card .hs-sky-strip__dot{background:#c49a3c;box-shadow:0 0 0 4px rgba(196,154,60,.16)}
.hs-sky-strip--card .hs-sky-strip__grid{background:rgba(26,18,40,.08)}
.hs-sky-strip--card .hs-sky-strip__cell{background:#fffdf9}
.hs-sky-strip--card .hs-sky-strip__glyph{color:#a97f28;background:rgba(196,154,60,.13)}
.hs-sky-strip--card .hs-sky-strip__name{opacity:.62}
.hs-sky-strip--card .hs-sky-strip__retro{background:rgba(120,60,160,.14);color:#5c3b7a}
.hs-sky-strip--card .hs-sky-strip__cell.is-retrograde .hs-sky-strip__glyph{box-shadow:inset 0 0 0 1px rgba(120,60,160,.35)}

@media (max-width:640px){
  .hs-sky-strip__grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
  .hs-sky-strip__cell{padding:9px 10px;gap:8px}
  .hs-sky-strip__glyph{width:22px;height:22px;font-size:.88rem}
  .hs-sky-strip__pos{font-size:.84rem}
}
@media (prefers-reduced-transparency:reduce){
  .hs-sky-strip{background:rgba(18,12,28,.9);-webkit-backdrop-filter:none;backdrop-filter:none}
  .hs-sky-strip--card{background:#fffdf9}
}

/* --- Sky panel, aside variant: narrow column beside a forecast ----------- */
.hs-sky-strip--aside{
  margin-block:14px 0;
  border-radius:16px;
}
.hs-sky-strip--aside .hs-sky-strip__inner{padding:14px}
.hs-sky-strip--aside .hs-sky-strip__head{margin-bottom:10px;gap:6px}
.hs-sky-strip--aside .hs-sky-strip__stamp{font-size:.66rem}
/* One body per line: a sidebar has no room for columns, and a clipped grid
   would hide the outer planets the way the first hero row did. */
.hs-sky-strip--aside .hs-sky-strip__grid{grid-template-columns:1fr;gap:1px}
.hs-sky-strip--aside .hs-sky-strip__cell{padding:7px 10px;gap:9px}
.hs-sky-strip--aside .hs-sky-strip__glyph{width:20px;height:20px;font-size:.82rem}
.hs-sky-strip--aside .hs-sky-strip__body{
  flex-direction:row;align-items:baseline;justify-content:space-between;
  gap:8px;width:100%;
}
.hs-sky-strip--aside .hs-sky-strip__name{font-size:.66rem}
.hs-sky-strip--aside .hs-sky-strip__pos{font-size:.8rem;text-align:end}

/* --- Embedded grid inside the observatory card (1.3.0.0) ---------------- */
.hs-sky-strip--embed{
  margin:14px 0 0;border:0;border-top:1px solid rgba(26,18,40,.10);
  border-radius:0;background:none;box-shadow:none;color:inherit;
  -webkit-backdrop-filter:none;backdrop-filter:none;
}
.hs-sky-strip--embed .hs-sky-strip__inner{padding:14px 0 0}
.hs-sky-strip--embed .hs-sky-strip__grid{background:rgba(26,18,40,.07)}
.hs-sky-strip--embed .hs-sky-strip__cell{background:#fffdf9}
.hs-sky-strip--embed .hs-sky-strip__label{color:#8a6a1f}
.hs-sky-strip--embed .hs-sky-strip__dot{background:#c49a3c;box-shadow:0 0 0 4px rgba(196,154,60,.16)}
.hs-sky-strip--embed .hs-sky-strip__glyph{color:#a97f28;background:rgba(196,154,60,.13)}
.hs-sky-strip--embed .hs-sky-strip__name{opacity:.62}
.hs-sky-strip--embed .hs-sky-strip__retro{background:rgba(120,60,160,.14);color:#5c3b7a}

/* The module is used unchanged in the side column; the column is widened to
   fit it instead of the module being squeezed to fit the column. Cramming it
   into ~190px broke the phase labels and collapsed the moon art. */
.hs-lunar-observatory--full{padding:18px}

/* The side column sits on the left, matching the home page. */
.forecast-layout--sign{grid-template-columns:minmax(340px,.78fr) minmax(0,1.5fr)}
.forecast-layout--sign .forecast-aside{order:-1}
@media (max-width:980px){
  .forecast-layout--sign{grid-template-columns:1fr}
  .forecast-layout--sign .forecast-aside{order:0}
}

/* --- Per-sign sky: computed facts for this one sign --------------------- */
.hs-sign-sky{
  margin-top:22px;padding:18px 20px;
  border:1px solid rgba(26,18,40,.10);border-radius:16px;
  background:linear-gradient(180deg,#fffdf9 0%,#faf4eb 100%);
}
.hs-sign-sky__title{margin:0 0 14px;font-family:var(--hs-serif,inherit);font-size:1.08rem;font-weight:500}
.hs-sign-sky__cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}
.hs-sign-sky__sub{
  margin:0 0 8px;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;
  font-weight:700;color:#8a6a1f;
}
.hs-sign-sky__list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.hs-sign-sky__list li{font-size:.9rem;font-variant-numeric:tabular-nums}
.hs-sign-sky__empty{margin:0;font-size:.88rem;opacity:.7}
.hs-sign-sky__retro{
  font-size:.7rem;padding:1px 7px;border-radius:999px;
  background:rgba(120,60,160,.13);color:#5c3b7a;white-space:nowrap;
}
.hs-sign-sky__kind{
  margin-inline-start:6px;font-size:.68rem;opacity:.6;
}
.hs-sign-sky__note{margin:14px 0 0;font-size:.74rem;opacity:.6}

/* --- Premium CTA under every forecast (1.3.1.0) ------------------------- */
.hs-premium-cta{
  margin-top:24px;padding:24px clamp(20px,3vw,32px);
  border:1px solid rgba(196,154,60,.32);border-radius:18px;
  background:
    radial-gradient(120% 140% at 88% 0%,rgba(240,207,146,.22) 0%,transparent 58%),
    linear-gradient(180deg,#fffdf8 0%,#fbf3e6 100%);
  box-shadow:0 14px 34px -26px rgba(90,62,20,.5);
}
.hs-premium-cta__eyebrow{
  margin:0 0 6px;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;
  font-weight:700;color:#a97f28;
}
.hs-premium-cta__title{margin:0 0 8px;font-family:var(--hs-serif,inherit);font-size:clamp(1.15rem,2.2vw,1.5rem);font-weight:500;line-height:1.25}
.hs-premium-cta__sub{margin:0 0 18px;max-width:54ch;font-size:.95rem;opacity:.82}
.hs-premium-cta__button{
  display:inline-flex;align-items:center;gap:2px;
  padding:12px 24px;border-radius:999px;
  background:linear-gradient(180deg,#e6be6e 0%,#c89a3d 100%);
  color:#2a1f08;font-weight:650;font-size:.95rem;text-decoration:none;
  box-shadow:0 8px 20px -12px rgba(140,100,25,.8);
}
.hs-premium-cta__button:hover,.hs-premium-cta__button:focus-visible{
  background:linear-gradient(180deg,#eec87d 0%,#d0a344 100%);
}
.hs-premium-cta__note{margin:12px 0 0;font-size:.76rem;opacity:.6}
.hs-premium-cta--sign{margin-top:26px}
@media (max-width:560px){
  .hs-premium-cta{padding:20px 18px}
  .hs-premium-cta__button{width:100%;justify-content:center}
}

/* The observatory needs roughly the width it has on the home page (~390px).
   The hub/topic nav column was sized for a bare switcher at 190-220px. */
.horoscope-hub-layout{grid-template-columns:minmax(320px,360px) minmax(0,1fr)}
@media (max-width:1100px){
  .horoscope-hub-layout{grid-template-columns:minmax(280px,320px) minmax(0,1fr)}
  .forecast-layout--sign{grid-template-columns:minmax(300px,.7fr) minmax(0,1.5fr)}
}
/* Phase captions are two words in most languages; keep them from breaking
   mid-word the way they did in the narrow column. */
.hs-lunar-observatory .hs-moon-phase-label,
.hs-lunar-observatory figcaption{hyphens:none;overflow-wrap:normal;word-break:keep-all}

/* --- Natal calculator (1.3.2.0) ----------------------------------------- */
.hs-natal__lead{max-width:62ch;margin:0 0 22px;opacity:.82}
.hs-natal__form{
  max-width:640px;padding:22px clamp(18px,2.6vw,28px);
  border:1px solid rgba(26,18,40,.12);border-radius:18px;background:#fffdf9;
  box-shadow:0 12px 30px -26px rgba(40,25,70,.5);
}
.hs-natal__row{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}
.hs-natal__field{display:flex;flex-direction:column;gap:6px;position:relative}
.hs-natal__field>span{font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;font-weight:700;opacity:.65}
.hs-natal__field input{
  padding:11px 13px;border:1px solid rgba(26,18,40,.18);border-radius:10px;
  background:#fff;font:inherit;font-size:.95rem;
}
.hs-natal__field input:focus-visible{outline:2px solid #c49a3c;outline-offset:1px}
.hs-natal__field input:disabled{opacity:.45}
.hs-natal__field small{font-size:.74rem;opacity:.6}
.hs-natal__field--place{margin-top:12px}
.hs-natal__check{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:.88rem}
.hs-natal__places{
  list-style:none;margin:4px 0 0;padding:4px;position:absolute;z-index:5;top:100%;left:0;right:0;
  border:1px solid rgba(26,18,40,.14);border-radius:12px;background:#fff;
  box-shadow:0 18px 40px -24px rgba(40,25,70,.6);max-height:260px;overflow:auto;
}
.hs-natal__places li{padding:9px 11px;border-radius:8px;cursor:pointer;font-size:.92rem}
.hs-natal__places li:hover,.hs-natal__places li:focus-visible{background:rgba(196,154,60,.14);outline:none}
.hs-natal__submit{
  margin-top:18px;padding:12px 28px;border:0;border-radius:999px;cursor:pointer;
  background:linear-gradient(180deg,#e6be6e 0%,#c89a3d 100%);
  color:#2a1f08;font:inherit;font-weight:650;
}
.hs-natal__error{margin:12px 0 0;color:#8c2f2f;font-size:.88rem}

.hs-natal__progress{max-width:640px;margin-top:18px}
.hs-natal__progress-label{margin:0 0 8px;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;opacity:.65}
.hs-natal__steps{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.hs-natal__steps li{
  display:flex;align-items:center;gap:9px;font-size:.9rem;opacity:.45;
}
.hs-natal__steps li::before{
  content:"";width:9px;height:9px;border-radius:50%;flex:0 0 auto;
  border:1.5px solid currentColor;
}
.hs-natal__steps li.is-active{opacity:.95}
.hs-natal__steps li.is-done{opacity:.8}
.hs-natal__steps li.is-done::before{background:#3f8a5b;border-color:#3f8a5b}

.hs-natal__result{max-width:640px;margin-top:20px}
.hs-natal__result h3{margin:0 0 12px;font-family:var(--hs-serif,inherit);font-weight:500}
.hs-natal__cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:0}
.hs-natal__card{
  padding:14px;border:1px solid rgba(26,18,40,.12);border-radius:14px;background:#fffdf9;
}
.hs-natal__card dt{font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;opacity:.6;font-weight:700}
.hs-natal__card dd{margin:5px 0 0;font-size:1.02rem;font-weight:600;font-variant-numeric:tabular-nums}
.hs-natal__caveat{margin:12px 0 0;padding:11px 13px;border-radius:10px;background:rgba(196,154,60,.12);font-size:.88rem}
.hs-natal__upsell{
  margin-top:16px;padding:14px 16px;border:1px dashed rgba(196,154,60,.5);border-radius:14px;
  display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
}
.hs-natal__soon{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;opacity:.6}
.hs-natal__row--place{margin-top:12px}
.hs-natal__field select{
  padding:11px 13px;border:1px solid rgba(26,18,40,.18);border-radius:10px;
  background:#fff;font:inherit;font-size:.95rem;
}
.hs-natal__field--tz{margin-top:12px;max-width:340px}
.hs-natal__computed{margin:12px 0 0;font-size:.82rem;opacity:.7}
.hs-natal__computed strong{font-weight:650;opacity:1}

/* --- Two routes to a birthplace, labelled by precision (1.3.4.0) -------- */
.hs-natal__geo{margin-bottom:4px}
.hs-natal__geo-btn{
  display:inline-flex;align-items:center;gap:8px;cursor:pointer;
  padding:11px 18px;border:1px solid rgba(196,154,60,.55);border-radius:999px;
  background:rgba(240,207,146,.14);font:inherit;font-size:.92rem;font-weight:600;
}
.hs-natal__geo-btn:hover:not(:disabled){background:rgba(240,207,146,.24)}
.hs-natal__geo-btn:disabled{opacity:.55;cursor:progress}
.hs-natal__precision{
  font-style:normal;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;
  padding:2px 8px;border-radius:999px;font-weight:700;
}
.hs-natal__precision--high{background:rgba(63,138,91,.16);color:#2c6642}
.hs-natal__precision--low{background:rgba(26,18,40,.09);color:#5b5366;align-self:flex-start;margin-top:2px}
.hs-natal__geo-note{margin:8px 0 0;font-size:.78rem;opacity:.65;max-width:52ch}
.hs-natal__geo-status{margin:8px 0 0;font-size:.82rem}
.hs-natal__geo-status.is-ok{color:#2c6642}
.hs-natal__geo-status.is-error{color:#8c2f2f}
.hs-natal__or{
  display:flex;align-items:center;gap:12px;margin:18px 0 6px;
  font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;opacity:.5;
}
.hs-natal__or::before,.hs-natal__or::after{content:"";flex:1;height:1px;background:rgba(26,18,40,.14)}

/* --- Natal form: fixes and iconography (1.3.5.0) ------------------------ */
/* .hs-natal__field sets display:flex, which outranks the browser's own
   [hidden]{display:none}. The time-zone field therefore stayed in the layout
   with an empty <select> — it looked broken rather than hidden. */
.hs-natal [hidden]{display:none !important}

.hs-natal__ico{
  display:inline-grid;place-items:center;width:18px;height:18px;margin-inline-end:7px;
  border-radius:50%;background:rgba(196,154,60,.16);color:#a97f28;
  font-style:normal;font-size:.72rem;line-height:1;vertical-align:-3px;
}
.hs-natal__field>span{display:flex;align-items:center}

/* Personal-page artwork receives its custom properties inline from header.php,
   so a stale CSS cache cannot remove the image URL. Only the pieces that are
   safe to duplicate live here. */
.hs-has-personal-scene .birth-chart-demo{display:none}

/* ==========================================================
   Personal-horoscope backdrop — same pattern as the home page's
   .home .hs-page-backdrop--full-scene: variable set on the element in
   header.php, modifier class in PHP, painting here.
   ========================================================== */
body:not(.home) .hs-page-backdrop.hs-page-backdrop--personal-scene {
  /* Inner pages hide the generic canvas above; this page explicitly opts back in. */
  display:block;
  background:
    linear-gradient(95deg, rgba(255,253,249,.80) 0%, rgba(255,253,249,.62) 38%, rgba(255,253,249,.20) 72%, rgba(255,253,249,.12) 100%),
    var(--hs-personal-scene) center top / cover no-repeat;
  background-color:#fffdf9;
}
.hs-page-backdrop.hs-page-backdrop--personal-scene::before {
  background: linear-gradient(180deg, rgba(255,253,249,0) 0%, rgba(255,253,249,.30) 62%, rgba(255,253,249,.78) 100%);
}
.hs-page-backdrop.hs-page-backdrop--personal-scene::after { background:none; }
.hs-page-backdrop.hs-page-backdrop--personal-scene .hs-page-backdrop__regional { display:none; }
.hs-page-backdrop--personal-scene ~ main .birth-chart-demo { visibility:hidden; }

@media (max-width:760px) {
  .hs-page-backdrop.hs-page-backdrop--personal-scene {
    background:
      linear-gradient(180deg, rgba(255,253,249,.70) 0%, rgba(255,253,249,.52) 26%, rgba(255,253,249,.34) 48%, rgba(255,253,249,.72) 78%, rgba(255,253,249,.88) 100%),
      var(--hs-personal-scene-mobile) center top / cover no-repeat;
    background-color:#fffdf9;
  }
  .hs-page-backdrop.hs-page-backdrop--personal-scene::before { background:none; }
}
