.astro-page {
    --astro-forest: #123f30;
    --astro-green: #286443;
    --astro-cream: #f7f3e8;
    --astro-paper: #fffdf7;
    --astro-gold: #d3aa51;
    --astro-ink: #20392e;
    --astro-muted: #68786d;
    color: var(--astro-ink);
    background: var(--astro-cream);
}
.astro-wrap { width: min(1400px, 100%); margin-inline: auto; padding-inline: 20px; }
.astro-hero {
    position: relative;
    overflow: hidden;
    color: var(--astro-paper);
    background:
        radial-gradient(ellipse at 78% 40%, rgba(199, 160, 73, .14), transparent 31rem),
        linear-gradient(115deg, #103c2e 0%, #1d523c 55%, #244a39 100%);
}
.astro-hero::after {
    position: absolute; inset: 0; content: ""; pointer-events: none; opacity: .14;
    background-image: radial-gradient(rgba(255,255,255,.7) .6px, transparent .6px);
    background-size: 15px 15px;
    mask-image: linear-gradient(90deg, transparent, #000 75%);
}
.astro-crumb {
    position: relative; z-index: 1; display: flex; gap: .7rem; align-items: center;
    padding-top: 1.4rem; color: rgba(255,255,255,.6); font-size: .78rem;
}
.astro-crumb a { color: #ecd28d; text-decoration: none; }
.astro-crumb a:hover { text-decoration: underline; }
.astro-hero-grid {
    position: relative; z-index: 1; display: grid; grid-template-columns: 1.1fr .9fr;
    align-items: center; min-height: 480px; padding: 2.4rem 0 2rem;
}
.astro-copy { max-width: 650px; padding-block: 1rem; }
.astro-kicker {
    display: flex; align-items: center; gap: .65rem; margin: 0 0 1rem;
    color: #e6c879; font-size: .73rem; font-weight: 700; letter-spacing: .17em; text-transform: uppercase;
}
.astro-kicker-line { width: 28px; height: 1px; background: currentColor; }
.astro-copy h1 {
    margin: 0; color: #fffaf0; font-family: inherit;
    font-size: clamp(3.4rem, 7vw, 6.3rem); font-weight: 700; letter-spacing: -.03em; line-height: 1.05;
}
.astro-copy h1 em { color: #e3c370; font-weight: 400; }
.astro-lead { max-width: 490px; margin: 1.5rem 0 1.8rem; color: rgba(255,255,255,.75); font-size: 1.04rem; line-height: 1.8; }
.astro-cta {
    display: inline-flex; gap: 1.5rem; align-items: center; padding: .85rem 1.15rem;
    border: 1px solid rgba(235,211,143,.55); border-radius: 4px;
    color: #fff8e8; font-size: .88rem; font-weight: 600; text-decoration: none;
    transition: background .2s ease, transform .2s ease;
}
.astro-cta:hover { transform: translateY(-2px); background: rgba(255,255,255,.1); }
.astro-cta span { color: #e3c370; font-size: 1.2rem; }
.astro-orbit { position: relative; width: min(390px, 100%); aspect-ratio: 1; justify-self: center; display: grid; place-items: center; }
.astro-orbit-ring { position: absolute; border: 1px solid rgba(229,203,128,.45); border-radius: 50%; }
.astro-ring-one { inset: 8%; }
.astro-ring-two { inset: 17%; border-style: dashed; opacity: .7; }
.astro-ring-three { inset: 27%; opacity: .48; }
.astro-orbit-center {
    display: flex; width: 35%; aspect-ratio: 1; align-items: center; justify-content: center; flex-direction: column;
    border: 1px solid rgba(240,214,141,.7); border-radius: 50%; color: #f1d98f;
    background: rgba(14,52,39,.66); box-shadow: 0 0 0 12px rgba(255,255,255,.025), 0 0 0 26px rgba(255,255,255,.02);
}
.astro-orbit-center span { font-family: inherit; font-size: clamp(2.4rem, 5vw, 3.8rem); line-height: 1; letter-spacing: -.03em; }
.astro-orbit-center small { margin-top: .45rem; font-size: .52rem; letter-spacing: .2em; }
.astro-star { position: absolute; color: #e8ce83; }
.star-a { top: 12%; left: 49%; font-size: 1.2rem; }
.star-b { right: 9%; top: 43%; font-size: 1.7rem; }
.star-c { bottom: 14%; left: 29%; font-size: .9rem; }
.star-d { top: 28%; left: 14%; font-size: 1.2rem; }
.astro-bottomline { position: relative; z-index: 1; display: flex; align-items: center; gap: 1rem; padding: 1.1rem 0; border-top: 1px solid rgba(255,255,255,.15); color: rgba(255,255,255,.64); font-size: .7rem; letter-spacing: .07em; text-transform: uppercase; }
.astro-bottomline i { width: 4px; height: 4px; background: var(--astro-gold); border-radius: 50%; }
.astro-selection { padding: clamp(3rem, 5vw, 4.5rem) 0 clamp(3.5rem, 7vw, 6.2rem); }
.astro-section-head { display: flex; flex-direction: column; align-items: flex-start; gap: .6rem; margin-bottom: 2rem; }
.astro-kicker-dark { margin-bottom: .6rem; color: #9a7937; }
.astro-section-head h2 { margin: 0; color: var(--astro-forest); font-family: inherit; font-size: clamp(1.8rem, 3vw, 2.4rem); font-weight: 700; letter-spacing: normal; }
.astro-section-intro { max-width: 760px; margin: 0; color: var(--astro-muted); font-size: .9rem; line-height: 1.7; }
.astro-content-grid { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 1.2rem; align-items: stretch; }
.astro-sign-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; }
.astro-sign {
    display: flex; min-height: 140px; padding: 1rem .75rem; flex-direction: column; align-items: center; justify-content: center;
    border: 1px solid #e6e0d2; border-radius: 8px; background: rgba(255,253,247,.8); color: var(--astro-ink); cursor: pointer;
    transition: transform .18s ease, border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.astro-sign:hover { transform: translateY(-3px); border-color: #c8aa63; box-shadow: 0 9px 22px rgba(44,70,51,.08); }
.astro-sign.is-selected { border-color: var(--astro-green); background: #edf3eb; box-shadow: inset 0 0 0 1px var(--astro-green); }
.astro-sign-symbol { display: grid; width: 2.35rem; height: 2.35rem; margin-bottom: .35rem; place-items: center; border: 1px solid #c8aa63; border-radius: 50%; color: #9a7937; font-family: inherit; font-size: .8rem; font-weight: 700; letter-spacing: .04em; line-height: 1; }
.astro-sign-name { color: var(--astro-forest); font-size: .93rem; font-weight: 700; }
.astro-sign-dates { margin-top: .23rem; color: #768278; font-size: .66rem; }
.astro-sign:focus-visible, .astro-cta:focus-visible, .astro-provider-link:focus-visible { outline: 3px solid #d3aa51; outline-offset: 3px; }
.astro-detail { padding: 1.45rem; border-radius: 8px; color: #f9f5e9; background: var(--astro-forest); box-shadow: 0 12px 26px rgba(27,69,48,.13); }
.astro-detail-label { color: #e0c375; font-size: .68rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.astro-detail-sign { display: flex; align-items: center; gap: .85rem; padding: 1rem 0 1.05rem; }
.astro-detail-symbol { display: grid; width: 3.4rem; aspect-ratio: 1; place-items: center; border: 1px solid rgba(230,204,129,.5); border-radius: 50%; color: #e9d18c; font-family: inherit; font-size: .95rem; font-weight: 700; letter-spacing: .05em; }
.astro-detail-sign h3 { margin: 0; color: #fffaf0; font-family: inherit; font-size: 1.35rem; font-weight: 700; }
.astro-detail-sign p { margin: .15rem 0 0; color: rgba(255,255,255,.64); font-size: .78rem; }
.astro-element { display: flex; justify-content: space-between; padding: .7rem 0; border-block: 1px solid rgba(255,255,255,.15); color: rgba(255,255,255,.62); font-size: .76rem; }
.astro-element strong { color: #f0d78f; font-size: .78rem; }
.astro-detail-copy { margin: 1rem 0; color: rgba(255,255,255,.7); font-size: .81rem; line-height: 1.65; }
.astro-reading-date { margin: .85rem 0 .25rem; color: #e0c375; font-size: .72rem; font-weight: 700; letter-spacing: .04em; }
.astro-reading-category { margin-top: .85rem; padding-top: .7rem; border-top: 1px solid rgba(255,255,255,.15); }
.astro-reading-category h4 { margin: 0 0 .25rem; color: #f0d78f; font-size: .76rem; }
.astro-reading-category p { margin: 0; color: rgba(255,255,255,.72); font-size: .77rem; line-height: 1.6; }
.astro-date-note { margin: 1rem 0 0; color: var(--astro-muted); font-size: .76rem; }
.astro-note-section { padding: 0 0 4rem; }
.astro-note { display: flex; gap: 1rem; align-items: flex-start; padding: 1.2rem 1.35rem; border: 1px solid #e7dfca; border-left: 3px solid var(--astro-gold); border-radius: 5px; background: rgba(255,253,247,.65); }
.astro-note-mark { display: grid; flex: 0 0 1.55rem; width: 1.55rem; aspect-ratio: 1; place-items: center; border: 1px solid #c9a653; border-radius: 50%; color: #8b6b2c; font-family: inherit; font-size: .9rem; font-style: italic; }
.astro-note p { margin: 0; color: #69766c; font-size: .78rem; line-height: 1.7; }
.astro-note strong { margin-right: .35rem; color: var(--astro-forest); }
.astro-kerala-section { padding: 2.5rem 0 4rem; background: var(--astro-paper); }
.astro-kerala-card { display: flex; gap: 2rem; align-items: center; justify-content: space-between; padding: clamp(1.4rem, 4vw, 2.5rem); border: 1px solid #e1dccf; border-radius: 14px; background: #fffdf7; }
.astro-kerala-card h2 { margin: 0; color: var(--astro-forest); font-family: inherit; font-size: clamp(1.7rem, 3vw, 2.5rem); font-weight: 700; }
.astro-kerala-card p:last-child { max-width: 680px; margin: .7rem 0 0; color: var(--astro-muted); line-height: 1.7; }
@media (max-width: 900px) {
    .astro-hero-grid { min-height: 410px; grid-template-columns: 1fr .72fr; }
    .astro-content-grid { grid-template-columns: minmax(0, 1fr) 275px; gap: .85rem; }
    .astro-sign-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
    .astro-hero-grid { display: block; min-height: auto; padding: 3.1rem 0 1.4rem; }
    .astro-copy h1 { font-size: clamp(3.2rem, 15vw, 5rem); }
    .astro-lead { max-width: 440px; }
    .astro-orbit { position: absolute; top: 2.5rem; right: -4rem; width: 210px; opacity: .27; }
    .astro-bottomline { gap: .65rem; flex-wrap: wrap; font-size: .61rem; }
    .astro-section-head { display: block; margin-bottom: 1.35rem; }
    .astro-section-intro { margin-top: .8rem; }
    .astro-content-grid { grid-template-columns: 1fr; }
    .astro-sign-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .55rem; }
    .astro-sign { min-height: 116px; padding: .75rem .35rem; }
    .astro-sign-name { font-size: .83rem; }
    .astro-sign-dates { font-size: .59rem; }
    .astro-detail { padding: 1.25rem; }
}
@media (prefers-reduced-motion: reduce) {
    .astro-page *, .astro-page *::before, .astro-page *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
