/* =========================================================
   GURU BASE CSS
   Mini framework prÃ³prio inspirado no Bootstrap
   Inclui: reset, container, grid, utilities, table, listas,
   imagens, botÃµes bÃ¡sicos, cores dos signos e header/menu.
   ========================================================= */

/* =========================
   1. VariÃ¡veis
   ========================= */
:root {
    --primary: #6D28D9;
    --primary-dark: #5B21B6;
    --secondary: #EC4899;

    --guru-dark: #070022;
    --guru-purple: #5420a7;
    --guru-purple-2: #7b35d8;
    --guru-gold: #f6d66b;

    --dark: #1F2937;
    --light: #F9FAFB;
    --white: #FFFFFF;
    --black: #000000;

    --text: #374151;
    --text-muted: #6B7280;
    --border: #E5E7EB;

    --success: #16A34A;
    --warning: #F59E0B;
    --danger: #DC2626;
    --info: #0284C7;

    --radius: 12px;
    --radius-sm: 6px;
    --radius-lg: 18px;

    --shadow-sm: 0 2px 4px rgba(0,0,0,.08);
    --shadow: 0 4px 10px rgba(0,0,0,.10);
    --shadow-lg: 0 10px 30px rgba(0,0,0,.15);

    --transition: .25s ease;
}

/* =========================
   2. Reset/Base
   ========================= */
*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
}

body {
    margin: 0;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height: 1.6;
    color: var(--text);
    background: #fff;
}

img,
svg,
video,
canvas {
    max-width: 100%;
}

img {
    height: auto;
    display: block;
}

a {
    color: var(--primary);
    text-decoration: none;
    transition: var(--transition);
}

a:hover {
    color: var(--primary-dark);
}

button,
input,
select,
textarea {
    font: inherit;
}

button {
    cursor: pointer;
}

ul,
ol {
    margin-top: 0;
    margin-bottom: 1rem;
}

p {
    margin-top: 0;
    margin-bottom: 1rem;
}

h1, h2, h3, h4, h5, h6 {
    margin-top: 0;
    margin-bottom: 1rem;
    font-weight: 700;
    line-height: 1.25;
    color: var(--dark);
}

h1 { font-size: 2.5rem; }
h2 { font-size: 2rem; }
h3 { font-size: 1.75rem; }
h4 { font-size: 1.5rem; }
h5 { font-size: 1.25rem; }
h6 { font-size: 1rem; }

hr {
    border: 0;
    border-top: 1px solid var(--border);
    margin: 1.5rem 0;
}

/* =========================
   3. Container
   ========================= */
.container {
    width: 100%;
    max-width: 1280px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1rem;
    padding-right: 1rem;
}

.container-fluid {
    width: 100%;
    padding-left: 1rem;
    padding-right: 1rem;
}

@media (max-width: 575px) {
    .container,
    .container-fluid {
        padding-left: .75rem;
        padding-right: .75rem;
    }
}

/* =========================
   4. Grid estilo Bootstrap
   ========================= */
.row {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 1rem;
}

.g-0 { gap: 0 !important; }
.g-1 { gap: .25rem !important; }
.g-2 { gap: .5rem !important; }
.g-3 { gap: 1rem !important; }
.g-4 { gap: 1.5rem !important; }
.g-5 { gap: 3rem !important; }

.col { grid-column: span 12; }
.col-1 { grid-column: span 1; }
.col-2 { grid-column: span 2; }
.col-3 { grid-column: span 3; }
.col-4 { grid-column: span 4; }
.col-5 { grid-column: span 5; }
.col-6 { grid-column: span 6; }
.col-7 { grid-column: span 7; }
.col-8 { grid-column: span 8; }
.col-9 { grid-column: span 9; }
.col-10 { grid-column: span 10; }
.col-11 { grid-column: span 11; }
.col-12 { grid-column: span 12; }

@media (min-width: 576px) {
    .col-sm-1 { grid-column: span 1; }
    .col-sm-2 { grid-column: span 2; }
    .col-sm-3 { grid-column: span 3; }
    .col-sm-4 { grid-column: span 4; }
    .col-sm-5 { grid-column: span 5; }
    .col-sm-6 { grid-column: span 6; }
    .col-sm-7 { grid-column: span 7; }
    .col-sm-8 { grid-column: span 8; }
    .col-sm-9 { grid-column: span 9; }
    .col-sm-10 { grid-column: span 10; }
    .col-sm-11 { grid-column: span 11; }
    .col-sm-12 { grid-column: span 12; }
}

@media (min-width: 768px) {
    .col-md-1 { grid-column: span 1; }
    .col-md-2 { grid-column: span 2; }
    .col-md-3 { grid-column: span 3; }
    .col-md-4 { grid-column: span 4; }
    .col-md-5 { grid-column: span 5; }
    .col-md-6 { grid-column: span 6; }
    .col-md-7 { grid-column: span 7; }
    .col-md-8 { grid-column: span 8; }
    .col-md-9 { grid-column: span 9; }
    .col-md-10 { grid-column: span 10; }
    .col-md-11 { grid-column: span 11; }
    .col-md-12 { grid-column: span 12; }
}

@media (min-width: 992px) {
    .col-lg-1 { grid-column: span 1; }
    .col-lg-2 { grid-column: span 2; }
    .col-lg-3 { grid-column: span 3; }
    .col-lg-4 { grid-column: span 4; }
    .col-lg-5 { grid-column: span 5; }
    .col-lg-6 { grid-column: span 6; }
    .col-lg-7 { grid-column: span 7; }
    .col-lg-8 { grid-column: span 8; }
    .col-lg-9 { grid-column: span 9; }
    .col-lg-10 { grid-column: span 10; }
    .col-lg-11 { grid-column: span 11; }
    .col-lg-12 { grid-column: span 12; }
}

@media (min-width: 1200px) {
    .col-xl-1 { grid-column: span 1; }
    .col-xl-2 { grid-column: span 2; }
    .col-xl-3 { grid-column: span 3; }
    .col-xl-4 { grid-column: span 4; }
    .col-xl-5 { grid-column: span 5; }
    .col-xl-6 { grid-column: span 6; }
    .col-xl-7 { grid-column: span 7; }
    .col-xl-8 { grid-column: span 8; }
    .col-xl-9 { grid-column: span 9; }
    .col-xl-10 { grid-column: span 10; }
    .col-xl-11 { grid-column: span 11; }
    .col-xl-12 { grid-column: span 12; }
}

/* =========================
   5. Display/Flex
   ========================= */
.d-none { display: none !important; }
.d-block { display: block !important; }
.d-inline { display: inline !important; }
.d-inline-block { display: inline-block !important; }
.d-flex { display: flex !important; }
.d-inline-flex { display: inline-flex !important; }
.d-grid { display: grid !important; }

.flex-row { flex-direction: row !important; }
.flex-column { flex-direction: column !important; }
.flex-wrap { flex-wrap: wrap !important; }
.flex-nowrap { flex-wrap: nowrap !important; }

.justify-content-start { justify-content: flex-start !important; }
.justify-content-center { justify-content: center !important; }
.justify-content-end { justify-content: flex-end !important; }
.justify-content-between { justify-content: space-between !important; }
.justify-content-around { justify-content: space-around !important; }

.align-items-start { align-items: flex-start !important; }
.align-items-center { align-items: center !important; }
.align-items-end { align-items: flex-end !important; }
.align-items-stretch { align-items: stretch !important; }

.gap-0 { gap: 0 !important; }
.gap-1 { gap: .25rem !important; }
.gap-2 { gap: .5rem !important; }
.gap-3 { gap: 1rem !important; }
.gap-4 { gap: 1.5rem !important; }
.gap-5 { gap: 3rem !important; }

/* =========================
   6. Width/Height
   ========================= */
.w-25 { width: 25% !important; }
.w-50 { width: 50% !important; }
.w-75 { width: 75% !important; }
.w-100 { width: 100% !important; }
.w-auto { width: auto !important; }

.h-25 { height: 25% !important; }
.h-50 { height: 50% !important; }
.h-75 { height: 75% !important; }
.h-100 { height: 100% !important; }
.h-auto { height: auto !important; }

/* =========================
   7. Float/Clearfix
   ========================= */
.float-start { float: left !important; }
.float-end { float: right !important; }
.float-none { float: none !important; }
.clearfix::after {
    content: "";
    display: block;
    clear: both;
}

@media (max-width: 767px) {
    .float-md-none {
        float: none !important;
    }
}

/* =========================
   8. Imagens/Ãcones
   ========================= */
.img-fluid {
    max-width: 100%;
    height: auto;
    display: block;
}

.img-cover {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.img-contain {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.icon {
    width: 1.25em;
    height: 1.25em;
    fill: currentColor;
    vertical-align: middle;
}

/* =========================
   9. Tipografia
   ========================= */
.fs-1 { font-size: 3rem !important; }
.fs-2 { font-size: 2.5rem !important; }
.fs-3 { font-size: 2rem !important; }
.fs-4 { font-size: 1.5rem !important; }
.fs-5 { font-size: 1.25rem !important; }
.fs-6 { font-size: 1rem !important; }
.small { font-size: .875rem !important; }

.fw-light { font-weight: 300 !important; }
.fw-normal { font-weight: 400 !important; }
.fw-medium { font-weight: 500 !important; }
.fw-semibold { font-weight: 600 !important; }
.fw-bold { font-weight: 700 !important; }
.fw-bolder { font-weight: 800 !important; }

.lh-1 { line-height: 1 !important; }
.lh-sm { line-height: 1.25 !important; }
.lh-base { line-height: 1.5 !important; }
.lh-lg { line-height: 1.8 !important; }

.text-start { text-align: left !important; }
.text-center { text-align: center !important; }
.text-end { text-align: right !important; }

.text-uppercase { text-transform: uppercase !important; }
.text-lowercase { text-transform: lowercase !important; }
.text-capitalize { text-transform: capitalize !important; }

.text-white { color: #fff !important; }
.text-dark { color: #111827 !important; }
.text-muted { color: var(--text-muted) !important; }
.text-primary { color: var(--primary) !important; }
.text-secondary { color: var(--secondary) !important; }
.text-success { color: var(--success) !important; }
.text-warning { color: var(--warning) !important; }
.text-danger { color: var(--danger) !important; }
.text-info { color: var(--info) !important; }

/* =========================
   10. Margin
   ========================= */
.m-0 { margin: 0 !important; }
.m-1 { margin: .25rem !important; }
.m-2 { margin: .5rem !important; }
.m-3 { margin: 1rem !important; }
.m-4 { margin: 1.5rem !important; }
.m-5 { margin: 3rem !important; }
.m-auto { margin: auto !important; }

.mt-0 { margin-top: 0 !important; }
.mt-1 { margin-top: .25rem !important; }
.mt-2 { margin-top: .5rem !important; }
.mt-3 { margin-top: 1rem !important; }
.mt-4 { margin-top: 1.5rem !important; }
.mt-5 { margin-top: 3rem !important; }
.mt-auto { margin-top: auto !important; }

.mb-0 { margin-bottom: 0 !important; }
.mb-1 { margin-bottom: .25rem !important; }
.mb-2 { margin-bottom: .5rem !important; }
.mb-3 { margin-bottom: 1rem !important; }
.mb-4 { margin-bottom: 1.5rem !important; }
.mb-5 { margin-bottom: 3rem !important; }
.mb-auto { margin-bottom: auto !important; }

.ms-0 { margin-left: 0 !important; }
.ms-1 { margin-left: .25rem !important; }
.ms-2 { margin-left: .5rem !important; }
.ms-3 { margin-left: 1rem !important; }
.ms-4 { margin-left: 1.5rem !important; }
.ms-5 { margin-left: 3rem !important; }
.ms-auto { margin-left: auto !important; }

.me-0 { margin-right: 0 !important; }
.me-1 { margin-right: .25rem !important; }
.me-2 { margin-right: .5rem !important; }
.me-3 { margin-right: 1rem !important; }
.me-4 { margin-right: 1.5rem !important; }
.me-5 { margin-right: 3rem !important; }
.me-auto { margin-right: auto !important; }

.mx-0 { margin-left: 0 !important; margin-right: 0 !important; }
.mx-1 { margin-left: .25rem !important; margin-right: .25rem !important; }
.mx-2 { margin-left: .5rem !important; margin-right: .5rem !important; }
.mx-3 { margin-left: 1rem !important; margin-right: 1rem !important; }
.mx-4 { margin-left: 1.5rem !important; margin-right: 1.5rem !important; }
.mx-5 { margin-left: 3rem !important; margin-right: 3rem !important; }
.mx-auto { margin-left: auto !important; margin-right: auto !important; }

.my-0 { margin-top: 0 !important; margin-bottom: 0 !important; }
.my-1 { margin-top: .25rem !important; margin-bottom: .25rem !important; }
.my-2 { margin-top: .5rem !important; margin-bottom: .5rem !important; }
.my-3 { margin-top: 1rem !important; margin-bottom: 1rem !important; }
.my-4 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; }
.my-5 { margin-top: 3rem !important; margin-bottom: 3rem !important; }
.my-auto { margin-top: auto !important; margin-bottom: auto !important; }

/* =========================
   11. Padding
   ========================= */
.p-0 { padding: 0 !important; }
.p-1 { padding: .25rem !important; }
.p-2 { padding: .5rem !important; }
.p-3 { padding: 1rem !important; }
.p-4 { padding: 1.5rem !important; }
.p-5 { padding: 3rem !important; }

.pt-0 { padding-top: 0 !important; }
.pt-1 { padding-top: .25rem !important; }
.pt-2 { padding-top: .5rem !important; }
.pt-3 { padding-top: 1rem !important; }
.pt-4 { padding-top: 1.5rem !important; }
.pt-5 { padding-top: 3rem !important; }

.pb-0 { padding-bottom: 0 !important; }
.pb-1 { padding-bottom: .25rem !important; }
.pb-2 { padding-bottom: .5rem !important; }
.pb-3 { padding-bottom: 1rem !important; }
.pb-4 { padding-bottom: 1.5rem !important; }
.pb-5 { padding-bottom: 3rem !important; }

.ps-0 { padding-left: 0 !important; }
.ps-1 { padding-left: .25rem !important; }
.ps-2 { padding-left: .5rem !important; }
.ps-3 { padding-left: 1rem !important; }
.ps-4 { padding-left: 1.5rem !important; }
.ps-5 { padding-left: 3rem !important; }

.pe-0 { padding-right: 0 !important; }
.pe-1 { padding-right: .25rem !important; }
.pe-2 { padding-right: .5rem !important; }
.pe-3 { padding-right: 1rem !important; }
.pe-4 { padding-right: 1.5rem !important; }
.pe-5 { padding-right: 3rem !important; }

.px-0 { padding-left: 0 !important; padding-right: 0 !important; }
.px-1 { padding-left: .25rem !important; padding-right: .25rem !important; }
.px-2 { padding-left: .5rem !important; padding-right: .5rem !important; }
.px-3 { padding-left: 1rem !important; padding-right: 1rem !important; }
.px-4 { padding-left: 1.5rem !important; padding-right: 1.5rem !important; }
.px-5 { padding-left: 3rem !important; padding-right: 3rem !important; }

.py-0 { padding-top: 0 !important; padding-bottom: 0 !important; }
.py-1 { padding-top: .25rem !important; padding-bottom: .25rem !important; }
.py-2 { padding-top: .5rem !important; padding-bottom: .5rem !important; }
.py-3 { padding-top: 1rem !important; padding-bottom: 1rem !important; }
.py-4 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; }
.py-5 { padding-top: 3rem !important; padding-bottom: 3rem !important; }

/* =========================
   12. Backgrounds/Borders/Shadows
   ========================= */
.bg-white { background-color: #fff !important; }
.bg-light { background-color: var(--light) !important; }
.bg-dark { background-color: var(--dark) !important; }
.bg-primary { background-color: var(--primary) !important; }
.bg-secondary { background-color: var(--secondary) !important; }
.bg-gray-100 { background-color: #F3F4F6 !important; }
.bg-gray-800 { background-color: #1F2937 !important; }
.bg-gray-900 { background-color: #111827 !important; }

.border { border: 1px solid var(--border) !important; }
.border-0 { border: 0 !important; }
.border-top { border-top: 1px solid var(--border) !important; }
.border-bottom { border-bottom: 1px solid var(--border) !important; }

.rounded { border-radius: .375rem !important; }
.rounded-0 { border-radius: 0 !important; }
.rounded-1 { border-radius: .25rem !important; }
.rounded-2 { border-radius: .5rem !important; }
.rounded-3 { border-radius: 1rem !important; }
.rounded-4 { border-radius: 1.5rem !important; }
.rounded-circle { border-radius: 50% !important; }
.rounded-pill { border-radius: 999px !important; }

.shadow-none { box-shadow: none !important; }
.shadow-sm { box-shadow: var(--shadow-sm) !important; }
.shadow { box-shadow: var(--shadow) !important; }
.shadow-lg { box-shadow: var(--shadow-lg) !important; }

/* =========================
   13. Tables
   ========================= */
.table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 1rem;
    color: var(--text);
    background: #fff;
}

.table th,
.table td {
    padding: .75rem;
    vertical-align: top;
    border-bottom: 1px solid var(--border);
    text-align: left;
}

.table thead th {
    font-weight: 700;
    color: var(--dark);
    background: #F9FAFB;
    border-bottom: 2px solid var(--border);
}

.table-striped tbody tr:nth-child(odd) {
    background: #F9FAFB;
}

.table-hover tbody tr:hover {
    background: #F3F4F6;
}

.table-responsive {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

/* =========================
   14. Listas
   ========================= */
.list-unstyled {
    list-style: none !important;
    padding-left: 0 !important;
    margin-left: 0 !important;
}

.list-inline {
    list-style: none !important;
    padding-left: 0 !important;
    margin-left: 0 !important;
}

.list-inline-item {
    display: inline-block;
    margin-right: .5rem;
}

.lista {
    margin: 1.5rem 0;
    padding-left: 1.25rem;
}

.lista li {
    margin-bottom: .75rem;
}

.lista-card {
    list-style: none;
    padding-left: 0;
    margin: 1.5rem 0;
}

.lista-card li {
    padding: .9rem 1rem;
    margin-bottom: .75rem;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-sm);
}

/* =========================
   15. BotÃµes/Form bÃ¡sico
   ========================= */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    padding: .75rem 1.25rem;
    border: 0;
    border-radius: var(--radius-sm);
    color: #fff;
    background: var(--primary);
    font-weight: 700;
    line-height: 1.2;
    cursor: pointer;
    transition: var(--transition);
}

.btn:hover {
    color: #fff;
    background: var(--primary-dark);
    transform: translateY(-1px);
}

.btn-primary { background: var(--primary); color: #fff; }
.btn-secondary { background: var(--secondary); color: #fff; }
.btn-dark { background: var(--dark); color: #fff; }
.btn-light { background: var(--light); color: var(--dark); }
.btn-block { width: 100%; display: flex; }

.form-control {
    width: 100%;
    padding: .75rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    color: var(--text);
    background: #fff;
    outline: 0;
    transition: var(--transition);
}

.form-control:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(109, 40, 217, .12);
}

/* =========================
   16. Cores dos signos
   ========================= */
.aries { background-color: #8e4550 !important; }
.touro { background-color: #f07e3d !important; }
.gemeos { background-color: #a65e7f !important; }
.cancer { background-color: #4da7af !important; }
.leao { background-color: #f07e3d !important; }
.virgem { background-color: #95a17e !important; }
.libra { background-color: #6e5a6f !important; }
.escorpiao { background-color: #e30016 !important; }
.sagitario { background-color: #f07e3d !important; }
.capricornio { background-color: #7d4993 !important; }
.aquario { background-color: #5aa16e !important; }
.peixes { background-color: #008bd0 !important; }

.text-aries { color: #8e4550 !important; }
.text-touro { color: #f07e3d !important; }
.text-gemeos { color: #a65e7f !important; }
.text-cancer { color: #4da7af !important; }
.text-leao { color: #f07e3d !important; }
.text-virgem { color: #95a17e !important; }
.text-libra { color: #6e5a6f !important; }
.text-escorpiao { color: #e30016 !important; }
.text-sagitario { color: #f07e3d !important; }
.text-capricornio { color: #7d4993 !important; }
.text-aquario { color: #5aa16e !important; }
.text-peixes { color: #008bd0 !important; }

.border-aries { border-color: #8e4550 !important; }
.border-touro { border-color: #f07e3d !important; }
.border-gemeos { border-color: #a65e7f !important; }
.border-cancer { border-color: #4da7af !important; }
.border-leao { border-color: #f07e3d !important; }
.border-virgem { border-color: #95a17e !important; }
.border-libra { border-color: #6e5a6f !important; }
.border-escorpiao { border-color: #e30016 !important; }
.border-sagitario { border-color: #f07e3d !important; }
.border-capricornio { border-color: #7d4993 !important; }
.border-aquario { border-color: #5aa16e !important; }
.border-peixes { border-color: #008bd0 !important; }

/* =========================
   17. Header/Menu Guru
   CompatÃ­vel com global.js:
   #mobileMenuBtn alterna .active em #mainNav
   ========================= */
.site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    padding: 0;
    color: #fff;
    background:
        radial-gradient(circle at top left, rgba(123, 53, 216, .55), transparent 34%),
        linear-gradient(90deg, #070022, #12003d 58%, #090026);
    box-shadow: 0 4px 24px rgba(10, 0, 40, .22);
}

.guru-header-content {
    min-height: 86px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
}

.guru-logo {
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.guru-logo img {
    width: 250px;
    height: 90px;
    object-fit: contain;
    object-position: left center;
    display: block;
}

.guru-nav {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 1.25rem;
    margin-left: auto;
}

.guru-nav ul {
    display: flex;
    align-items: center;
    gap: 1.15rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.guru-nav li {
    margin: 0;
}

.guru-nav a {
    color: rgba(255,255,255,.94);
    font-size: .94rem;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .55rem .15rem;
    border-radius: 999px;
    white-space: nowrap;
}

.guru-nav a:hover,
.guru-nav a:focus {
    color: var(--guru-gold);
    background: transparent;
}

.guru-search {
    width: 46px;
    height: 46px;
    display: inline-grid !important;
    place-items: center;
    border-radius: 50%;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.08);
    flex-shrink: 0;
}

.guru-search:hover {
    background: rgba(255,255,255,.18);
}

.guru-search .icon {
    width: 18px;
    height: 18px;
    margin: 0;
    fill: currentColor;
}

.mobile-menu-btn {
    display: none;
    width: 46px;
    height: 46px;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 14px;
    background: rgba(255,255,255,.1);
    color: #fff;
    cursor: pointer;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 5px;
    padding: 0;
}

.mobile-menu-btn span {
    width: 22px;
    height: 2px;
    display: block;
    border-radius: 2px;
    background: #fff;
    transition: .25s ease;
}

.mobile-menu-btn[aria-expanded="true"] span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.mobile-menu-btn[aria-expanded="true"] span:nth-child(2) {
    opacity: 0;
}

.mobile-menu-btn[aria-expanded="true"] span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

@media (max-width: 1180px) {
    .guru-header-content {
        min-height: 76px;
    }

    .site-header .mobile-menu-btn {
        display: inline-flex !important;
        visibility: visible !important;
        opacity: 1 !important;
        position: relative !important;
        z-index: 9999 !important;
    }

    .site-header #mainNav.guru-nav {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        display: none !important;
        flex-direction: column;
        align-items: stretch;
        gap: 1rem;
        padding: 1rem 1.5rem 1.25rem;
        margin-left: 0;
        background:
            radial-gradient(circle at top left, rgba(123, 53, 216, .45), transparent 40%),
            linear-gradient(180deg, #12003d, #070022);
        box-shadow: 0 18px 35px rgba(10,0,40,.25);
    }

    .site-header #mainNav.guru-nav.active {
        display: flex !important;
        visibility: visible !important;
        opacity: 1 !important;
    }

    .guru-nav ul {
        flex-direction: column;
        align-items: stretch;
        gap: .25rem;
    }

    .guru-nav a {
        width: 100%;
        padding: .85rem 0;
        border-bottom: 1px solid rgba(255,255,255,.08);
        border-radius: 0;
    }

    .guru-search {
        width: 100%;
        height: 48px;
        border-radius: 14px;
        border-bottom: 0 !important;
    }
}

@media (min-width: 1181px) {
    .site-header .mobile-menu-btn {
        display: none !important;
    }
}

@media (max-width: 575px) {
    .guru-logo img {
        width: 150px;
        height: 48px;
    }

    .guru-header-content {
        min-height: 70px;
    }
}

/* =========================
   18. Breadcrumb
   ========================= */
.guru-breadcrumb {
    margin: 0 0 1.25rem;
    padding-top: .15rem;
}

.guru-breadcrumb-list {
    display: flex;
    align-items: center;
    gap: .35rem;
    max-width: 100%;
    margin: 0;
    padding: .55rem;
    overflow-x: auto;
    list-style: none;
    border: 1px solid #eee8f7;
    border-radius: 8px;
    background:
        linear-gradient(180deg, rgba(255,255,255,.96), rgba(251,248,255,.96));
    box-shadow: 0 10px 28px rgba(24, 10, 66, .07);
    scrollbar-width: thin;
}

.guru-breadcrumb-item {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    min-width: 0;
    color: #7a728f;
    font-size: .86rem;
    font-weight: 800;
    white-space: nowrap;
}

.guru-breadcrumb-link,
.guru-breadcrumb-current {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    min-height: 34px;
    padding: .4rem .72rem;
    border-radius: 999px;
}

.guru-breadcrumb-link {
    color: #4b3a78;
    background: transparent;
}

.guru-breadcrumb-link:hover,
.guru-breadcrumb-link:focus {
    color: #5b21b6;
    background: #f4ecff;
}

.guru-breadcrumb-link.is-home {
    color: #fff;
    background: linear-gradient(135deg, #6d28d9, #ec4899);
    box-shadow: 0 8px 18px rgba(109, 40, 217, .18);
}

.guru-breadcrumb-link.is-home:hover,
.guru-breadcrumb-link.is-home:focus {
    color: #fff;
    background: linear-gradient(135deg, #5b21b6, #db2777);
}

.guru-breadcrumb .icon,
.guru-breadcrumb-sep {
    width: 14px;
    height: 14px;
    flex: 0 0 auto;
    fill: currentColor;
}

.guru-breadcrumb-sep {
    color: #c4b5d8;
}

.guru-breadcrumb-current {
    max-width: min(52vw, 520px);
    overflow: hidden;
    color: #120a33;
    background: #fff;
    box-shadow: inset 0 0 0 1px #eadff6;
    text-overflow: ellipsis;
}

@media (max-width: 575px) {
    .guru-breadcrumb {
        margin-bottom: 1rem;
    }

    .guru-breadcrumb-list {
        flex-wrap: wrap;
        margin-right: -.75rem;
        margin-left: -.75rem;
        padding: .5rem .75rem;
        overflow-x: visible;
        border-right: 0;
        border-left: 0;
        border-radius: 0;
    }

    .guru-breadcrumb-item {
        font-size: .8rem;
    }

    .guru-breadcrumb-link,
    .guru-breadcrumb-current {
        min-height: 32px;
        padding: .35rem .6rem;
    }

    .guru-breadcrumb-current {
        max-width: 100%;
    }
}

/* =========================
   19. Responsividade base
   ========================= */
@media (max-width: 767px) {
    h1 { font-size: 2rem; }
    h2 { font-size: 1.6rem; }
    h3 { font-size: 1.35rem; }

    .fs-1 { font-size: 2.3rem !important; }
    .fs-2 { font-size: 2rem !important; }
    .fs-3 { font-size: 1.7rem !important; }
}


.signos-menu {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: .85rem;
    margin: 1.5rem 0;
}

.signo-menu-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .45rem;
    padding: .9rem .4rem .75rem;
    text-align: center;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 18px;
    box-shadow: 0 2px 8px rgba(0,0,0,.08);
    overflow: hidden;
    transition: .25s ease;
}

.signo-menu-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 28px rgba(0,0,0,.14);
}

.signo-menu-img {
    width: 76px;
    height: 76px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: rgba(109, 40, 217, .08);
}

.signo-menu-img img {
    width: 68px;
    height: 68px;
    object-fit: contain;
}

.signo-menu-item strong {
    font-size: .9rem;
    font-weight: 800;
    color: #111827;
}

.signo-aries { border-top: 5px solid #8e4550; }
.signo-touro { border-top: 5px solid #f07e3d; }
.signo-gemeos { border-top: 5px solid #a65e7f; }
.signo-cancer { border-top: 5px solid #4da7af; }
.signo-leao { border-top: 5px solid #f07e3d; }
.signo-virgem { border-top: 5px solid #95a17e; }
.signo-libra { border-top: 5px solid #6e5a6f; }
.signo-escorpiao { border-top: 5px solid #e30016; }
.signo-sagitario { border-top: 5px solid #f07e3d; }
.signo-capricornio { border-top: 5px solid #7d4993; }
.signo-aquario { border-top: 5px solid #5aa16e; }
.signo-peixes { border-top: 5px solid #008bd0; }

@media (max-width: 991px) {
    .signos-menu {
        grid-template-columns: repeat(6, 1fr);
    }
}

@media (max-width: 575px) {
    .signos-menu {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* =========================
   19. Página Signos
   ========================= */
/* =========================
   19. Página de signo individual
   ========================= */
.sign-profile-page {
    --sign-color: #7c3aed;
    --sign-color-soft: rgba(124, 58, 237, .12);
    display: grid;
    gap: 1.2rem;
}

.sign-profile-aries { --sign-color: #c2410c; --sign-color-soft: rgba(194, 65, 12, .13); }
.sign-profile-touro { --sign-color: #2f855a; --sign-color-soft: rgba(47, 133, 90, .13); }
.sign-profile-gemeos { --sign-color: #7c3aed; --sign-color-soft: rgba(124, 58, 237, .13); }
.sign-profile-cancer { --sign-color: #0e7490; --sign-color-soft: rgba(14, 116, 144, .13); }
.sign-profile-leao { --sign-color: #b45309; --sign-color-soft: rgba(180, 83, 9, .13); }
.sign-profile-virgem { --sign-color: #4d7c0f; --sign-color-soft: rgba(77, 124, 15, .13); }
.sign-profile-libra { --sign-color: #be185d; --sign-color-soft: rgba(190, 24, 93, .12); }
.sign-profile-escorpiao { --sign-color: #991b1b; --sign-color-soft: rgba(153, 27, 27, .12); }
.sign-profile-sagitario { --sign-color: #6d28d9; --sign-color-soft: rgba(109, 40, 217, .13); }
.sign-profile-capricornio { --sign-color: #334155; --sign-color-soft: rgba(51, 65, 85, .13); }
.sign-profile-aquario { --sign-color: #047857; --sign-color-soft: rgba(4, 120, 87, .13); }
.sign-profile-peixes { --sign-color: #0369a1; --sign-color-soft: rgba(3, 105, 161, .13); }

.sign-detail-page {
    display: grid;
    gap: 1.5rem;
}

.sign-detail-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(300px, .95fr);
    gap: 1.25rem;
    align-items: stretch;
}

.sign-detail-copy,
.sign-detail-media,
.sign-detail-article,
.sign-detail-aside-card,
.sign-compat-list {
    border: 1px solid rgba(43, 63, 105, .12);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 18px 48px rgba(23, 37, 84, .08);
}

.sign-detail-copy {
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 380px;
    padding: clamp(1.25rem, 4vw, 3rem);
    background: linear-gradient(135deg, var(--sign-color) 0%, #30235f 70%, #111827 100%);
    color: #fff;
}

.sign-detail-copy::after {
    content: "";
    position: absolute;
    right: -70px;
    bottom: -90px;
    width: 250px;
    height: 250px;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 50%;
}

.sign-detail-copy .sign-profile-eyebrow {
    position: relative;
    z-index: 1;
    background: rgba(255,255,255,.16);
    color: #fff;
}

.sign-detail-copy h1 {
    position: relative;
    z-index: 1;
    max-width: 780px;
    margin: 0;
    color: #fff;
    font-size: clamp(2rem, 4.2vw, 3.8rem);
    line-height: 1.04;
    letter-spacing: 0;
}

.sign-detail-copy p {
    position: relative;
    z-index: 1;
    max-width: 680px;
    margin: 1rem 0 0;
    color: rgba(255,255,255,.86);
    font-size: 1.05rem;
}

.sign-detail-actions {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
    margin-top: 1.4rem;
}

.sign-detail-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: .62rem .95rem;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 999px;
    background: rgba(255,255,255,.12);
    color: #fff;
    font-size: .86rem;
    font-weight: 900;
}

.sign-detail-actions a:first-child {
    background: #f4d35e;
    color: #1f2937;
}

.sign-detail-media {
    overflow: hidden;
}

.sign-detail-media picture,
.sign-detail-media img {
    display: block;
    width: 100%;
    height: 100%;
}

.sign-detail-media img {
    min-height: 320px;
    object-fit: cover;
}

.sign-detail-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 320px);
    gap: 1.25rem;
    align-items: start;
}

.sign-detail-article,
.sign-compat-list {
    padding: clamp(1rem, 3vw, 2rem);
}

.sign-detail-block + .sign-detail-block {
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid rgba(43, 63, 105, .1);
}

.sign-detail-block h2,
.sign-detail-aside-card h2 {
    margin: 0 0 .8rem;
    color: #1f2937;
    font-size: clamp(1.35rem, 2.5vw, 2rem);
    line-height: 1.15;
}

.sign-detail-text p,
.sign-compat-card p {
    color: #4b5563;
    font-size: 1rem;
    line-height: 1.75;
}

.sign-detail-text p:first-child {
    margin-top: 0;
}

.sign-detail-text img,
.sign-detail-comics img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
}

.sign-detail-comics {
    display: grid;
    gap: 1rem;
    margin-top: 1.5rem;
}

.sign-detail-comics h2 {
    margin: 0;
}

.sign-detail-aside {
    position: sticky;
    top: 1rem;
}

.sign-detail-aside-card {
    padding: 1rem;
}

.sign-detail-aside-card nav {
    display: grid;
    gap: .5rem;
}

.sign-detail-aside-card a {
    display: flex;
    align-items: center;
    min-height: 40px;
    padding: .55rem .7rem;
    border: 1px solid rgba(43, 63, 105, .12);
    border-radius: 8px;
    background: #fff;
    color: #374151;
    font-size: .9rem;
    font-weight: 800;
}

.sign-detail-aside-card a:hover,
.sign-detail-aside-card a.is-active {
    border-color: var(--sign-color);
    background: var(--sign-color-soft);
    color: var(--sign-color);
}

.sign-compat-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.sign-compat-card {
    padding: 1rem;
    border: 1px solid rgba(43, 63, 105, .12);
    border-radius: 8px;
    background: #fff;
}

.sign-compat-card h3 {
    display: grid;
    gap: .35rem;
    margin: 0 0 .7rem;
    color: var(--sign-color);
    font-size: 1.2rem;
}

.sign-compat-card h3 span {
    color: #1f2937;
    font-size: 1rem;
}

@media (max-width: 980px) {
    .sign-detail-hero,
    .sign-detail-layout,
    .sign-compat-grid {
        grid-template-columns: 1fr;
    }

    .sign-detail-aside {
        position: static;
    }
}

@media (max-width: 560px) {
    .sign-detail-copy,
    .sign-detail-article,
    .sign-compat-list {
        padding: 1rem;
    }

    .sign-detail-copy {
        min-height: auto;
    }

    .sign-detail-media img {
        min-height: 220px;
    }

    .sign-detail-actions a {
        width: 100%;
    }
}

.sign-profile-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
    gap: 1rem;
    align-items: stretch;
}

.sign-profile-copy,
.sign-profile-card,
.sign-profile-section,
.sign-profile-mantra {
    border: 1px solid #ece5f6;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 16px 42px rgba(33, 18, 77, .07);
}

.sign-profile-copy {
    padding: clamp(1.25rem, 3vw, 2.7rem);
    color: #fff;
    background: radial-gradient(circle at 82% 18%, rgba(255,255,255,.2), transparent 28%), linear-gradient(135deg, #140736, var(--sign-color));
    overflow: hidden;
    position: relative;
}

.sign-profile-copy::after {
    content: "";
    width: 300px;
    height: 300px;
    position: absolute;
    right: -90px;
    bottom: -130px;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 50%;
}

.sign-profile-eyebrow {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    gap: .35rem;
    margin-bottom: .75rem;
    padding: .35rem .7rem;
    border-radius: 999px;
    background: var(--sign-color-soft);
    color: var(--sign-color);
    font-size: .76rem;
    font-weight: 950;
    text-transform: uppercase;
}

.sign-profile-copy .sign-profile-eyebrow {
    background: rgba(255,255,255,.15);
    color: #ffe68a;
}

.sign-profile-copy h1 {
    max-width: 820px;
    margin: 0;
    color: #fff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.15rem, 4.6vw, 4.9rem);
    line-height: .98;
}

.sign-profile-copy p {
    max-width: 720px;
    margin: 1rem 0 0;
    color: rgba(255,255,255,.88);
    font-size: 1.06rem;
}

.sign-profile-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-top: 1.35rem;
}

.sign-profile-primary,
.sign-profile-secondary {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    padding: .75rem 1.1rem;
    border-radius: 8px;
    font-size: .86rem;
    font-weight: 950;
    text-transform: uppercase;
}

.sign-profile-primary {
    background: #ffe16a;
    color: #160825;
    box-shadow: 0 12px 26px rgba(255, 225, 106, .22);
}

.sign-profile-secondary {
    border: 1px solid rgba(255,255,255,.3);
    background: rgba(255,255,255,.1);
    color: #fff;
}

.sign-profile-card {
    display: grid;
    align-content: center;
    padding: 1.2rem;
}

.sign-profile-card img {
    width: min(100%, 340px);
    margin: 0 auto;
    aspect-ratio: 1;
    object-fit: contain;
}

.sign-profile-facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
    margin-top: 1rem;
}

.sign-profile-facts span {
    min-height: 76px;
    padding: .85rem;
    border-radius: 8px;
    background: #fbf8ff;
    color: #5f5874;
    font-size: .9rem;
}

.sign-profile-facts strong {
    display: block;
    margin-bottom: .25rem;
    color: #170c36;
    font-size: .78rem;
    text-transform: uppercase;
}

.sign-profile-section,
.sign-profile-mantra {
    padding: clamp(1rem, 2vw, 1.6rem);
}

.sign-profile-section-heading {
    display: grid;
    gap: .4rem;
    margin-bottom: 1rem;
}

.sign-profile-section-heading h2,
.sign-profile-mantra h2 {
    margin: 0;
    color: #170c36;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.65rem, 3vw, 2.55rem);
    line-height: 1.05;
}

.sign-profile-insights {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .85rem;
}

.sign-profile-insights article,
.sign-profile-link-card a {
    display: grid;
    gap: .55rem;
    min-height: 100%;
    padding: 1rem;
    border: 1px solid #ece5f6;
    border-radius: 8px;
    background: #fbf8ff;
}

.sign-profile-insights span,
.sign-profile-link-card span {
    width: fit-content;
    padding: .25rem .55rem;
    border-radius: 999px;
    background: var(--sign-color-soft);
    color: var(--sign-color);
    font-size: .72rem;
    font-weight: 950;
    text-transform: uppercase;
}

.sign-profile-insights h3 {
    margin: 0;
    color: #170c36;
    font-size: 1.05rem;
}

.sign-profile-insights p,
.sign-profile-link-card small,
.sign-profile-mantra p,
.sign-profile-faq-list p {
    margin: 0;
    color: #625a76;
    font-size: .96rem;
}

.sign-profile-mantra {
    display: grid;
    grid-template-columns: minmax(220px, .55fr) minmax(0, 1fr);
    gap: 1rem;
    align-items: center;
    background: linear-gradient(135deg, #fff, #fbf8ff);
}

.sign-profile-mantra strong {
    color: var(--sign-color);
}

.sign-profile-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .85rem;
}

.sign-profile-link-card a {
    color: inherit;
    transition: .22s ease;
}

.sign-profile-link-card a:hover {
    border-color: rgba(124, 58, 237, .3);
    background: #fff;
    transform: translateY(-3px);
    box-shadow: 0 12px 26px rgba(33, 18, 77, .09);
}

.sign-profile-link-card strong {
    color: #170c36;
    font-size: 1.02rem;
}

.sign-profile-link-card em {
    margin-top: auto;
    color: var(--sign-color);
    font-size: .82rem;
    font-style: normal;
    font-weight: 950;
    text-transform: uppercase;
}

.sign-profile-quick-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
}

.sign-profile-quick-grid a,
.sign-profile-zodiac-nav a {
    border: 1px solid #ece5f6;
    border-radius: 8px;
    background: #fbf8ff;
    color: #170c36;
    font-weight: 900;
}

.sign-profile-quick-grid a {
    display: flex;
    min-height: 58px;
    align-items: center;
    padding: .8rem;
}

.sign-profile-faq-list {
    display: grid;
    gap: .75rem;
}

.sign-profile-faq-list details {
    border: 1px solid #ece5f6;
    border-radius: 8px;
    background: #fbf8ff;
}

.sign-profile-faq-list summary {
    cursor: pointer;
    padding: 1rem;
    color: #170c36;
    font-weight: 950;
}

.sign-profile-faq-list p {
    padding: 0 1rem 1rem;
}

.sign-profile-zodiac-nav {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: .75rem;
}

.sign-profile-zodiac-nav a {
    display: grid;
    place-items: center;
    gap: .4rem;
    padding: .8rem .45rem;
    text-align: center;
    transition: .22s ease;
}

.sign-profile-zodiac-nav a:hover,
.sign-profile-zodiac-nav a.is-active {
    border-color: var(--sign-color);
    background: #fff;
    transform: translateY(-2px);
}

.sign-profile-zodiac-nav img {
    width: 72px;
    height: 72px;
    object-fit: contain;
}

.sign-profile-zodiac-nav span {
    color: #170c36;
    font-size: .86rem;
    font-weight: 900;
}

@media (max-width: 1080px) {
    .sign-profile-hero,
    .sign-profile-mantra {
        grid-template-columns: 1fr;
    }

    .sign-profile-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .sign-profile-quick-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .sign-profile-insights,
    .sign-profile-grid {
        grid-template-columns: 1fr;
    }

    .sign-profile-zodiac-nav {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 575px) {
    .sign-profile-copy,
    .sign-profile-card,
    .sign-profile-section,
    .sign-profile-mantra {
        padding: 1rem;
    }

    .sign-profile-facts,
    .sign-profile-quick-grid {
        grid-template-columns: 1fr;
    }
}

/* =========================
   20. Índice de horóscopos
   ========================= */
.horoscope-index-page {
    display: grid;
    gap: 1.2rem;
}

.horoscope-index-hero {
    grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr);
    gap: 1rem;
    align-items: stretch;
}

.horoscope-index-copy,
.horoscope-index-media,
.horoscope-index-section {
    border: 1px solid #ece5f6;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 16px 42px rgba(33, 18, 77, .07);
}

.horoscope-index-copy {
    padding: clamp(1.25rem, 3vw, 2.7rem);
    color: #fff;
    background:
        radial-gradient(circle at 82% 18%, rgba(255,255,255,.2), transparent 28%),
        linear-gradient(135deg, #17072f, #6d28d9 56%, #0f766e);
    overflow: hidden;
    position: relative;
}

.horoscope-index-copy::after {
    content: "";
    width: 300px;
    height: 300px;
    position: absolute;
    right: -95px;
    bottom: -135px;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 50%;
}

.horoscope-index-eyebrow {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    margin-bottom: .75rem;
    padding: .35rem .7rem;
    border-radius: 999px;
    background: rgba(124, 58, 237, .12);
    color: #6d28d9;
    font-size: .76rem;
    font-weight: 950;
    text-transform: uppercase;
}

.horoscope-index-copy .horoscope-index-eyebrow {
    background: rgba(255,255,255,.15);
    color: #ffe68a;
}

.horoscope-index-copy h1 {
    max-width: 820px;
    margin: 0;
    color: #fff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.15rem, 4.4vw, 4.7rem);
    line-height: .98;
}

.horoscope-index-copy p {
    max-width: 720px;
    margin: 1rem 0 0;
    color: rgba(255,255,255,.88);
    font-size: 1.06rem;
}

.horoscope-index-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
    margin-top: 1.35rem;
}

.horoscope-index-actions a {
    display: inline-flex;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    padding: .75rem 1rem;
    border-radius: 8px;
    background: rgba(255,255,255,.12);
    color: #fff;
    border: 1px solid rgba(255,255,255,.25);
    font-size: .82rem;
    font-weight: 950;
    text-transform: uppercase;
}

.horoscope-index-actions a:first-child {
    background: #ffe16a;
    color: #17072f;
    border-color: #ffe16a;
}

.horoscope-index-media {
    min-height: 360px;
    overflow: hidden;
}

.horoscope-index-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.horoscope-index-section {
    padding: clamp(1rem, 2vw, 1.6rem);
}

.horoscope-index-heading {
    display: grid;
    gap: .35rem;
    margin-bottom: 1rem;
}

.horoscope-index-heading h2 {
    margin: 0;
    color: #170c36;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.65rem, 3vw, 2.6rem);
    line-height: 1.05;
}

.horoscope-index-heading p {
    max-width: 760px;
    margin: 0;
    color: #625a76;
    font-size: 1rem;
}

.horoscope-index-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .9rem;
}

.horoscope-index-card {
    min-width: 0;
}

.horoscope-index-card a {
    display: grid;
    min-height: 100%;
    overflow: hidden;
    border: 1px solid #ece5f6;
    border-radius: 8px;
    background: #fbf8ff;
    color: inherit;
    transition: .22s ease;
}

.horoscope-index-card a:hover {
    border-color: rgba(109, 40, 217, .32);
    background: #fff;
    transform: translateY(-3px);
    box-shadow: 0 12px 26px rgba(33, 18, 77, .09);
}

.horoscope-index-card img {
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: cover;
}

.horoscope-index-card-body {
    display: grid;
    gap: .55rem;
    padding: 1rem;
}

.horoscope-index-tag {
    width: fit-content;
    padding: .25rem .55rem;
    border-radius: 999px;
    background: rgba(109, 40, 217, .12);
    color: #6d28d9;
    font-size: .72rem;
    font-weight: 950;
    text-transform: uppercase;
}

.horoscope-index-card strong {
    color: #170c36;
    font-size: 1.08rem;
}

.horoscope-index-card small,
.horoscope-index-columns p,
.horoscope-index-sign-grid small {
    color: #625a76;
    font-size: .94rem;
    line-height: 1.55;
}

.horoscope-index-card em {
    color: #6d28d9;
    font-size: .82rem;
    font-style: normal;
    font-weight: 950;
    text-transform: uppercase;
}

.horoscope-index-card.is-featured {
    grid-column: span 2;
}

.horoscope-index-sign-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .85rem;
}

.horoscope-index-sign-grid article {
    display: grid;
    gap: .4rem;
    justify-items: center;
    padding: 1rem;
    border: 1px solid #ece5f6;
    border-radius: 8px;
    background: #fbf8ff;
    text-align: center;
}

.horoscope-index-sign-grid img {
    width: 96px;
    height: 96px;
    object-fit: contain;
}

.horoscope-index-sign-grid strong {
    color: #170c36;
}

.horoscope-index-sign-grid span {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .45rem;
    width: 100%;
    margin-top: .35rem;
}

.horoscope-index-sign-grid a {
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: #fff;
    color: #6d28d9;
    font-size: .8rem;
    font-weight: 950;
    text-transform: uppercase;
    box-shadow: inset 0 0 0 1px #eadff6;
}

.horoscope-index-columns {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .85rem;
}

.horoscope-index-columns article {
    padding: 1rem;
    border: 1px solid #ece5f6;
    border-radius: 8px;
    background: #fbf8ff;
}

.horoscope-index-columns h3 {
    margin: 0 0 .45rem;
    color: #170c36;
    font-size: 1.05rem;
}

@media (max-width: 1080px) {
    .horoscope-index-hero,
    .horoscope-index-columns {
        grid-template-columns: 1fr;
    }

    .horoscope-index-grid,
    .horoscope-index-sign-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575px) {
    .horoscope-index-copy,
    .horoscope-index-section {
        padding: 1rem;
    }

    .horoscope-index-media {
        display: none;
    }

    .horoscope-index-grid,
    .horoscope-index-sign-grid,
    .horoscope-index-columns {
        grid-template-columns: 1fr;
    }

    .horoscope-index-card.is-featured {
        grid-column: auto;
    }

    .horoscope-index-actions a {
        width: 100%;
    }
}

/* =========================
   21. Horóscopo diário
   ========================= */
.content-hub {
    --hub-primary: #2f4c6f;
    --hub-primary-dark: #172554;
    --hub-accent: #d97745;
    --hub-soft: #f5f7fb;
    display: grid;
    gap: 2rem;
}

.content-hub-spiritual {
    --hub-primary: #5b3aa4;
    --hub-primary-dark: #24143f;
    --hub-accent: #b7791f;
    --hub-soft: #fbf8f3;
}

.content-hub-articles {
    --hub-primary: #a43b63;
    --hub-primary-dark: #3a1729;
    --hub-accent: #e0a33a;
    --hub-soft: #fff7f7;
}

.content-hub-numerology {
    --hub-primary: #2563eb;
    --hub-primary-dark: #16213f;
    --hub-accent: #f59e0b;
    --hub-soft: #f8fafc;
}

.content-hub-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.06fr) minmax(300px, .94fr);
    gap: 1.5rem;
    align-items: stretch;
}

.content-hub-copy,
.content-hub-feature,
.content-hub-section {
    border: 1px solid rgba(43, 63, 105, .12);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 18px 48px rgba(23, 37, 84, .08);
}

.content-hub-copy {
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 410px;
    padding: clamp(1.4rem, 4vw, 3.25rem);
    background: linear-gradient(135deg, var(--hub-primary-dark) 0%, var(--hub-primary) 62%, var(--hub-accent) 100%);
    color: #fff;
}

.content-hub-copy::after {
    content: "";
    position: absolute;
    right: -70px;
    bottom: -90px;
    width: 250px;
    height: 250px;
    border: 1px solid rgba(255,255,255,.24);
    border-radius: 50%;
}

.content-hub-eyebrow {
    display: inline-flex;
    width: fit-content;
    margin-bottom: .75rem;
    padding: .28rem .7rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--hub-primary) 12%, white);
    color: var(--hub-primary);
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
}

.content-hub-copy .content-hub-eyebrow {
    position: relative;
    z-index: 1;
    background: rgba(255,255,255,.16);
    color: #fff;
}

.content-hub-copy h1 {
    position: relative;
    z-index: 1;
    max-width: 820px;
    margin: 0;
    color: #fff;
    font-size: clamp(2rem, 4.2vw, 4rem);
    line-height: 1.02;
    letter-spacing: 0;
}

.content-hub-copy p {
    position: relative;
    z-index: 1;
    max-width: 700px;
    margin: 1rem 0 0;
    color: rgba(255,255,255,.86);
    font-size: 1.06rem;
}

.content-hub-actions {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
    margin-top: 1.5rem;
}

.content-hub-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: .62rem .95rem;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 999px;
    background: rgba(255,255,255,.12);
    color: #fff;
    font-size: .86rem;
    font-weight: 900;
}

.content-hub-actions a:first-child {
    background: #f2c463;
    color: var(--hub-primary-dark);
}

.content-hub-feature {
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.content-hub-feature img {
    width: 100%;
    min-height: 310px;
    flex: 1;
    object-fit: cover;
}

.content-hub-feature div {
    padding: 1.1rem;
}

.content-hub-feature strong,
.content-hub-feature span {
    display: block;
}

.content-hub-feature strong {
    color: var(--hub-primary-dark);
    font-size: 1.1rem;
    line-height: 1.25;
}

.content-hub-feature span {
    margin-top: .35rem;
    color: #667085;
    font-size: .94rem;
}

.content-hub-section {
    padding: clamp(1.1rem, 3vw, 2rem);
}

.content-hub-heading {
    max-width: 780px;
    margin-bottom: 1.15rem;
}

.content-hub-heading h2 {
    margin: 0;
    color: var(--hub-primary-dark);
    font-size: clamp(1.55rem, 3vw, 2.45rem);
    line-height: 1.1;
}

.content-hub-heading p {
    margin: .6rem 0 0;
    color: #667085;
}

.content-hub-grid {
    display: grid;
    gap: 1rem;
}

.content-hub-grid-three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.content-hub-card {
    overflow: hidden;
    min-width: 0;
    border: 1px solid rgba(43, 63, 105, .12);
    border-radius: 8px;
    background: #fff;
}

.content-hub-card a {
    display: grid;
    height: 100%;
    color: inherit;
    text-decoration: none;
}

.content-hub-card a:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 38px rgba(23, 37, 84, .12);
}

.content-hub-card img {
    width: 100%;
    aspect-ratio: 1.5 / 1;
    object-fit: cover;
}

.content-hub-card-body {
    display: grid;
    gap: .48rem;
    padding: 1rem;
}

.content-hub-tag {
    display: inline-flex;
    width: fit-content;
    padding: .22rem .55rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--hub-primary) 12%, white);
    color: var(--hub-primary);
    font-size: .68rem;
    font-weight: 900;
    text-transform: uppercase;
}

.content-hub-card strong {
    color: var(--hub-primary-dark);
    font-size: 1.12rem;
    line-height: 1.2;
}

.content-hub-card small,
.content-hub-columns p,
.content-hub-featured-article p {
    color: #667085;
    font-size: .93rem;
    line-height: 1.55;
}

.content-hub-card em,
.content-hub-featured-article a {
    margin-top: .25rem;
    color: var(--hub-primary);
    font-size: .82rem;
    font-style: normal;
    font-weight: 900;
}

.content-hub-card.is-featured {
    grid-column: span 2;
}

.content-hub-date-form {
    display: grid;
    grid-template-columns: 1fr 1fr auto;
    gap: .6rem;
    padding: 0 1rem 1rem;
}

.content-hub-date-form label {
    display: grid;
    gap: .25rem;
    color: #667085;
    font-size: .78rem;
    font-weight: 800;
}

.content-hub-date-form select,
.content-hub-date-form button {
    min-height: 40px;
    border-radius: 8px;
    font: inherit;
}

.content-hub-date-form select {
    width: 100%;
    border: 1px solid rgba(43, 63, 105, .18);
    padding: .45rem .55rem;
    background: #fff;
    color: var(--hub-primary-dark);
}

.content-hub-date-form button {
    align-self: end;
    border: 0;
    padding: .45rem .75rem;
    background: var(--hub-primary);
    color: #fff;
    font-weight: 900;
}

.content-hub-inline-form {
    display: grid;
    gap: .7rem;
    padding: 0 1rem 1rem;
}

.content-hub-inline-form label {
    display: grid;
    gap: .25rem;
    color: #667085;
    font-size: .78rem;
    font-weight: 800;
}

.content-hub-inline-form input,
.content-hub-inline-form select,
.content-hub-inline-form button {
    min-height: 40px;
    border-radius: 8px;
    font: inherit;
}

.content-hub-inline-form input,
.content-hub-inline-form select {
    width: 100%;
    border: 1px solid rgba(43, 63, 105, .18);
    padding: .45rem .55rem;
    background: #fff;
    color: var(--hub-primary-dark);
}

.content-hub-inline-form button {
    border: 0;
    padding: .55rem .85rem;
    background: var(--hub-primary);
    color: #fff;
    font-weight: 900;
}

.content-hub-inline-form.is-compact {
    padding-top: .15rem;
}

.content-hub-date-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .55rem;
}

.content-hub-explain {
    background: var(--hub-soft);
}

.content-hub-columns {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.content-hub-columns article {
    padding: 1rem;
    border: 1px solid rgba(43, 63, 105, .12);
    border-radius: 8px;
    background: #fff;
}

.content-hub-columns h3 {
    margin: 0 0 .45rem;
    color: var(--hub-primary-dark);
    font-size: 1.05rem;
}

.content-hub-featured-article {
    display: grid;
    grid-template-columns: minmax(260px, .85fr) minmax(0, 1.15fr);
    gap: 1rem;
    align-items: stretch;
    overflow: hidden;
    border: 1px solid rgba(43, 63, 105, .12);
    border-radius: 8px;
    background: #fff;
}

.content-hub-featured-article img {
    width: 100%;
    height: 100%;
    min-height: 280px;
    object-fit: cover;
}

.content-hub-featured-article div {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(1rem, 3vw, 2rem);
}

.content-hub-featured-article h3 {
    margin: .55rem 0 0;
    color: var(--hub-primary-dark);
    font-size: clamp(1.45rem, 3vw, 2.4rem);
    line-height: 1.08;
}

.content-hub-featured-article p {
    margin: .7rem 0 0;
}

.content-hub-featured-article a {
    display: inline-flex;
    width: fit-content;
    margin-top: 1rem;
    text-decoration: none;
}

@media (max-width: 980px) {
    .content-hub-hero,
    .content-hub-grid-three,
    .content-hub-columns,
    .content-hub-featured-article {
        grid-template-columns: 1fr;
    }

    .content-hub-card.is-featured {
        grid-column: auto;
    }
}

@media (max-width: 620px) {
    .content-hub-copy,
    .content-hub-section {
        padding: 1rem;
    }

    .content-hub-copy {
        min-height: auto;
    }

    .content-hub-feature img,
    .content-hub-featured-article img {
        min-height: 220px;
    }

    .content-hub-actions a,
    .content-hub-date-form button,
    .content-hub-inline-form button {
        width: 100%;
    }

    .content-hub-date-form,
    .content-hub-date-row {
        grid-template-columns: 1fr;
    }
}

.moon-page {
    display: grid;
    gap: 1.35rem;
}

.moon-hero,
.moon-tool,
.moon-today,
.moon-content-band,
.moon-result-card,
.moon-link-band {
    width: min(1120px, calc(100% - 2rem));
    margin: 0 auto;
}

.moon-hero {
    display: grid;
    grid-template-columns: minmax(0, .98fr) minmax(320px, .74fr);
    gap: 1.5rem;
    align-items: center;
    padding: 1.5rem 0 .25rem;
}

.moon-hero h1 {
    margin: .35rem 0 .65rem;
    color: #181126;
    font-size: clamp(2rem, 4vw, 3.75rem);
    line-height: 1.02;
}

.moon-hero p,
.moon-tool p,
.moon-today p,
.moon-section-head p,
.moon-phase-grid p,
.moon-birth-grid p,
.moon-faq p,
.moon-current-card p {
    color: #5f576f;
    line-height: 1.72;
}

.moon-kicker {
    display: inline-flex;
    width: fit-content;
    padding: .35rem .65rem;
    border-radius: 999px;
    background: #eef2ff;
    color: #3730a3;
    font-size: .76rem;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
}

.moon-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
}

.moon-actions a,
.moon-primary-link,
.moon-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: .75rem 1rem;
    border-radius: 8px;
    font-weight: 900;
    text-decoration: none;
}

.moon-actions a:first-child,
.moon-primary-link,
.moon-submit {
    border: 0;
    background: #4f46e5;
    color: #fff;
    box-shadow: 0 14px 30px rgba(79, 70, 229, .2);
}

.moon-actions a:last-child {
    border: 1px solid #e0e7ff;
    background: #fff;
    color: #312e81;
}

.moon-hero-media {
    margin: 0;
}

.moon-hero-media img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 18px 45px rgba(28, 27, 70, .15);
}

.moon-tool,
.moon-today,
.moon-content-band,
.moon-result-card {
    padding: 1.25rem;
    border: 1px solid #e4e6fb;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 14px 35px rgba(28, 27, 70, .07);
}

.moon-tool {
    display: grid;
    grid-template-columns: minmax(260px, .45fr) minmax(0, 1fr);
    gap: 1.25rem;
    align-items: end;
}

.moon-form {
    display: grid;
    gap: .85rem;
}

.moon-form-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
}

.moon-form label {
    display: grid;
    gap: .35rem;
    margin: 0;
    color: #251c35;
    font-weight: 900;
}

.moon-form .form-control {
    min-height: 46px;
    border: 1px solid #d9dcf7;
    border-radius: 8px;
    background: #fff;
    color: #21172f;
}

.moon-submit {
    width: 100%;
    gap: .45rem;
    cursor: pointer;
}

.moon-section-head {
    margin-bottom: 1rem;
}

.moon-section-head h2,
.moon-tool h2,
.moon-result-card h2 {
    margin: .35rem 0 .35rem;
    color: #21172f;
    font-size: clamp(1.35rem, 2.6vw, 2.15rem);
}

.moon-today-grid {
    display: grid;
    grid-template-columns: minmax(260px, .45fr) minmax(0, 1fr);
    gap: 1rem;
}

.moon-current-card,
.moon-stats-panel,
.moon-phase-grid article,
.moon-use-grid article,
.moon-birth-grid article,
.moon-calendar-grid article,
.moon-faq article,
.moon-link-band a {
    padding: 1rem;
    border: 1px solid #e4e6fb;
    border-radius: 8px;
    background: #f8f9ff;
}

.moon-symbol {
    display: block;
    font-size: 2.5rem;
}

.moon-current-card h3 {
    margin: .35rem 0;
    color: #21172f;
    font-size: 1.5rem;
}

.moon-stats {
    display: grid;
    gap: .75rem;
}

.moon-stats span {
    display: grid;
    gap: .15rem;
    padding: .8rem;
    border-radius: 8px;
    background: #eef2ff;
    color: #4b4566;
}

.moon-stats strong {
    color: #312e81;
    font-size: 1.25rem;
}

.moon-phase-grid,
.moon-use-grid,
.moon-birth-grid,
.moon-calendar-grid,
.moon-faq,
.moon-link-band {
    display: grid;
    gap: .85rem;
}

.moon-phase-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.moon-use-grid,
.moon-calendar-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.moon-birth-grid,
.moon-faq,
.moon-link-band {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.moon-phase-grid span,
.moon-calendar-grid span {
    display: block;
    font-size: 2rem;
}

.moon-phase-grid h3,
.moon-birth-grid h3,
.moon-faq h3 {
    margin: .35rem 0;
    color: #21172f;
}

.moon-use-grid strong,
.moon-calendar-grid strong,
.moon-link-band strong {
    display: block;
    color: #21172f;
}

.moon-use-grid span,
.moon-link-band span,
.moon-calendar-grid time {
    color: #5f576f;
}

.moon-result-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(240px, .38fr);
    gap: 1rem;
    align-items: center;
    background: #f8f9ff;
}

.moon-result-card .moon-primary-link {
    grid-column: 1 / -1;
    width: fit-content;
}

.moon-link-band a {
    text-decoration: none;
}

@media (max-width: 930px) {
    .moon-hero,
    .moon-tool,
    .moon-today-grid,
    .moon-result-card {
        grid-template-columns: 1fr;
    }

    .moon-phase-grid,
    .moon-use-grid,
    .moon-calendar-grid,
    .moon-link-band {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 620px) {
    .moon-hero,
    .moon-tool,
    .moon-today,
    .moon-content-band,
    .moon-result-card,
    .moon-link-band {
        width: min(100% - 1rem, 1120px);
    }

    .moon-form-grid,
    .moon-phase-grid,
    .moon-use-grid,
    .moon-birth-grid,
    .moon-calendar-grid,
    .moon-faq,
    .moon-link-band {
        grid-template-columns: 1fr;
    }
}

.spell-page {
    display: grid;
    gap: 1.35rem;
}

.spell-hero,
.spell-note,
.spell-content-band,
.spell-link-band,
.spell-topic-hero,
.spell-list {
    width: min(1120px, calc(100% - 2rem));
    margin: 0 auto;
}

.spell-hero,
.spell-topic-hero {
    display: grid;
    grid-template-columns: minmax(0, .96fr) minmax(320px, .76fr);
    gap: 1.5rem;
    align-items: center;
    padding: 1.5rem 0 .25rem;
}

.spell-hero h1,
.spell-topic-hero h1 {
    margin: .35rem 0 .65rem;
    color: #181126;
    font-size: clamp(2rem, 4vw, 3.75rem);
    line-height: 1.02;
}

.spell-hero p,
.spell-topic-hero p,
.spell-note p,
.spell-section-head p,
.spell-feature-grid span,
.spell-category-card p,
.spell-ritual-body p {
    color: #5f576f;
    line-height: 1.72;
}

.spell-kicker {
    display: inline-flex;
    width: fit-content;
    padding: .35rem .65rem;
    border-radius: 999px;
    background: #fdf2f8;
    color: #be185d;
    font-size: .76rem;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
}

.spell-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
}

.spell-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: .75rem 1rem;
    border-radius: 8px;
    font-weight: 900;
    text-decoration: none;
}

.spell-actions a:first-child {
    background: #be185d;
    color: #fff;
    box-shadow: 0 14px 30px rgba(190, 24, 93, .2);
}

.spell-actions a:last-child {
    border: 1px solid #eadde5;
    background: #fff;
    color: #312436;
}

.spell-hero-media,
.spell-topic-hero img {
    margin: 0;
}

.spell-hero-media img,
.spell-topic-hero > img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 18px 45px rgba(45, 20, 38, .14);
}

.spell-note,
.spell-content-band,
.spell-topic-hero,
.spell-ritual-card {
    padding: 1.25rem;
    border: 1px solid #f0e3ea;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 14px 35px rgba(45, 20, 38, .07);
}

.spell-note {
    background: #fff7ed;
}

.spell-note strong,
.spell-section-head h2,
.spell-feature-grid strong,
.spell-category-card h3,
.spell-link-band strong,
.spell-ritual-head h2 {
    color: #21172f;
}

.spell-section-head {
    margin-bottom: 1rem;
}

.spell-section-head h2 {
    margin: .35rem 0 .35rem;
    font-size: clamp(1.35rem, 2.6vw, 2.15rem);
}

.spell-feature-grid,
.spell-link-band {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .85rem;
}

.spell-feature-grid article,
.spell-link-band a {
    padding: 1rem;
    border: 1px solid #f0e3ea;
    border-radius: 8px;
    background: #fff8fb;
}

.spell-category-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .9rem;
}

.spell-category-grid-small {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.spell-category-card {
    overflow: hidden;
    border: 1px solid #f0e3ea;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 12px 25px rgba(45, 20, 38, .06);
}

.spell-category-card a {
    display: grid;
    height: 100%;
    color: inherit;
    text-decoration: none;
}

.spell-category-card img {
    display: block;
    width: 100%;
    aspect-ratio: 3 / 2;
    height: auto;
    object-fit: cover;
}

.spell-category-card div {
    display: grid;
    gap: .35rem;
    padding: .9rem;
}

.spell-category-card h3 {
    margin: 0;
    font-size: 1rem;
}

.spell-category-card span,
.spell-link-band span {
    color: #be185d;
    font-weight: 900;
}

.spell-category-card.is-current {
    border-color: #be185d;
    background: #fdf2f8;
}

.spell-link-band a {
    text-decoration: none;
}

.spell-count {
    display: inline-flex;
    width: fit-content;
    padding: .55rem .75rem;
    border-radius: 8px;
    background: #fdf2f8;
    color: #be185d;
    font-weight: 900;
}

.spell-list {
    display: grid;
    gap: 1rem;
}

.spell-ritual-card {
    display: grid;
    gap: .85rem;
}

.spell-ritual-head {
    display: flex;
    gap: .75rem;
    align-items: center;
}

.spell-ritual-head span {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: #be185d;
    color: #fff;
    font-weight: 900;
}

.spell-ritual-head h2 {
    margin: 0;
    font-size: clamp(1.15rem, 2.1vw, 1.65rem);
}

.spell-ritual-body {
    padding: 1rem;
    border-radius: 8px;
    background: #fff8fb;
}

@media (max-width: 980px) {
    .spell-category-grid,
    .spell-category-grid-small,
    .spell-feature-grid,
    .spell-link-band {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .spell-hero,
    .spell-topic-hero {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 620px) {
    .spell-hero,
    .spell-note,
    .spell-content-band,
    .spell-link-band,
    .spell-topic-hero,
    .spell-list {
        width: min(100% - 1rem, 1120px);
    }

    .spell-category-grid,
    .spell-category-grid-small,
    .spell-feature-grid,
    .spell-link-band {
        grid-template-columns: 1fr;
    }
}

.palm-page {
    display: grid;
    gap: 1.35rem;
}

.palm-hero,
.palm-note,
.palm-content-band,
.palm-link-band {
    width: min(1120px, calc(100% - 2rem));
    margin: 0 auto;
}

.palm-hero {
    display: grid;
    grid-template-columns: minmax(0, .96fr) minmax(320px, .76fr);
    gap: 1.5rem;
    align-items: center;
    padding: 1.5rem 0 .25rem;
}

.palm-hero h1 {
    margin: .35rem 0 .65rem;
    color: #181126;
    font-size: clamp(2rem, 4vw, 3.75rem);
    line-height: 1.02;
}

.palm-hero p,
.palm-note p,
.palm-section-head p,
.palm-info-card p,
.palm-mini-grid p {
    color: #5f576f;
    line-height: 1.72;
}

.palm-kicker {
    display: inline-flex;
    width: fit-content;
    padding: .35rem .65rem;
    border-radius: 999px;
    background: #f0fdf4;
    color: #047857;
    font-size: .76rem;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
}

.palm-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
}

.palm-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: .75rem 1rem;
    border-radius: 8px;
    font-weight: 900;
    text-decoration: none;
}

.palm-actions a:first-child {
    background: #059669;
    color: #fff;
    box-shadow: 0 14px 30px rgba(5, 150, 105, .2);
}

.palm-actions a:last-child {
    border: 1px solid #dce9e2;
    background: #fff;
    color: #27352f;
}

.palm-hero-media {
    margin: 0;
}

.palm-hero-media img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 18px 45px rgba(20, 45, 34, .14);
}

.palm-note,
.palm-content-band {
    padding: 1.25rem;
    border: 1px solid #ddebe4;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 14px 35px rgba(20, 45, 34, .07);
}

.palm-note {
    background: #f0fdf4;
}

.palm-note strong,
.palm-section-head h2,
.palm-feature-grid strong,
.palm-info-card h3,
.palm-mini-grid strong,
.palm-link-band strong {
    color: #21172f;
}

.palm-section-head {
    margin-bottom: 1rem;
}

.palm-section-head h2 {
    margin: .35rem 0 .35rem;
    font-size: clamp(1.35rem, 2.6vw, 2.15rem);
}

.palm-feature-grid,
.palm-link-band {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .85rem;
}

.palm-feature-grid article,
.palm-link-band a,
.palm-mini-grid article {
    padding: 1rem;
    border: 1px solid #ddebe4;
    border-radius: 8px;
    background: #f8fffb;
}

.palm-feature-grid span,
.palm-link-band span {
    color: #6f6681;
}

.palm-card-grid {
    display: grid;
    gap: 1rem;
}

.palm-info-card {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
    padding: 1rem;
    border: 1px solid #ddebe4;
    border-radius: 8px;
    background: #fff;
}

.palm-info-card img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    background: #f0fdf4;
}

.palm-info-card h3 {
    margin: .2rem 0 .5rem;
    font-size: 1.35rem;
}

.palm-split {
    display: grid;
    grid-template-columns: minmax(280px, .45fr) minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
}

.palm-split > img {
    width: 100%;
    height: auto;
    border-radius: 8px;
    background: #f0fdf4;
}

.palm-mini-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
}

.palm-mini-grid-five {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.palm-mini-grid p {
    margin: .35rem 0 0;
}

.palm-link-band a {
    text-decoration: none;
}

@media (max-width: 930px) {
    .palm-hero,
    .palm-split {
        grid-template-columns: 1fr;
    }

    .palm-feature-grid,
    .palm-link-band,
    .palm-mini-grid,
    .palm-mini-grid-five {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 620px) {
    .palm-hero,
    .palm-note,
    .palm-content-band,
    .palm-link-band {
        width: min(100% - 1rem, 1120px);
    }

    .palm-feature-grid,
    .palm-link-band,
    .palm-info-card,
    .palm-mini-grid,
    .palm-mini-grid-five {
        grid-template-columns: 1fr;
    }
}

.blood-page {
    display: grid;
    gap: 1.35rem;
}

.blood-hero,
.blood-note,
.blood-content-band,
.blood-type-grid,
.blood-link-band {
    width: min(1120px, calc(100% - 2rem));
    margin: 0 auto;
}

.blood-hero {
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(320px, .75fr);
    gap: 1.5rem;
    align-items: center;
    padding: 1.5rem 0 .25rem;
}

.blood-hero h1 {
    margin: .35rem 0 .65rem;
    color: #181126;
    font-size: clamp(2rem, 4vw, 3.8rem);
    line-height: 1.02;
}

.blood-hero p,
.blood-note p,
.blood-section-head p,
.blood-type-card p,
.blood-compat-grid p,
.blood-advice-grid p {
    color: #5f576f;
    line-height: 1.72;
}

.blood-kicker {
    display: inline-flex;
    width: fit-content;
    padding: .35rem .65rem;
    border-radius: 999px;
    background: #fff1f2;
    color: #be123c;
    font-size: .76rem;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
}

.blood-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
}

.blood-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: .75rem 1rem;
    border-radius: 8px;
    font-weight: 900;
    text-decoration: none;
}

.blood-actions a:first-child {
    background: #be123c;
    color: #fff;
    box-shadow: 0 14px 30px rgba(190, 18, 60, .2);
}

.blood-actions a:last-child {
    border: 1px solid #eadde5;
    background: #fff;
    color: #312436;
}

.blood-hero-media {
    margin: 0;
}

.blood-hero-media img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 18px 45px rgba(45, 20, 30, .14);
}

.blood-note,
.blood-content-band,
.blood-type-card {
    padding: 1.25rem;
    border: 1px solid #f0e3e7;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 14px 35px rgba(45, 20, 30, .07);
}

.blood-note {
    background: #fff7ed;
}

.blood-note strong,
.blood-section-head h2,
.blood-type-card h2,
.blood-feature-grid strong,
.blood-compat-grid strong,
.blood-advice-grid strong,
.blood-link-band strong {
    color: #21172f;
}

.blood-section-head {
    margin-bottom: 1rem;
}

.blood-section-head h2 {
    margin: .35rem 0 .35rem;
    font-size: clamp(1.35rem, 2.6vw, 2.15rem);
}

.blood-feature-grid,
.blood-advice-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .85rem;
}

.blood-feature-grid article,
.blood-advice-grid article,
.blood-compat-grid article,
.blood-link-band a {
    padding: 1rem;
    border: 1px solid #f0e3e7;
    border-radius: 8px;
    background: #fff8fa;
}

.blood-feature-grid strong {
    display: block;
    font-size: 1.5rem;
}

.blood-feature-grid span,
.blood-link-band span {
    color: #6f6681;
}

.blood-type-grid {
    display: grid;
    gap: 1rem;
}

.blood-type-card {
    display: grid;
    gap: 1rem;
}

.blood-type-top {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    gap: 1rem;
    align-items: center;
}

.blood-type-top img {
    width: 112px;
    height: 150px;
    border-radius: 8px;
    object-fit: cover;
    background: #fff1f2;
}

.blood-type-card h2 {
    margin: .25rem 0;
    font-size: clamp(1.45rem, 2.4vw, 2rem);
}

.blood-two-cols,
.blood-life-grid,
.blood-compat-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
}

.blood-two-cols > div,
.blood-life-grid p {
    padding: 1rem;
    border-radius: 8px;
    background: #fbf7fa;
}

.blood-two-cols ul {
    margin: .5rem 0 0;
    padding-left: 1.2rem;
    color: #4b4258;
}

.blood-life-grid p {
    margin: 0;
}

.blood-compat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.blood-compat-grid p,
.blood-advice-grid p {
    margin: .35rem 0 0;
}

.blood-link-band {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .85rem;
}

.blood-link-band a {
    text-decoration: none;
}

@media (max-width: 900px) {
    .blood-hero {
        grid-template-columns: 1fr;
    }

    .blood-feature-grid,
    .blood-advice-grid,
    .blood-link-band {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 620px) {
    .blood-hero,
    .blood-note,
    .blood-content-band,
    .blood-type-grid,
    .blood-link-band {
        width: min(100% - 1rem, 1120px);
    }

    .blood-type-top,
    .blood-two-cols,
    .blood-life-grid,
    .blood-compat-grid,
    .blood-feature-grid,
    .blood-advice-grid,
    .blood-link-band {
        grid-template-columns: 1fr;
    }
}

.china-page {
    display: grid;
    gap: 1.35rem;
}

.china-hero,
.china-year-callout,
.china-tool,
.china-content-band,
.china-link-band,
.china-profile-hero,
.china-result-strip,
.china-article {
    width: min(1120px, calc(100% - 2rem));
    margin: 0 auto;
}

.china-hero {
    display: grid;
    grid-template-columns: minmax(0, .92fr) minmax(340px, .8fr);
    gap: 1.5rem;
    align-items: center;
    padding: 1.5rem 0 .25rem;
}

.china-hero-copy h1,
.china-profile-hero h1 {
    margin: .35rem 0 .65rem;
    color: #181126;
    font-size: clamp(2rem, 4vw, 3.7rem);
    line-height: 1.02;
}

.china-hero-copy p,
.china-profile-hero p,
.china-section-head p,
.china-feature-grid p,
.china-tool p,
.china-year-callout p,
.china-article p {
    color: #5f576f;
    line-height: 1.75;
}

.china-kicker {
    display: inline-flex;
    width: fit-content;
    padding: .35rem .65rem;
    border-radius: 999px;
    background: #fff7ed;
    color: #9a3412;
    font-size: .76rem;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
}

.china-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
}

.china-actions a,
.china-year-callout a,
.china-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: .75rem 1rem;
    border-radius: 8px;
    font-weight: 900;
    text-decoration: none;
}

.china-actions a:first-child,
.china-year-callout a,
.china-submit {
    border: 0;
    background: #dc2626;
    color: #fff;
    box-shadow: 0 14px 30px rgba(220, 38, 38, .18);
}

.china-actions a:last-child {
    border: 1px solid #e7e0f0;
    background: #fff;
    color: #2f263d;
}

.china-hero-media {
    margin: 0;
}

.china-hero-media img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 18px 45px rgba(35, 20, 20, .14);
}

.china-year-callout,
.china-tool,
.china-content-band,
.china-profile-hero,
.china-article {
    padding: 1.25rem;
    border: 1px solid #efe7dc;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 14px 35px rgba(36, 22, 18, .07);
}

.china-year-callout {
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    align-items: center;
    background: #fffaf3;
}

.china-year-callout h2,
.china-section-head h2,
.china-tool h2,
.china-content-band h2 {
    margin: .35rem 0 .35rem;
    color: #201627;
    font-size: clamp(1.35rem, 2.6vw, 2.15rem);
}

.china-tool {
    display: grid;
    grid-template-columns: minmax(240px, .42fr) minmax(0, 1fr);
    gap: 1.1rem;
    align-items: end;
}

.china-form {
    display: grid;
    gap: .8rem;
}

.china-form-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
}

.china-form label {
    display: grid;
    gap: .35rem;
    margin: 0;
    color: #251c35;
    font-weight: 900;
}

.china-form .form-control {
    min-height: 46px;
    border: 1px solid #e5d8cb;
    border-radius: 8px;
    background: #fff;
    color: #21172f;
}

.china-submit {
    width: 100%;
    gap: .45rem;
    cursor: pointer;
}

.china-section-head {
    margin-bottom: 1rem;
}

.china-feature-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .85rem;
}

.china-feature-grid article,
.china-element-grid a,
.china-link-band a {
    padding: 1rem;
    border: 1px solid #f0e7dd;
    border-radius: 8px;
    background: #fffaf6;
}

.china-feature-grid strong,
.china-element-grid strong,
.china-link-band strong {
    display: block;
    color: #21172f;
}

.china-animal-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .9rem;
}

.china-animal-card {
    overflow: hidden;
    border: 1px solid #efe7dc;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 12px 25px rgba(36, 22, 18, .06);
}

.china-animal-head {
    display: flex;
    align-items: center;
    gap: .65rem;
    padding: .95rem;
    background: #2b1823;
    color: #fff;
    text-decoration: none;
}

.china-animal-head span {
    font-size: 1.5rem;
}

.china-period-list {
    display: grid;
}

.china-period-list a {
    display: flex;
    justify-content: space-between;
    gap: .75rem;
    padding: .72rem .9rem;
    border-top: 1px solid #f2eadf;
    color: #2f263d;
    text-decoration: none;
}

.china-period-list a:hover {
    background: #fff7ed;
}

.china-period-list em {
    color: #9a3412;
    font-style: normal;
    font-weight: 900;
}

.china-link-band {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .85rem;
}

.china-link-band a {
    text-decoration: none;
}

.china-link-band span {
    color: #6f6681;
}

.china-inner {
    padding-top: 1rem;
}

.china-profile-hero {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    gap: 1rem;
    align-items: center;
    background: #fffaf3;
}

.china-animal-symbol {
    display: grid;
    place-items: center;
    width: 92px;
    height: 92px;
    border-radius: 50%;
    background: #2b1823;
    color: #fff;
    font-size: 2.5rem;
    font-weight: 900;
}

.china-article {
    font-size: 1.02rem;
}

.china-article h2,
.china-article h3 {
    color: #201627;
}

.china-article-compact {
    width: auto;
    padding: 0;
    border: 0;
    box-shadow: none;
}

.china-element-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .75rem;
}

.china-element-grid a {
    color: #2f263d;
    text-decoration: none;
}

.china-element-grid span {
    display: block;
    margin-top: .25rem;
    color: #6f6681;
    font-size: .9rem;
}

.china-result-strip {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
}

.china-result-strip span {
    padding: .65rem .8rem;
    border-radius: 8px;
    background: #fdf2f8;
    color: #831843;
}

.china-year-article > h1:first-child {
    margin-top: 0;
    color: #181126;
    font-size: clamp(2rem, 4vw, 3.4rem);
    line-height: 1.05;
}

.china-year-article > h2 {
    padding: .9rem 1rem;
    border-radius: 8px;
    background: #fff7ed;
    color: #9a3412;
}

.china-year-article .btn {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    min-height: 40px;
    margin: .25rem;
    padding: .55rem .75rem;
    border-radius: 8px;
    background: #2b1823;
    color: #fff;
    text-decoration: none;
    font-weight: 900;
}

@media (max-width: 930px) {
    .china-hero,
    .china-tool {
        grid-template-columns: 1fr;
    }

    .china-feature-grid,
    .china-animal-grid,
    .china-link-band,
    .china-element-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .china-year-callout {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 620px) {
    .china-hero,
    .china-year-callout,
    .china-tool,
    .china-content-band,
    .china-link-band,
    .china-profile-hero,
    .china-result-strip,
    .china-article {
        width: min(100% - 1rem, 1120px);
    }

    .china-form-grid,
    .china-feature-grid,
    .china-animal-grid,
    .china-link-band,
    .china-element-grid {
        grid-template-columns: 1fr;
    }

    .china-profile-hero {
        grid-template-columns: 1fr;
    }
}

.sales-page {
    display: grid;
    gap: 1.35rem;
}

.sales-hero,
.sales-trust-row,
.sales-content-grid,
.sales-order,
.sales-process {
    width: min(1120px, calc(100% - 2rem));
    margin: 0 auto;
}

.sales-hero {
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(360px, 1fr);
    gap: 1.5rem;
    align-items: center;
    padding: 1.5rem 0 .25rem;
}

.sales-hero-copy {
    display: grid;
    gap: .85rem;
}

.sales-kicker {
    display: inline-flex;
    width: fit-content;
    padding: .35rem .65rem;
    border-radius: 999px;
    background: #f0fdf4;
    color: #047857;
    font-size: .76rem;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
}

.sales-page-synastry .sales-kicker {
    background: #fdf2f8;
    color: #be185d;
}

.sales-hero h1 {
    margin: 0;
    color: #181126;
    font-size: clamp(2rem, 4vw, 3.8rem);
    line-height: 1.02;
}

.sales-hero p,
.sales-copy-card p,
.sales-order-intro p,
.sales-step-grid p {
    color: #5f576f;
    line-height: 1.7;
}

.sales-price-box {
    display: grid;
    gap: .25rem;
    padding: 1rem;
    border: 1px solid #eee8f7;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 14px 35px rgba(31, 19, 56, .08);
}

.sales-price-box span,
.sales-price-box small {
    color: #6f6681;
    font-weight: 800;
}

.sales-price-box strong {
    color: #1f1831;
    font-size: 1.35rem;
}

.sales-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
}

.sales-primary-link,
.sales-secondary-link,
.sales-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: .75rem 1rem;
    border-radius: 8px;
    font-weight: 900;
    text-decoration: none;
}

.sales-primary-link,
.sales-submit {
    border: 0;
    background: #ec4899;
    color: #fff;
    box-shadow: 0 14px 30px rgba(236, 72, 153, .22);
}

.sales-page-map .sales-primary-link,
.sales-page-map .sales-submit {
    background: #16a34a;
    box-shadow: 0 14px 30px rgba(22, 163, 74, .2);
}

.sales-secondary-link {
    border: 1px solid #e7e0f0;
    background: #fff;
    color: #271f38;
}

.sales-hero-media {
    margin: 0;
}

.sales-hero-media img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 18px 45px rgba(30, 20, 54, .15);
}

.sales-trust-row {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
}

.sales-trust-row article,
.sales-copy-card,
.sales-order,
.sales-process {
    border: 1px solid #eee8f7;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 14px 35px rgba(31, 19, 56, .07);
}

.sales-trust-row article {
    display: grid;
    gap: .15rem;
    padding: .95rem;
}

.sales-trust-row strong,
.sales-copy-card h2,
.sales-order h2,
.sales-process h2,
.sales-form-section strong {
    color: #21172f;
}

.sales-trust-row span {
    color: #6f6681;
    font-size: .9rem;
}

.sales-content-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, .55fr);
    gap: 1rem;
}

.sales-copy-card,
.sales-order,
.sales-process {
    padding: 1.25rem;
}

.sales-copy-card h2,
.sales-order h2,
.sales-process h2 {
    margin: .35rem 0 .5rem;
    font-size: clamp(1.35rem, 2.5vw, 2.1rem);
}

.sales-soft-card {
    background: #fbfaff;
}

.sales-check-list {
    display: grid;
    gap: .55rem;
    margin: 1rem 0 0;
    padding: 0;
    list-style: none;
}

.sales-check-list li {
    position: relative;
    padding-left: 1.55rem;
    color: #332b45;
}

.sales-check-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .45rem;
    width: .72rem;
    height: .72rem;
    border-radius: 50%;
    background: #22c55e;
}

.sales-page-synastry .sales-check-list li::before {
    background: #ec4899;
}

.sales-mini-list {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin: 1rem 0;
}

.sales-mini-list span {
    padding: .45rem .65rem;
    border-radius: 999px;
    background: #fff;
    color: #3b3150;
    font-weight: 800;
}

.sales-copy-card a {
    color: #be185d;
    font-weight: 900;
}

.sales-order {
    display: grid;
    grid-template-columns: minmax(260px, .42fr) minmax(0, 1fr);
    gap: 1.25rem;
    align-items: start;
}

.sales-alert {
    margin-top: 1rem;
    padding: .9rem;
    border-radius: 8px;
    background: #fff7ed;
    color: #7c2d12;
    font-weight: 800;
}

.sales-form {
    display: grid;
    gap: 1rem;
}

.sales-form-section {
    display: grid;
    gap: .75rem;
    padding: 1rem;
    border-radius: 8px;
    background: #faf9fd;
}

.sales-form label {
    display: grid;
    gap: .35rem;
    margin: 0;
    color: #251c35;
    font-weight: 900;
}

.sales-form .form-control {
    min-height: 46px;
    width: 100%;
    border: 1px solid #ddd6ea;
    border-radius: 8px;
    background: #fff;
    color: #21172f;
}

.sales-form-grid {
    display: grid;
    gap: .75rem;
}

.sales-form-grid-two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.sales-form-grid-three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.sales-form-phone {
    grid-template-columns: minmax(80px, .25fr) minmax(0, 1fr);
}

.sales-news {
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
    align-items: center;
    padding: .75rem;
    border-radius: 8px;
    background: #f8fafc;
}

.sales-news span {
    color: #21172f;
    font-weight: 900;
}

.sales-news label {
    display: inline-flex;
    gap: .35rem;
    align-items: center;
    font-weight: 800;
}

.sales-submit {
    width: 100%;
    gap: .45rem;
    cursor: pointer;
}

.sales-section-head {
    margin-bottom: 1rem;
}

.sales-step-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .85rem;
}

.sales-step-grid article {
    padding: 1rem;
    border-radius: 8px;
    background: #fbfaff;
}

.sales-step-grid span {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    margin-bottom: .65rem;
    border-radius: 50%;
    background: #1f1831;
    color: #fff;
    font-weight: 900;
}

.sales-step-grid strong {
    color: #21172f;
}

@media (max-width: 930px) {
    .sales-hero,
    .sales-content-grid,
    .sales-order {
        grid-template-columns: 1fr;
    }

    .sales-trust-row,
    .sales-step-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 620px) {
    .sales-hero,
    .sales-trust-row,
    .sales-content-grid,
    .sales-order,
    .sales-process {
        width: min(100% - 1rem, 1120px);
    }

    .sales-trust-row,
    .sales-step-grid,
    .sales-form-grid-two,
    .sales-form-grid-three,
    .sales-form-phone {
        grid-template-columns: 1fr;
    }
}

.meaning-index-page {
    display: grid;
    gap: 2rem;
}

.meaning-index-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(300px, .95fr);
    gap: 1.5rem;
    align-items: stretch;
}

.meaning-index-copy,
.meaning-index-feature,
.meaning-index-section {
    border: 1px solid rgba(43, 63, 105, .12);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 18px 48px rgba(23, 37, 84, .08);
}

.meaning-index-copy {
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 410px;
    padding: clamp(1.4rem, 4vw, 3.25rem);
    background: linear-gradient(135deg, #18213d 0%, #334d74 56%, #b85d68 100%);
    color: #fff;
}

.meaning-index-copy::after {
    content: "";
    position: absolute;
    right: -70px;
    bottom: -90px;
    width: 250px;
    height: 250px;
    border: 1px solid rgba(255,255,255,.24);
    border-radius: 50%;
}

.meaning-index-eyebrow {
    display: inline-flex;
    width: fit-content;
    margin-bottom: .75rem;
    padding: .28rem .7rem;
    border-radius: 999px;
    background: rgba(49, 86, 135, .1);
    color: #315687;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
}

.meaning-index-copy .meaning-index-eyebrow {
    background: rgba(255,255,255,.16);
    color: #fff;
}

.meaning-index-copy h1 {
    position: relative;
    z-index: 1;
    max-width: 800px;
    margin: 0;
    color: #fff;
    font-size: clamp(2rem, 4.2vw, 4rem);
    line-height: 1.02;
    letter-spacing: 0;
}

.meaning-index-copy p {
    position: relative;
    z-index: 1;
    max-width: 700px;
    margin: 1rem 0 0;
    color: rgba(255,255,255,.86);
    font-size: 1.06rem;
}

.meaning-index-actions {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
    margin-top: 1.5rem;
}

.meaning-index-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: .62rem .95rem;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 999px;
    background: rgba(255,255,255,.12);
    color: #fff;
    font-size: .86rem;
    font-weight: 900;
}

.meaning-index-actions a:first-child {
    background: #f2c463;
    color: #18213d;
}

.meaning-index-feature {
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.meaning-index-feature img {
    width: 100%;
    min-height: 310px;
    flex: 1;
    object-fit: cover;
}

.meaning-index-feature div {
    padding: 1.1rem;
}

.meaning-index-feature strong,
.meaning-index-feature span {
    display: block;
}

.meaning-index-feature strong {
    color: #1f2a44;
    font-size: 1.1rem;
    line-height: 1.25;
}

.meaning-index-feature span {
    margin-top: .35rem;
    color: #667085;
    font-size: .94rem;
}

.meaning-index-section {
    padding: clamp(1.1rem, 3vw, 2rem);
}

.meaning-index-heading {
    max-width: 780px;
    margin-bottom: 1.15rem;
}

.meaning-index-heading h2 {
    margin: 0;
    color: #1f2a44;
    font-size: clamp(1.55rem, 3vw, 2.45rem);
    line-height: 1.1;
}

.meaning-index-heading p {
    margin: .6rem 0 0;
    color: #667085;
}

.meaning-index-grid {
    display: grid;
    gap: 1rem;
}

.meaning-index-main-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.meaning-index-related-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.meaning-index-card {
    overflow: hidden;
    min-width: 0;
    border: 1px solid rgba(43, 63, 105, .12);
    border-radius: 8px;
    background: #fff;
}

.meaning-index-card a {
    display: grid;
    height: 100%;
    color: inherit;
    text-decoration: none;
}

.meaning-index-card a:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 38px rgba(23, 37, 84, .12);
}

.meaning-index-card img {
    width: 100%;
    aspect-ratio: 1.5 / 1;
    object-fit: cover;
}

.meaning-index-card-body {
    display: grid;
    gap: .48rem;
    padding: 1rem;
}

.meaning-index-tag {
    display: inline-flex;
    width: fit-content;
    padding: .22rem .55rem;
    border-radius: 999px;
    background: #eef4ff;
    color: #315687;
    font-size: .68rem;
    font-weight: 900;
    text-transform: uppercase;
}

.meaning-index-card strong {
    color: #1f2a44;
    font-size: 1.12rem;
    line-height: 1.2;
}

.meaning-index-card small,
.meaning-index-columns p {
    color: #667085;
    font-size: .93rem;
    line-height: 1.55;
}

.meaning-index-card em {
    margin-top: .25rem;
    color: #315687;
    font-size: .82rem;
    font-style: normal;
    font-weight: 900;
}

.meaning-index-card.is-featured {
    grid-column: span 2;
}

.meaning-index-explain {
    background: #f8fafc;
}

.meaning-index-columns {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.meaning-index-columns article {
    padding: 1rem;
    border: 1px solid rgba(43, 63, 105, .12);
    border-radius: 8px;
    background: #fff;
}

.meaning-index-columns h3 {
    margin: 0 0 .45rem;
    color: #1f2a44;
    font-size: 1.05rem;
}

@media (max-width: 980px) {
    .meaning-index-hero,
    .meaning-index-main-grid,
    .meaning-index-related-grid,
    .meaning-index-columns {
        grid-template-columns: 1fr;
    }

    .meaning-index-card.is-featured {
        grid-column: auto;
    }
}

@media (max-width: 560px) {
    .meaning-index-copy,
    .meaning-index-section {
        padding: 1rem;
    }

    .meaning-index-copy {
        min-height: auto;
    }

    .meaning-index-feature img {
        min-height: 220px;
    }

    .meaning-index-actions a {
        width: 100%;
    }
}

.esoteric-index-page {
    display: grid;
    gap: 2rem;
}

.esoteric-index-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(300px, .92fr);
    gap: 1.5rem;
    align-items: stretch;
}

.esoteric-index-copy,
.esoteric-index-feature,
.esoteric-index-section {
    border: 1px solid rgba(103, 80, 164, .14);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 18px 48px rgba(32, 21, 74, .08);
}

.esoteric-index-copy {
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 420px;
    padding: clamp(1.4rem, 4vw, 3.25rem);
    background: linear-gradient(135deg, #1d123f 0%, #50326f 58%, #9b3f6f 100%);
    color: #fff;
}

.esoteric-index-copy::after {
    content: "";
    position: absolute;
    right: -80px;
    bottom: -100px;
    width: 260px;
    height: 260px;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 50%;
}

.esoteric-index-eyebrow {
    display: inline-flex;
    width: fit-content;
    margin-bottom: .75rem;
    padding: .28rem .7rem;
    border-radius: 999px;
    background: rgba(123, 92, 208, .1);
    color: #5b3aa4;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
}

.esoteric-index-copy .esoteric-index-eyebrow {
    background: rgba(255,255,255,.16);
    color: #fff;
}

.esoteric-index-copy h1 {
    position: relative;
    z-index: 1;
    max-width: 760px;
    margin: 0;
    color: #fff;
    font-size: clamp(2rem, 4.4vw, 4.1rem);
    line-height: 1.02;
    letter-spacing: 0;
}

.esoteric-index-copy p {
    position: relative;
    z-index: 1;
    max-width: 680px;
    margin: 1rem 0 0;
    color: rgba(255,255,255,.86);
    font-size: 1.06rem;
}

.esoteric-index-actions {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
    margin-top: 1.5rem;
}

.esoteric-index-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: .62rem .95rem;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 999px;
    background: rgba(255,255,255,.12);
    color: #fff;
    font-size: .86rem;
    font-weight: 900;
}

.esoteric-index-actions a:first-child {
    background: #f4c95d;
    color: #2b184d;
}

.esoteric-index-feature {
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.esoteric-index-feature img {
    width: 100%;
    min-height: 320px;
    flex: 1;
    object-fit: cover;
}

.esoteric-index-feature div {
    padding: 1.1rem;
}

.esoteric-index-feature strong,
.esoteric-index-feature span {
    display: block;
}

.esoteric-index-feature strong {
    color: #24143f;
    font-size: 1.1rem;
    line-height: 1.25;
}

.esoteric-index-feature span {
    margin-top: .35rem;
    color: #665b78;
    font-size: .94rem;
}

.esoteric-index-section {
    padding: clamp(1.1rem, 3vw, 2rem);
}

.esoteric-index-heading {
    max-width: 760px;
    margin-bottom: 1.15rem;
}

.esoteric-index-heading h2 {
    margin: 0;
    color: #24143f;
    font-size: clamp(1.55rem, 3vw, 2.45rem);
    line-height: 1.1;
}

.esoteric-index-heading p {
    margin: .6rem 0 0;
    color: #665b78;
}

.esoteric-index-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.esoteric-index-card {
    overflow: hidden;
    min-width: 0;
    border: 1px solid rgba(103, 80, 164, .13);
    border-radius: 8px;
    background: #fff;
}

.esoteric-index-card a {
    display: grid;
    height: 100%;
    color: inherit;
    text-decoration: none;
}

.esoteric-index-card a:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 38px rgba(32, 21, 74, .12);
}

.esoteric-index-card img {
    width: 100%;
    aspect-ratio: 1.5 / 1;
    object-fit: cover;
}

.esoteric-index-card-body {
    display: grid;
    gap: .48rem;
    padding: 1rem;
}

.esoteric-index-tag {
    display: inline-flex;
    width: fit-content;
    padding: .22rem .55rem;
    border-radius: 999px;
    background: #f8edf2;
    color: #9b2f66;
    font-size: .68rem;
    font-weight: 900;
    text-transform: uppercase;
}

.esoteric-index-card strong {
    color: #24143f;
    font-size: 1.12rem;
    line-height: 1.2;
}

.esoteric-index-card small,
.esoteric-index-columns p {
    color: #665b78;
    font-size: .93rem;
    line-height: 1.55;
}

.esoteric-index-card em {
    margin-top: .25rem;
    color: #6d43b8;
    font-size: .82rem;
    font-style: normal;
    font-weight: 900;
}

.esoteric-index-card.is-featured {
    grid-column: span 2;
}

.esoteric-index-explain {
    background: #fbf8f3;
}

.esoteric-index-columns {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.esoteric-index-columns article {
    padding: 1rem;
    border: 1px solid rgba(103, 80, 164, .13);
    border-radius: 8px;
    background: #fff;
}

.esoteric-index-columns h3 {
    margin: 0 0 .45rem;
    color: #24143f;
    font-size: 1.05rem;
}

@media (max-width: 900px) {
    .esoteric-index-hero,
    .esoteric-index-grid,
    .esoteric-index-columns {
        grid-template-columns: 1fr;
    }

    .esoteric-index-card.is-featured {
        grid-column: auto;
    }
}

@media (max-width: 560px) {
    .esoteric-index-copy,
    .esoteric-index-section {
        padding: 1rem;
    }

    .esoteric-index-copy {
        min-height: auto;
    }

    .esoteric-index-feature img {
        min-height: 220px;
    }

    .esoteric-index-actions a {
        width: 100%;
    }
}

.daily-index-page {
    display: grid;
    gap: 2rem;
}

.compat-page {
    display: grid;
    gap: 2rem;
}

.compat-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(300px, .95fr);
    gap: 1.5rem;
    align-items: stretch;
}

.compat-copy,
.compat-media,
.compat-tool,
.compat-result,
.compat-section {
    border: 1px solid rgba(43, 63, 105, .12);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 18px 48px rgba(23, 37, 84, .08);
}

.compat-copy {
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 410px;
    padding: clamp(1.4rem, 4vw, 3.25rem);
    background: linear-gradient(135deg, #3a1729 0%, #a43b63 58%, #e0a33a 100%);
    color: #fff;
}

.compat-copy::after {
    content: "";
    position: absolute;
    right: -80px;
    bottom: -100px;
    width: 260px;
    height: 260px;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 50%;
}

.compat-eyebrow {
    display: inline-flex;
    width: fit-content;
    margin-bottom: .75rem;
    padding: .28rem .7rem;
    border-radius: 999px;
    background: #fff0f6;
    color: #a43b63;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
}

.compat-copy .compat-eyebrow {
    position: relative;
    z-index: 1;
    background: rgba(255,255,255,.16);
    color: #fff;
}

.compat-copy h1 {
    position: relative;
    z-index: 1;
    max-width: 820px;
    margin: 0;
    color: #fff;
    font-size: clamp(2rem, 4.2vw, 4rem);
    line-height: 1.02;
    letter-spacing: 0;
}

.compat-copy p {
    position: relative;
    z-index: 1;
    max-width: 700px;
    margin: 1rem 0 0;
    color: rgba(255,255,255,.86);
    font-size: 1.06rem;
}

.compat-actions {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
    margin-top: 1.5rem;
}

.compat-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: .62rem .95rem;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 999px;
    background: rgba(255,255,255,.12);
    color: #fff;
    font-size: .86rem;
    font-weight: 900;
}

.compat-actions a:first-child {
    background: #f4d35e;
    color: #3a1729;
}

.compat-media {
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.compat-media img {
    width: 100%;
    min-height: 310px;
    flex: 1;
    object-fit: cover;
}

.compat-media div {
    padding: 1.1rem;
}

.compat-media strong,
.compat-media span {
    display: block;
}

.compat-media strong {
    color: #3a1729;
    font-size: 1.1rem;
    line-height: 1.25;
}

.compat-media span {
    margin-top: .35rem;
    color: #667085;
    font-size: .94rem;
}

.compat-tool,
.compat-result,
.compat-section {
    padding: clamp(1.1rem, 3vw, 2rem);
}

.compat-tool-heading,
.compat-result-heading,
.compat-section-heading {
    max-width: 780px;
    margin-bottom: 1.15rem;
}

.compat-tool-heading h2,
.compat-result-heading h2,
.compat-section-heading h2 {
    margin: 0;
    color: #3a1729;
    font-size: clamp(1.55rem, 3vw, 2.45rem);
    line-height: 1.1;
}

.compat-tool-heading p,
.compat-result-heading p,
.compat-section-heading p {
    margin: .6rem 0 0;
    color: #667085;
}

.compat-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.compat-tool fieldset {
    display: grid;
    gap: .85rem;
    min-width: 0;
    margin: 0;
    padding: 1rem;
    border: 1px solid rgba(164, 59, 99, .16);
    border-radius: 8px;
    background: #fffafa;
}

.compat-tool legend {
    padding: 0 .35rem;
    color: #3a1729;
    font-weight: 900;
}

.compat-tool label {
    display: grid;
    gap: .3rem;
    color: #667085;
    font-size: .82rem;
    font-weight: 800;
}

.compat-tool input,
.compat-tool select,
.compat-tool button {
    min-height: 44px;
    border-radius: 8px;
    font: inherit;
}

.compat-tool input,
.compat-tool select {
    width: 100%;
    border: 1px solid rgba(43, 63, 105, .18);
    padding: .55rem .65rem;
    background: #fff;
    color: #3a1729;
}

.compat-tool button {
    width: 100%;
    margin-top: 1rem;
    border: 0;
    background: #a43b63;
    color: #fff;
    font-weight: 900;
}

.compat-result-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
    gap: 1rem;
}

.compat-result-card {
    padding: 1rem;
    border: 1px solid rgba(164, 59, 99, .14);
    border-radius: 8px;
    background: #fff;
}

.compat-result-card.is-signs {
    background: #fff8fb;
}

.compat-result-card > span {
    color: #a43b63;
    font-size: .72rem;
    font-weight: 900;
    text-transform: uppercase;
}

.compat-result-card h3 {
    margin: .45rem 0 .75rem;
    color: #3a1729;
    font-size: 1.25rem;
    line-height: 1.2;
}

.compat-result-text p,
.compat-columns p {
    color: #4b5563;
    font-size: .96rem;
    line-height: 1.7;
}

.compat-columns,
.compat-link-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.compat-link-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.compat-columns article,
.compat-link-grid a {
    padding: 1rem;
    border: 1px solid rgba(43, 63, 105, .12);
    border-radius: 8px;
    background: #fff;
}

.compat-columns h3 {
    margin: 0 0 .45rem;
    color: #3a1729;
    font-size: 1.05rem;
}

.compat-link-grid a {
    display: grid;
    gap: .25rem;
}

.compat-link-grid strong {
    color: #3a1729;
}

.compat-link-grid span {
    color: #667085;
    font-size: .9rem;
}

.compat-links {
    background: #fff8fb;
}

.compat-synastry-cta {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: center;
    padding: clamp(1.1rem, 3vw, 2rem);
    border: 1px solid rgba(164, 59, 99, .22);
    border-radius: 8px;
    background: linear-gradient(135deg, #3a1729 0%, #a43b63 100%);
    color: #fff;
    box-shadow: 0 18px 48px rgba(23, 37, 84, .08);
}

.compat-synastry-cta .compat-eyebrow {
    background: rgba(255,255,255,.16);
    color: #fff;
}

.compat-synastry-cta h2 {
    margin: 0;
    color: #fff;
    font-size: clamp(1.45rem, 3vw, 2.35rem);
    line-height: 1.1;
}

.compat-synastry-cta p {
    max-width: 780px;
    margin: .65rem 0 0;
    color: rgba(255,255,255,.86);
    line-height: 1.65;
}

.compat-synastry-cta > a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: .72rem 1.05rem;
    border-radius: 999px;
    background: #f4d35e;
    color: #3a1729;
    font-weight: 900;
    white-space: nowrap;
}

@media (max-width: 980px) {
    .compat-hero,
    .compat-form-grid,
    .compat-result-grid,
    .compat-columns,
    .compat-link-grid,
    .compat-synastry-cta {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .compat-copy,
    .compat-tool,
    .compat-result,
    .compat-section {
        padding: 1rem;
    }

    .compat-copy {
        min-height: auto;
    }

    .compat-media img {
        min-height: 220px;
    }

    .compat-actions a {
        width: 100%;
    }

    .compat-synastry-cta > a {
        width: 100%;
    }
}

.daily-index-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(300px, .95fr);
    gap: 1.5rem;
    align-items: stretch;
}

.daily-index-copy,
.daily-index-media,
.daily-index-section {
    border: 1px solid rgba(43, 63, 105, .12);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 18px 48px rgba(23, 37, 84, .08);
}

.daily-index-copy {
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 410px;
    padding: clamp(1.4rem, 4vw, 3.25rem);
    background: linear-gradient(135deg, #1e1b4b 0%, #6d28d9 58%, #db2777 100%);
    color: #fff;
}

.daily-index-copy::after {
    content: "";
    position: absolute;
    right: -80px;
    bottom: -100px;
    width: 260px;
    height: 260px;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 50%;
}

.daily-index-copy .daily-eyebrow {
    position: relative;
    z-index: 1;
    background: rgba(255,255,255,.16);
    color: #fff;
}

.daily-index-copy h1 {
    position: relative;
    z-index: 1;
    max-width: 820px;
    margin: 0;
    color: #fff;
    font-size: clamp(2rem, 4.2vw, 4rem);
    line-height: 1.02;
    letter-spacing: 0;
}

.daily-index-copy p {
    position: relative;
    z-index: 1;
    max-width: 700px;
    margin: 1rem 0 0;
    color: rgba(255,255,255,.86);
    font-size: 1.06rem;
}

.daily-index-actions {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
    margin-top: 1.5rem;
}

.daily-index-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: .62rem .95rem;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 999px;
    background: rgba(255,255,255,.12);
    color: #fff;
    font-size: .86rem;
    font-weight: 900;
}

.daily-index-actions a:first-child {
    background: #f4d35e;
    color: #1e1b4b;
}

.daily-index-media {
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.daily-index-media img {
    width: 100%;
    min-height: 310px;
    flex: 1;
    object-fit: cover;
}

.daily-index-media div {
    padding: 1.1rem;
}

.daily-index-media strong,
.daily-index-media span {
    display: block;
}

.daily-index-media strong {
    color: #1f2937;
    font-size: 1.1rem;
    line-height: 1.25;
}

.daily-index-media span {
    margin-top: .35rem;
    color: #667085;
    font-size: .94rem;
}

.daily-index-section {
    padding: clamp(1.1rem, 3vw, 2rem);
}

.daily-index-heading {
    max-width: 780px;
    margin-bottom: 1.15rem;
}

.daily-index-heading h2 {
    margin: 0;
    color: #1f2937;
    font-size: clamp(1.55rem, 3vw, 2.45rem);
    line-height: 1.1;
}

.daily-index-heading p {
    margin: .6rem 0 0;
    color: #667085;
}

.daily-index-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.daily-index-card {
    display: grid;
    gap: .9rem;
    min-width: 0;
    padding: 1rem;
    border: 1px solid rgba(43, 63, 105, .12);
    border-radius: 8px;
    background: #fff;
}

.daily-index-card-top {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: .85rem;
    align-items: center;
}

.daily-index-card-top img {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    object-fit: cover;
    background: #f8fafc;
}

.daily-index-card-top span {
    color: #6d28d9;
    font-size: 1.35rem;
    line-height: 1;
}

.daily-index-card h3 {
    margin: .2rem 0 0;
    color: #1f2937;
    font-size: 1.2rem;
}

.daily-index-card small {
    display: block;
    margin-top: .2rem;
    color: #667085;
    font-size: .82rem;
}

.daily-index-card p {
    margin: 0;
    color: #4b5563;
    font-size: .95rem;
    line-height: 1.6;
}

.daily-index-card blockquote {
    margin: 0;
    padding: .8rem;
    border-left: 3px solid #db2777;
    border-radius: 8px;
    background: #fff7fb;
    color: #831843;
    font-size: .9rem;
    line-height: 1.5;
}

.daily-index-links {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .45rem;
    margin-top: auto;
}

.daily-index-links a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: .45rem .5rem;
    border: 1px solid rgba(109, 40, 217, .18);
    border-radius: 8px;
    color: #5b21b6;
    font-size: .78rem;
    font-weight: 900;
    text-align: center;
}

.daily-index-links a:first-child,
.daily-index-links a:hover {
    background: #6d28d9;
    color: #fff;
}

.daily-index-support {
    background: #f8fafc;
}

.daily-index-support-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.daily-index-support-grid a {
    display: grid;
    gap: .25rem;
    padding: 1rem;
    border: 1px solid rgba(43, 63, 105, .12);
    border-radius: 8px;
    background: #fff;
}

.daily-index-support-grid strong {
    color: #1f2937;
}

.daily-index-support-grid span {
    color: #667085;
    font-size: .9rem;
}

@media (max-width: 980px) {
    .daily-index-hero,
    .daily-index-grid,
    .daily-index-support-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .daily-index-copy,
    .daily-index-section {
        padding: 1rem;
    }

    .daily-index-copy {
        min-height: auto;
    }

    .daily-index-media img {
        min-height: 220px;
    }

    .daily-index-actions a {
        width: 100%;
    }

    .daily-index-links {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.daily-horoscope {
    display: grid;
    gap: 1.1rem;
}

.daily-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(290px, .9fr);
    gap: 1rem;
    align-items: stretch;
}

.daily-hero-copy,
.daily-hero-sign,
.daily-reading-main,
.daily-side-panel,
.daily-section {
    border: 1px solid #ece5f6;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 16px 42px rgba(33, 18, 77, .07);
}

.daily-hero-copy {
    padding: clamp(1.2rem, 3vw, 2.55rem);
    color: #fff;
    background:
        radial-gradient(circle at 82% 18%, rgba(255,255,255,.2), transparent 28%),
        linear-gradient(135deg, #16082f, #5b21b6 52%, #0f766e);
    overflow: hidden;
    position: relative;
}

.daily-hero-copy::after {
    content: "";
    width: 280px;
    height: 280px;
    position: absolute;
    right: -105px;
    bottom: -130px;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 50%;
}

.daily-eyebrow {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    gap: .35rem;
    margin-bottom: .75rem;
    padding: .35rem .7rem;
    border-radius: 999px;
    background: rgba(124, 58, 237, .12);
    color: #6d28d9;
    font-size: .76rem;
    font-weight: 950;
    text-transform: uppercase;
}

.daily-hero-copy .daily-eyebrow {
    background: rgba(255,255,255,.15);
    color: #ffe68a;
}

.daily-hero-copy h1 {
    max-width: 760px;
    margin: 0;
    color: #fff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.1rem, 4.4vw, 4.65rem);
    line-height: .98;
}

.daily-hero-copy p {
    max-width: 700px;
    margin: 1rem 0 0;
    color: rgba(255,255,255,.88);
    font-size: 1.05rem;
}

.daily-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-top: 1.25rem;
}

.daily-meta span {
    min-width: 130px;
    padding: .75rem .85rem;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 8px;
    background: rgba(255,255,255,.1);
    color: #fff;
}

.daily-meta strong {
    display: block;
    color: rgba(255,255,255,.72);
    font-size: .72rem;
    text-transform: uppercase;
}

.daily-hero-sign {
    display: grid;
    place-items: center;
    padding: 1.2rem;
    background: linear-gradient(135deg, #fff, #fbf8ff);
}

.daily-hero-sign img {
    width: min(100%, 320px);
    aspect-ratio: 1;
    object-fit: contain;
}

.daily-day-tabs {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .65rem;
}

.daily-day-tabs a {
    display: flex;
    min-height: 54px;
    align-items: center;
    justify-content: center;
    padding: .75rem;
    border: 1px solid #ece5f6;
    border-radius: 8px;
    background: #fff;
    color: #170c36;
    font-weight: 950;
    text-align: center;
}

.daily-day-tabs a.is-active,
.daily-day-tabs a:hover {
    border-color: #6d28d9;
    background: #6d28d9;
    color: #fff;
}

.daily-reading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, .36fr);
    gap: 1rem;
    align-items: start;
}

.daily-reading-main,
.daily-side-panel,
.daily-section {
    padding: clamp(1rem, 2vw, 1.55rem);
}

.daily-reading-main h2,
.daily-section-heading h2 {
    margin: 0;
    color: #170c36;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.55rem, 3vw, 2.45rem);
    line-height: 1.05;
}

.daily-reading-text {
    display: grid;
    gap: .85rem;
    margin-top: .9rem;
}

.daily-reading-text p,
.daily-week p {
    margin: 0;
    color: #4d465f;
    font-size: 1.05rem;
    line-height: 1.8;
}

.daily-side-panel {
    display: grid;
    gap: .85rem;
}

.daily-quote,
.daily-cta {
    padding: 1rem;
    border-radius: 8px;
}

.daily-quote {
    background: #170c36;
    color: #fff;
}

.daily-quote span {
    color: #ffe16a;
    font-size: .78rem;
    font-weight: 950;
    text-transform: uppercase;
}

.daily-quote p {
    margin: .45rem 0 0;
    color: rgba(255,255,255,.9);
    font-size: 1rem;
}

.daily-cta {
    display: grid;
    gap: .75rem;
    background: #fbf8ff;
}

.daily-cta strong {
    color: #170c36;
}

.daily-cta a {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: #ffe16a;
    color: #170c36;
    font-size: .82rem;
    font-weight: 950;
    text-transform: uppercase;
}

.daily-section-heading {
    display: grid;
    gap: .35rem;
    margin-bottom: 1rem;
}

.daily-support-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
}

.daily-support-grid a {
    display: flex;
    min-height: 62px;
    align-items: center;
    padding: .8rem;
    border: 1px solid #ece5f6;
    border-radius: 8px;
    background: #fbf8ff;
    color: #170c36;
    font-weight: 900;
}

.daily-support-grid a:hover {
    border-color: rgba(109, 40, 217, .35);
    background: #fff;
}

@media (max-width: 1080px) {
    .daily-hero,
    .daily-reading {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .daily-day-tabs,
    .daily-support-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575px) {
    .daily-hero-copy,
    .daily-hero-sign,
    .daily-reading-main,
    .daily-side-panel,
    .daily-section {
        padding: 1rem;
    }

    .daily-day-tabs {
        grid-template-columns: 1fr;
    }
}

.signos-page {
    padding-bottom: 1.5rem;
}

.signos-hero {
    
    grid-template-columns: minmax(0, 1fr) minmax(320px, .82fr);
    gap: 1rem;
    align-items: stretch;
    margin-bottom: 1.25rem;
}

.signos-hero-copy,
.signos-hero-media,
.signos-result,
.signos-section,
.signos-tool-section {
    border: 1px solid rgba(18, 10, 51, .08);
    border-radius: 8px;
    box-shadow: 0 18px 45px rgba(24, 10, 66, .09);
}

.signos-hero-copy {
    min-height: 430px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(1.5rem, 4vw, 3rem);
    overflow: hidden;
    position: relative;
    background: radial-gradient(circle at 95% 12%, rgba(246, 214, 107, .22), transparent 26%), linear-gradient(135deg, #100036, #42108f 58%, #6d28d9);
    color: #fff;
}

.signos-hero-copy::after {
    content: "";
    position: absolute;
    inset: auto -70px -130px auto;
    width: 280px;
    height: 280px;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 50%;
}

.signos-eyebrow {
    display: inline-flex;
    width: fit-content;
    margin-bottom: .7rem;
    padding: .35rem .65rem;
    border-radius: 999px;
    background: #f0e5ff;
    color: #5b21b6;
    font-size: .75rem;
    font-weight: 950;
    text-transform: uppercase;
}

.signos-hero .signos-eyebrow,
.signos-link-band .signos-eyebrow {
    background: rgba(255,255,255,.14);
    color: #f6d66b;
}

.signos-hero h1 {
    max-width: 780px;
    margin-bottom: 1rem;
    color: #fff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.25rem, 5vw, 4.35rem);
    line-height: 1.02;
}

.signos-hero p {
    max-width: 680px;
    color: rgba(255,255,255,.88);
    font-size: 1.08rem;
}

.signos-hero-actions,
.signos-result-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-top: .6rem;
}

.signos-primary-action,
.signos-secondary-action,
.signos-result-actions a,
.signos-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: .8rem 1.15rem;
    border: 0;
    border-radius: 8px;
    font-size: .84rem;
    font-weight: 950;
    text-transform: uppercase;
}

.signos-primary-action,
.signos-submit {
    background: linear-gradient(180deg, #ffe88a, #e7ba45);
    color: #160b2f;
    box-shadow: 0 10px 25px rgba(246, 214, 107, .25);
}

.signos-secondary-action {
    color: #fff;
    background: rgba(255,255,255,.13);
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.16);
}

.signos-primary-action:hover,
.signos-submit:hover {
    color: #160b2f;
    transform: translateY(-1px);
}

.signos-secondary-action:hover {
    color: #fff;
    background: rgba(255,255,255,.2);
}

.signos-hero-media {
    min-height: 430px;
    overflow: hidden;
    background: #140338;
}

.signos-hero-media img {
    width: 100%;
    height: 100%;
    min-height: 430px;
    object-fit: cover;
}

.signos-result {
    display: grid;
    grid-template-columns: 132px minmax(0, 1fr);
    gap: 1.25rem;
    align-items: center;
    margin-bottom: 1.25rem;
    padding: 1.25rem;
    background: #fff;
}

.signos-result img {
    width: 132px;
    height: 132px;
    object-fit: contain;
    border-radius: 50%;
    background: #f4ecff;
}

.signos-result span {
    display: block;
    color: #6d28d9;
    font-size: .78rem;
    font-weight: 950;
    text-transform: uppercase;
}

.signos-result h2,
.signos-section-heading h2,
.signos-tool-copy h2,
.signos-link-band h2 {
    color: #120a33;
    font-family: Georgia, "Times New Roman", serif;
}

.signos-result h2 {
    margin-bottom: .35rem;
}

.signos-result p {
    max-width: 760px;
    margin-bottom: .75rem;
    color: #615b78;
}

.signos-result-actions a {
    color: #fff;
    background: #6d28d9;
}

.signos-result-actions a + a {
    color: #3a147c;
    background: #f4ecff;
}

.signos-section {
    margin-bottom: 1.25rem;
    padding: 1.35rem;
    background: #fff;
}

.signos-section-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, .72fr);
    gap: 1rem;
    align-items: end;
    margin-bottom: 1rem;
}

.signos-section-heading h2 {
    margin-bottom: 0;
    font-size: 2rem;
}

.signos-section-heading p {
    margin: 0;
    color: #615b78;
}

.signos-date-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .85rem;
}

.signos-date-card {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr);
    gap: .35rem .75rem;
    align-items: center;
    min-height: 108px;
    padding: .95rem;
    border: 1px solid #ece5f6;
    border-radius: 8px;
    background: #fbf8ff;
    color: #120a33;
}

.signos-date-card:hover,
.signos-profile-card:hover,
.signos-guide-grid a:hover {
    color: #120a33;
    transform: translateY(-2px);
    box-shadow: 0 14px 32px rgba(24, 10, 66, .12);
}

.signos-symbol {
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    grid-row: span 3;
    border-radius: 50%;
    background: #6d28d9;
    color: #fff;
    font-size: 1.55rem;
    line-height: 1;
}

.signos-date-card strong,
.signos-date-card small,
.signos-date-card em {
    display: block;
}

.signos-date-card strong {
    font-size: 1.05rem;
    font-weight: 950;
}

.signos-date-card small {
    color: #615b78;
    font-size: .84rem;
}

.signos-date-card em {
    width: fit-content;
    padding: .18rem .5rem;
    border-radius: 999px;
    background: #fff;
    color: #5b21b6;
    font-size: .72rem;
    font-style: normal;
    font-weight: 900;
}

.signos-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.signos-profile-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid #ece5f6;
    border-radius: 8px;
    background: #fff;
    transition: .2s ease;
}

.signos-profile-card a {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    height: 100%;
    color: #120a33;
}

.signos-profile-card img {
    width: 112px;
    height: 100%;
    min-height: 230px;
    object-fit: cover;
    background: #f4ecff;
}

.signos-profile-body {
    display: grid;
    gap: .75rem;
    padding: 1rem;
}

.signos-profile-top {
    display: flex;
    gap: .75rem;
    align-items: center;
}

.signos-profile-top .signos-symbol {
    width: 40px;
    height: 40px;
    flex: 0 0 auto;
    font-size: 1.25rem;
}

.signos-profile-top strong,
.signos-profile-top small,
.signos-profile-text,
.signos-profile-link {
    display: block;
}

.signos-profile-top strong {
    font-size: 1.1rem;
    font-weight: 950;
}

.signos-profile-top small,
.signos-profile-text {
    color: #615b78;
    font-size: .88rem;
    line-height: 1.42;
}

.signos-profile-tags {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
}

.signos-profile-tags em {
    padding: .25rem .5rem;
    border-radius: 999px;
    background: #f4ecff;
    color: #4b3a78;
    font-size: .72rem;
    font-style: normal;
    font-weight: 900;
}

.signos-profile-link {
    margin-top: auto;
    color: #5b21b6;
    font-size: .78rem;
    font-weight: 950;
    text-transform: uppercase;
}

.signos-tool-section {
    display: grid;
    grid-template-columns: minmax(0, .82fr) minmax(360px, 1fr);
    gap: 1.25rem;
    margin-bottom: 1.25rem;
    padding: 1.35rem;
    background: radial-gradient(circle at 10% 0, rgba(246, 214, 107, .17), transparent 26%), linear-gradient(135deg, #fff, #fbf8ff);
}

.signos-tool-copy p,
.signos-tool-copy li {
    color: #615b78;
}

.signos-tool-copy ul {
    padding-left: 1.15rem;
}

.signos-form {
    display: grid;
    gap: 1rem;
    padding: 1rem;
    border: 1px solid #ece5f6;
    border-radius: 8px;
    background: #fff;
}

.signos-form label,
.signos-radio-group legend {
    color: #120a33;
    font-size: .82rem;
    font-weight: 900;
}

.signos-form-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
}

.signos-form-row.is-date {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.signos-form .form-control {
    margin-top: .35rem;
}

.signos-radio-group {
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
    margin: 0;
    padding: .8rem;
    border: 1px solid #eee8f7;
    border-radius: 8px;
}

.signos-radio-group legend {
    padding: 0 .25rem;
}

.signos-radio-group label {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}

.signos-link-band {
    display: grid;
    grid-template-columns: minmax(240px, .45fr) minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
    background: radial-gradient(circle at 100% 0, rgba(246, 214, 107, .25), transparent 24%), linear-gradient(135deg, #40108f, #681fd0 58%, #33106c);
    color: #fff;
}

.signos-link-band h2 {
    margin-bottom: 0;
    color: #fff;
}

.signos-guide-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
}

.signos-guide-grid a {
    display: grid;
    gap: .2rem;
    min-height: 94px;
    padding: .9rem;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 8px;
    background: rgba(255,255,255,.1);
    color: #fff;
}

.signos-guide-grid strong,
.signos-guide-grid span {
    display: block;
}

.signos-guide-grid strong {
    color: #fff;
    font-weight: 950;
}

.signos-guide-grid span {
    color: rgba(255,255,255,.78);
    font-size: .82rem;
}

.signos-faq-list {
    display: grid;
    gap: .75rem;
}

.signos-faq-list details {
    border: 1px solid #ece5f6;
    border-radius: 8px;
    background: #fbf8ff;
}

.signos-faq-list summary {
    cursor: pointer;
    padding: 1rem;
    color: #120a33;
    font-weight: 950;
}

.signos-faq-list p {
    margin: 0;
    padding: 0 1rem 1rem;
    color: #615b78;
}

.signos-quiz {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
}

.signos-quiz-option {
    display: flex;
    align-items: center;
    gap: .55rem;
    min-height: 54px;
    padding: .75rem;
    border: 1px solid #ece5f6;
    border-radius: 8px;
    background: #fbf8ff;
    color: #120a33;
    font-weight: 850;
}

.signos-quiz-option input {
    flex: 0 0 auto;
}

.signos-quiz-response {
    grid-column: 1 / -1;
    padding: 1rem;
    border-radius: 8px;
    background: #120a33;
    color: #fff;
}

.signos-quiz-response.hidden,
.signos-quiz-response[hidden] {
    display: none;
}

.signos-quiz-response strong,
.signos-quiz-response p {
    display: block;
}

.signos-quiz-response p {
    margin: .35rem 0 0;
    color: rgba(255,255,255,.82);
}

@media (max-width: 1080px) {
    .signos-hero,
    .signos-tool-section,
    .signos-link-band {
        grid-template-columns: 1fr;
    }

    .signos-date-grid,
    .signos-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .signos-hero-copy,
    .signos-hero-media,
    .signos-hero-media img {
        min-height: 420px;
    }

    .signos-section-heading {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .signos-result {
        grid-template-columns: 86px minmax(0, 1fr);
    }

    .signos-result img {
        width: 86px;
        height: 86px;
    }

    .signos-profile-card a {
        grid-template-columns: 92px minmax(0, 1fr);
    }

    .signos-profile-card img {
        width: 92px;
    }

    .signos-guide-grid,
    .signos-quiz {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575px) {
    .signos-hero-copy,
    .signos-section,
    .signos-tool-section {
        padding: 1rem;
    }

    .signos-hero {
        gap: .75rem;
    }

    .signos-hero-media {
        display: none;
    }

    .signos-date-grid,
    .signos-card-grid,
    .signos-form-row,
    .signos-form-row.is-date {
        grid-template-columns: 1fr;
    }

    .signos-result {
        grid-template-columns: 1fr;
    }

    .signos-profile-card a {
        grid-template-columns: 1fr;
    }

    .signos-profile-card img {
        width: 100%;
        height: 210px;
        min-height: 0;
        object-fit: contain;
    }
}

/* =========================
   20. Home editorial
   ========================= */
.guru-home {
    background:
        linear-gradient(180deg, #fbfaff 0, #fff 26rem),
        #fff;
    color: #120a33;
}

.home-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 305px;
    gap: 1rem;
    padding-top: 1.75rem;
    padding-bottom: 1.5rem;
}

.home-hero-main,
.home-quick-links,
.home-article-card,
.home-topic,
.home-newsletter {
    border: 1px solid rgba(18, 10, 51, .08);
    box-shadow: 0 18px 45px rgba(24, 10, 66, .10);
}

.home-hero-main {
    min-height: 450px;
    position: relative;
    overflow: hidden;
    border-radius: 8px;
    background: #140338;
}

.home-hero-main img {
    width: 100%;
    height: 100%;
    min-height: 450px;
    object-fit: cover;
}

.home-hero-main::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(10, 3, 35, .94) 0%, rgba(43, 14, 85, .72) 44%, rgba(43, 14, 85, .24) 100%),
        radial-gradient(circle at 72% 42%, rgba(246, 214, 107, .26), transparent 34%);
}

.home-hero-overlay {
    position: absolute;
    inset: auto auto 3rem 2.75rem;
    z-index: 1;
    max-width: 620px;
    color: #fff;
}

.home-pill,
.home-tag {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    border-radius: 999px;
    text-transform: uppercase;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: 0;
}

.home-pill {
    padding: .5rem .85rem;
    margin-bottom: 1.15rem;
    background: rgba(123, 53, 216, .88);
    color: #fff;
}

.home-hero h1 {
    max-width: 680px;
    margin-bottom: 1rem;
    color: #fff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 3.15rem;
    line-height: 1.05;
}

.home-hero p {
    max-width: 500px;
    color: rgba(255,255,255,.9);
    font-size: 1.15rem;
}

.home-cta,
.home-newsletter button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    min-height: 48px;
    padding: .85rem 1.35rem;
    border: 0;
    border-radius: 8px;
    background: linear-gradient(180deg, #ffe88a, #e7ba45);
    color: #160b2f;
    font-size: .85rem;
    font-weight: 900;
    text-transform: uppercase;
    box-shadow: 0 10px 25px rgba(246, 214, 107, .28);
}

.home-cta:hover,
.home-newsletter button:hover {
    color: #160b2f;
    transform: translateY(-1px);
}

.home-quick-links {
    display: grid;
    align-content: stretch;
    overflow: hidden;
    border-radius: 8px;
    background: #fff;
}

.home-quick-link {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: .9rem;
    align-items: center;
    padding: 1.05rem 1.15rem;
    color: #140b35;
    border-bottom: 1px solid #e9e5f1;
}

.home-quick-link:last-child {
    border-bottom: 0;
}

.home-quick-link:hover {
    background: #fbf8ff;
    color: #140b35;
}

.home-quick-icon {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    font-size: 1.35rem;
    font-weight: 900;
}

.home-quick-icon.purple { background: #6d28d9; }
.home-quick-icon.pink { background: #ec4899; }
.home-quick-icon.orange { background: #fb923c; }
.home-quick-icon.blue { background: #6366f1; }
.home-quick-icon.green { background: #51aa62; }

.home-quick-link strong,
.home-quick-link small {
    display: block;
}

.home-quick-link strong {
    margin-bottom: .15rem;
    font-size: .98rem;
    font-weight: 900;
}

.home-quick-link small {
    color: #615b78;
    font-size: .82rem;
    line-height: 1.35;
}

.home-section {
    padding-top: 1.4rem;
    padding-bottom: 1.4rem;
}

.home-section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.home-section-heading h2 {
    margin-bottom: .2rem;
    color: #120a33;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.85rem;
}

.home-section-heading p {
    margin: 0;
    color: #615b78;
}

.home-section-heading > a {
    flex-shrink: 0;
    color: #3a147c;
    font-size: .85rem;
    font-weight: 900;
}

.home-signs {
    display: grid;
    grid-template-columns: repeat(12, minmax(88px, 1fr));
    gap: .8rem;
    align-items: start;
}

.home-sign {
    display: grid;
    justify-items: center;
    align-content: start;
    gap: .45rem;
    min-width: 0;
    color: #120a33;
    text-align: center;
}

.home-sign span {
    width: 88px;
    height: 88px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border-radius: 50%;
    background: #f5ebff;
    box-shadow: 0 8px 18px rgba(66, 22, 121, .12);
}

.home-sign img {
    width: 86px;
    height: 86px;
    object-fit: contain;
}

.home-sign strong {
    font-size: .84rem;
    font-weight: 900;
}

.home-sign:hover {
    color: #6d28d9;
    transform: translateY(-2px);
}

.home-editorial-band {
    margin-top: 1rem;
    background: linear-gradient(180deg, #fff, #faf8ff);
    border-top: 1px solid #eee8f7;
    border-bottom: 1px solid #eee8f7;
}

.home-editorial-grid {
    display: grid;
    grid-template-columns: 1.35fr 1fr 1fr;
    gap: 1rem;
}

.home-article-card {
    min-height: 240px;
    overflow: hidden;
    border-radius: 8px;
    background: #fff;
}

.home-article-card a {
    display: grid;
    min-height: 100%;
    position: relative;
    color: #120a33;
}

.home-article-card img {
    width: 100%;
    height: 100%;
    min-height: 240px;
    object-fit: cover;
}

.home-article-card:not(.is-featured) a {
    grid-template-columns: 1fr;
}

.home-article-card:not(.is-featured) img {
    position: absolute;
    inset: 0;
    opacity: .82;
}

.home-article-card:not(.is-featured) a::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(255,255,255,.88), rgba(255,255,255,.45) 48%, rgba(255,255,255,.18));
}

.home-article-card.is-featured {
    grid-row: span 2;
    min-height: 500px;
}

.home-article-card.is-featured img {
    position: absolute;
    inset: 0;
}

.home-article-card.is-featured a::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(8, 2, 31, .12), rgba(8, 2, 31, .92));
}

.home-card-content {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    min-height: 240px;
    padding: 1.25rem;
}

.home-article-card.is-featured .home-card-content {
    min-height: 500px;
    color: #fff;
}

.home-tag {
    padding: .35rem .6rem;
    margin-bottom: .65rem;
    background: #6d28d9;
    color: #fff;
}

.home-article-card strong {
    max-width: 90%;
    margin-bottom: .55rem;
    font-size: 1.22rem;
    line-height: 1.18;
    font-weight: 900;
}

.home-article-card.is-featured strong {
    color: #fff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2rem;
}

.home-article-card small {
    max-width: 88%;
    color: #342b55;
    font-size: .92rem;
    line-height: 1.45;
}

.home-article-card.is-featured small {
    color: rgba(255,255,255,.9);
}

.home-article-card em {
    margin-top: 1rem;
    color: inherit;
    font-size: .82rem;
    font-style: normal;
    font-weight: 900;
    text-transform: uppercase;
}

.home-topic-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: .9rem;
}

.home-topic {
    display: grid;
    justify-items: center;
    gap: .45rem;
    min-height: 170px;
    padding: 1.25rem .85rem;
    border-radius: 8px;
    background: #fff;
    color: #120a33;
    text-align: center;
}

.home-topic span {
    width: 64px;
    height: 64px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #f0e5ff;
    color: #6d28d9;
    font-size: 2rem;
}

.home-topic strong {
    font-weight: 900;
}

.home-topic small {
    color: #615b78;
    line-height: 1.35;
}

.home-topic:hover {
    color: #6d28d9;
    transform: translateY(-2px);
}

.home-newsletter {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, .9fr);
    gap: 1.5rem;
    align-items: center;
    margin-top: 1.2rem;
    margin-bottom: 2rem;
    padding: 1.6rem 2rem;
    border-radius: 8px;
    background:
        radial-gradient(circle at 95% 50%, rgba(246, 214, 107, .3), transparent 28%),
        linear-gradient(135deg, #40108f, #681fd0 58%, #33106c);
    color: #fff;
}

.home-newsletter strong,
.home-newsletter span {
    display: block;
}

.home-newsletter strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.55rem;
    line-height: 1.15;
}

.home-newsletter span {
    color: rgba(255,255,255,.86);
}

.home-newsletter form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .75rem;
}

.home-newsletter input {
    min-height: 48px;
    min-width: 0;
    padding: 0 1rem;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 8px;
    background: rgba(255,255,255,.1);
    color: #fff;
}

.home-newsletter input::placeholder {
    color: rgba(255,255,255,.72);
}

@media (max-width: 1100px) {
    .home-hero {
        grid-template-columns: 1fr;
    }

    .home-quick-links {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .home-quick-link:nth-child(4) {
        border-bottom: 0;
    }

    .home-signs {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }

    .home-topic-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .home-hero-main,
    .home-hero-main img {
        min-height: 520px;
    }

    .home-hero-overlay {
        inset: auto 1.25rem 1.5rem 1.25rem;
    }

    .home-hero h1 {
        font-size: 2.35rem;
    }

    .home-section-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .home-editorial-grid {
        grid-template-columns: 1fr;
    }

    .home-article-card.is-featured,
    .home-article-card.is-featured .home-card-content {
        min-height: 380px;
    }

    .home-newsletter {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575px) {
    .home-hero {
        padding-top: .9rem;
    }

    .home-hero-main,
    .home-hero-main img {
        min-height: 500px;
    }

    .home-hero h1 {
        font-size: 2rem;
    }

    .home-hero p {
        font-size: 1rem;
    }

    .home-quick-links,
    .home-signs,
    .home-topic-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .home-quick-link {
        grid-template-columns: 1fr;
        justify-items: center;
        text-align: center;
    }

    .home-sign span {
        width: 78px;
        height: 78px;
    }

    .home-sign img {
        width: 76px;
        height: 76px;
    }

    .home-newsletter {
        padding: 1.25rem;
    }

    .home-newsletter form {
        grid-template-columns: 1fr;
    }
}

/* =========================
   20. Ofertas e rodapÃ©
   ========================= */
.commerce-section {
    padding: 2.5rem 0;
    background:
        radial-gradient(circle at 12% 0, rgba(246, 214, 107, .18), transparent 28%),
        linear-gradient(180deg, #fff 0, #fbf8ff 100%);
    border-top: 1px solid #eee8f7;
}

.commerce-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1.25rem;
    align-items: end;
    margin-bottom: 1.25rem;
}

.commerce-eyebrow {
    display: inline-flex;
    width: fit-content;
    margin-bottom: .45rem;
    padding: .35rem .65rem;
    border-radius: 999px;
    background: #f0e5ff;
    color: #5b21b6;
    font-size: .75rem;
    font-weight: 900;
    text-transform: uppercase;
}

.commerce-header h2 {
    margin-bottom: .35rem;
    color: #120a33;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2rem;
}

.commerce-header p {
    max-width: 720px;
    margin: 0;
    color: #615b78;
}

.commerce-trust {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .5rem;
}

.commerce-trust span {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: .35rem .65rem;
    border: 1px solid #e7def4;
    border-radius: 999px;
    background: #fff;
    color: #3a3157;
    font-size: .78rem;
    font-weight: 800;
}

.commerce-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.commerce-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid #e8e1f2;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(24, 10, 66, .08);
    transition: .2s ease;
}

.commerce-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 42px rgba(24, 10, 66, .14);
}

.commerce-card-link {
    display: grid;
    height: 100%;
    color: #120a33;
}

.commerce-card-link:hover {
    color: #120a33;
}

.commerce-card-media {
    position: relative;
    display: block;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: #f7f4fb;
}

.commerce-card-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: .25s ease;
}

.commerce-card:hover .commerce-card-media img {
    transform: scale(1.04);
}

.commerce-card-badge {
    position: absolute;
    top: .7rem;
    left: .7rem;
    z-index: 1;
    display: inline-flex;
    padding: .35rem .55rem;
    border-radius: 999px;
    background: #ef4444;
    color: #fff;
    font-size: .72rem;
    font-weight: 900;
    text-transform: uppercase;
    box-shadow: 0 8px 18px rgba(239, 68, 68, .25);
}

.commerce-card-badge.is-soft {
    background: #6d28d9;
    box-shadow: 0 8px 18px rgba(109, 40, 217, .22);
}

.commerce-card-body {
    display: grid;
    gap: .65rem;
    padding: .9rem;
}

.commerce-card-title {
    display: -webkit-box;
    min-height: 2.8rem;
    overflow: hidden;
    color: #120a33;
    font-size: .95rem;
    line-height: 1.35;
    font-weight: 850;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.commerce-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    min-height: 24px;
}

.commerce-card-meta span {
    display: inline-flex;
    align-items: center;
    padding: .2rem .45rem;
    border-radius: 999px;
    background: #f6f1ff;
    color: #4b4265;
    font-size: .72rem;
    font-weight: 800;
}

.commerce-card-price small,
.commerce-card-price em,
.commerce-card-trust,
.commerce-card-button {
    display: block;
}

.commerce-card-price small {
    color: #766f8f;
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
}

.commerce-card-price em {
    color: #d92d20;
    font-size: 1.35rem;
    font-style: normal;
    font-weight: 950;
    line-height: 1.1;
}

.commerce-card-trust {
    color: #5d566f;
    font-size: .78rem;
}

.commerce-card-button {
    margin-top: .15rem;
    padding: .75rem .85rem;
    border-radius: 8px;
    background: linear-gradient(180deg, #ff7a1a, #ee4d2d);
    color: #fff;
    text-align: center;
    font-size: .84rem;
    font-weight: 950;
    text-transform: uppercase;
    box-shadow: 0 10px 22px rgba(238, 77, 45, .22);
}

.commerce-loader {
    align-items: center;
    justify-content: center;
    gap: .75rem;
    padding: 1.25rem;
    color: #615b78;
    font-weight: 800;
}

.commerce-loader p {
    margin: 0;
}

.spinner {
    width: 28px;
    height: 28px;
    border: 3px solid #e8def5;
    border-top-color: #6d28d9;
    border-radius: 50%;
    animation: spin .8s linear infinite;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

.commerce-end,
.commerce-error {
    margin-top: 1rem;
    padding: 1rem;
    border-radius: 8px;
    background: #fff;
    color: #615b78;
    text-align: center;
    font-weight: 800;
}

.commerce-error {
    grid-column: 1 / -1;
    border: 1px solid #fed7aa;
    color: #9a3412;
}

.commerce-sentinel {
    height: 20px;
    margin-top: 1rem;
}

.site-footer {
    padding: 2.25rem 0 1.25rem;
    background:
        radial-gradient(circle at 12% 10%, rgba(109, 40, 217, .36), transparent 32%),
        linear-gradient(180deg, #100036, #070022);
    color: rgba(255,255,255,.82);
}

.footer-top {
    display: grid;
    grid-template-columns: minmax(260px, 1.45fr) repeat(3, minmax(0, .8fr));
    gap: 2rem;
}

.footer-brand img {
    width: 180px;
    margin-bottom: 1rem;
}

.footer-brand p {
    max-width: 430px;
    color: rgba(255,255,255,.74);
}

.footer-social {
    display: flex;
    gap: .6rem;
}

.footer-social a {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: rgba(255,255,255,.1);
    color: #fff;
}

.footer-social .icon {
    width: 20px;
    height: 20px;
    fill: currentColor;
}

.footer-section {
    display: flex;
    flex-direction: column;
    gap: .45rem;
}

.footer-section h3 {
    margin-bottom: .45rem;
    color: #fff;
    font-size: .95rem;
}

.footer-section a {
    color: rgba(255,255,255,.72);
    font-size: .9rem;
}

.footer-section a:hover {
    color: var(--guru-gold);
}

.footer-bottom {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 2rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(255,255,255,.1);
}

.footer-bottom p {
    margin: 0;
    color: rgba(255,255,255,.62);
    font-size: .82rem;
}

.cookie-banner {
    position: fixed;
    right: 1rem;
    bottom: 1rem;
    z-index: 9999;
    display: flex;
    align-items: center;
    gap: 1rem;
    width: min(620px, calc(100% - 2rem));
    padding: 1rem;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 8px;
    background: #120a33;
    color: #fff;
    box-shadow: 0 18px 45px rgba(0,0,0,.22);
}

.cookie-banner.hidden {
    display: none;
}

.cookie-text p {
    margin: 0;
    color: rgba(255,255,255,.82);
    font-size: .9rem;
}

.cookie-text a {
    color: #f6d66b;
    font-weight: 800;
}

.cookie-banner .btn {
    flex-shrink: 0;
    min-height: 40px;
    padding: .55rem .9rem;
    border: 0;
    border-radius: 8px;
    background: #ec4899;
    color: #fff;
    font-size: .82rem;
    font-weight: 900;
    text-transform: uppercase;
}

@media (max-width: 1024px) {
    .commerce-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .footer-top {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .commerce-header {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .commerce-trust {
        justify-content: flex-start;
    }

    .commerce-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .75rem;
    }

    .commerce-card-body {
        padding: .75rem;
    }

    .commerce-card-title {
        font-size: .88rem;
    }

    .commerce-card-price em {
        font-size: 1.15rem;
    }

    .footer-top {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .footer-bottom {
        flex-direction: column;
    }

    .cookie-banner {
        left: .75rem;
        right: .75rem;
        bottom: .75rem;
        width: auto;
        flex-direction: column;
        align-items: stretch;
    }
}

@media (max-width: 420px) {
    .commerce-grid {
        grid-template-columns: 1fr;
    }
}

.asc-page {
    display: grid;
    gap: 1.5rem;
}

.asc-hero,
.asc-result-hero,
.asc-content-band,
.asc-tool,
.asc-reading,
.asc-cta,
.asc-message {
    width: min(1120px, calc(100% - 2rem));
    margin: 0 auto;
}

.asc-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.02fr) minmax(320px, .78fr);
    gap: 2rem;
    align-items: center;
    padding: 2rem 0 .5rem;
}

.asc-hero-copy h1,
.asc-result-hero h1 {
    margin: .35rem 0 .75rem;
    color: #191326;
    font-size: clamp(2rem, 4vw, 4rem);
    line-height: 1;
}

.asc-hero-copy p,
.asc-result-hero p,
.asc-section-head p,
.asc-content-band p,
.asc-tool-head p,
.asc-cta p,
.asc-result-summary p {
    color: #5c536d;
    line-height: 1.72;
}

.asc-kicker {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: .35rem .65rem;
    border: 1px solid rgba(34, 197, 94, .22);
    border-radius: 999px;
    background: #ecfdf5;
    color: #047857;
    font-size: .76rem;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
}

.asc-hero-actions,
.asc-cta {
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
    align-items: center;
}

.asc-primary-link,
.asc-secondary-link,
.asc-submit,
.asc-note a,
.asc-sign-card a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: .75rem 1rem;
    border-radius: 8px;
    font-weight: 900;
    text-decoration: none;
}

.asc-primary-link,
.asc-submit {
    border: 0;
    background: #ec4899;
    color: #fff;
    box-shadow: 0 14px 30px rgba(236, 72, 153, .22);
}

.asc-secondary-link {
    border: 1px solid #e5e7eb;
    background: #fff;
    color: #312848;
}

.asc-hero-media {
    margin: 0;
}

.asc-hero-media img,
.asc-chart-card img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 20px 50px rgba(31, 19, 56, .16);
}

.asc-tool,
.asc-content-band,
.asc-reading,
.asc-message {
    padding: 1.25rem;
    border: 1px solid #ece7f5;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 14px 35px rgba(31, 19, 56, .07);
}

.asc-tool-head {
    display: grid;
    gap: .35rem;
    margin-bottom: 1rem;
}

.asc-tool-head h2,
.asc-section-head h2,
.asc-content-band h2,
.asc-reading h2,
.asc-cta h2,
.asc-message h2 {
    margin: .25rem 0 0;
    color: #1f1831;
    font-size: clamp(1.45rem, 2.6vw, 2.2rem);
}

.asc-form {
    display: grid;
    gap: 1rem;
}

.asc-fieldset {
    display: grid;
    gap: .85rem;
    padding: 1rem;
    border-radius: 8px;
    background: #faf9fd;
}

.asc-fieldset-title {
    display: grid;
    gap: .15rem;
}

.asc-fieldset-title strong,
.asc-field span {
    color: #241b36;
    font-weight: 900;
}

.asc-fieldset-title span {
    color: #6f6681;
    font-size: .9rem;
}

.asc-form-grid {
    display: grid;
    gap: .8rem;
}

.asc-form-grid-two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.asc-form-grid-three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.asc-field {
    display: grid;
    gap: .35rem;
    margin: 0;
}

.asc-field .form-control {
    width: 100%;
    min-height: 46px;
    border: 1px solid #ddd6ea;
    border-radius: 8px;
    background: #fff;
    color: #21172f;
}

.asc-submit {
    width: 100%;
    cursor: pointer;
    gap: .45rem;
}

.asc-section-head {
    display: grid;
    gap: .35rem;
    margin-bottom: 1rem;
}

.asc-feature-grid,
.asc-reading-grid,
.asc-planet-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .85rem;
}

.asc-feature-grid article,
.asc-reading-grid article,
.asc-planet-grid article {
    padding: 1rem;
    border: 1px solid #eee9f6;
    border-radius: 8px;
    background: #fbfaff;
}

.asc-feature-grid strong,
.asc-reading-grid strong,
.asc-planet-grid strong {
    display: block;
    color: #241b36;
    font-size: 1rem;
}

.asc-feature-grid p,
.asc-reading-grid p {
    margin: .45rem 0 0;
}

.asc-split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, .42fr);
    gap: 1.25rem;
    align-items: center;
}

.asc-note {
    padding: 1rem;
    border-radius: 8px;
    background: #fff7ed;
    color: #4f2b10;
}

.asc-note p {
    color: #654321;
}

.asc-note a,
.asc-sign-card a {
    min-height: auto;
    padding: 0;
    color: #be185d;
}

.asc-sign-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .85rem;
}

.asc-sign-card {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: .85rem;
    align-items: center;
    padding: .85rem;
    border: 1px solid #eee9f6;
    border-radius: 8px;
    background: #fff;
}

.asc-sign-card img {
    width: 72px;
    height: 72px;
    border-radius: 8px;
    object-fit: cover;
}

.asc-sign-card h3 {
    margin: 0 0 .2rem;
    color: #1f1831;
    font-size: 1.05rem;
}

.asc-sign-card p {
    margin: 0 0 .35rem;
    font-size: .92rem;
}

.asc-cta {
    justify-content: space-between;
    padding: 1.25rem;
    border-radius: 8px;
    background: linear-gradient(135deg, #191326, #4c1d95);
    color: #fff;
}

.asc-cta p,
.asc-cta h2 {
    color: #fff;
}

.asc-cta > div {
    max-width: 720px;
}

.asc-result-page {
    padding-top: 1rem;
}

.asc-result-hero {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: end;
}

.asc-result-local {
    padding: .6rem .8rem;
    border-radius: 8px;
    background: #eef2ff;
    color: #3730a3;
    font-weight: 900;
}

.asc-result-grid {
    display: grid;
    grid-template-columns: minmax(280px, .88fr) minmax(0, 1fr);
    gap: 1rem;
    width: min(1120px, calc(100% - 2rem));
    margin: 0 auto;
}

.asc-chart-card,
.asc-result-summary {
    padding: 1rem;
    border: 1px solid #ece7f5;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 14px 35px rgba(31, 19, 56, .07);
}

.asc-result-summary {
    display: grid;
    align-content: center;
    gap: .8rem;
}

.asc-result-pill {
    display: grid;
    gap: .15rem;
    padding: .9rem;
    border-radius: 8px;
    background: #f8fafc;
}

.asc-result-pill span {
    color: #6b647a;
    font-size: .82rem;
    font-weight: 900;
    text-transform: uppercase;
}

.asc-result-pill strong {
    color: #241b36;
    font-size: 1.8rem;
}

.asc-result-pill-main {
    background: #fdf2f8;
}

.asc-result-pill-main strong {
    color: #be185d;
}

.asc-planet-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.asc-planet-grid article {
    display: grid;
    gap: .2rem;
}

.asc-planet-grid span {
    color: #6f6681;
    font-size: .82rem;
    font-weight: 900;
    text-transform: uppercase;
}

.asc-planet-grid small {
    color: #6f6681;
}

.asc-message-error {
    border-color: #fed7aa;
    background: #fff7ed;
}

@media (max-width: 900px) {
    .asc-hero,
    .asc-result-grid,
    .asc-split {
        grid-template-columns: 1fr;
    }

    .asc-feature-grid,
    .asc-reading-grid,
    .asc-planet-grid,
    .asc-sign-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 620px) {
    .asc-hero,
    .asc-tool,
    .asc-content-band,
    .asc-reading,
    .asc-cta,
    .asc-result-hero,
    .asc-result-grid,
    .asc-message {
        width: min(100% - 1rem, 1120px);
    }

    .asc-form-grid-two,
    .asc-form-grid-three,
    .asc-feature-grid,
    .asc-reading-grid,
    .asc-planet-grid,
    .asc-sign-grid {
        grid-template-columns: 1fr;
    }

    .asc-result-hero,
    .asc-cta {
        align-items: flex-start;
        flex-direction: column;
    }
}

.og-page {
    display: grid;
    gap: 1.25rem;
    width: min(1120px, calc(100% - 2rem));
    margin: 0 auto 2rem;
    color: #241b36;
}

.og-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(280px, .72fr);
    gap: 1.25rem;
    align-items: center;
    padding: clamp(1rem, 3vw, 2rem);
    border: 1px solid #ece7f5;
    border-radius: 8px;
    background: linear-gradient(135deg, #fff, #f7fbff 58%, #fff7ed);
    box-shadow: 0 18px 45px rgba(31, 19, 56, .08);
}

.og-hero h1,
.og-section h2,
.og-card h3 {
    color: #20182f;
    letter-spacing: 0;
}

.og-hero h1 {
    margin: .35rem 0 .7rem;
    font-size: clamp(2rem, 4.5vw, 3.8rem);
    line-height: 1.03;
}

.og-hero p,
.og-section p,
.og-card p,
.og-note p {
    color: #5f5870;
    line-height: 1.75;
}

.og-kicker {
    display: inline-flex;
    width: fit-content;
    padding: .35rem .6rem;
    border-radius: 999px;
    background: #eefbf7;
    color: #0f766e;
    font-size: .78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.og-hero-media {
    overflow: hidden;
    border-radius: 8px;
    background: #f8fafc;
}

.og-hero-media img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.og-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    margin-top: 1rem;
}

.og-button,
.og-button-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: .72rem 1rem;
    border-radius: 8px;
    font-weight: 900;
    text-decoration: none;
}

.og-button {
    background: #6d28d9;
    color: #fff;
}

.og-button-secondary {
    border: 1px solid #d8cdec;
    background: #fff;
    color: #4c1d95;
}

.og-section,
.og-card,
.og-note,
.og-richtext {
    border: 1px solid #ece7f5;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 12px 32px rgba(31, 19, 56, .06);
}

.og-section,
.og-richtext {
    padding: clamp(1rem, 2.6vw, 1.6rem);
}

.og-section > h2 {
    margin-top: 0;
    font-size: clamp(1.5rem, 2.8vw, 2.1rem);
}

.og-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .85rem;
}

.og-card-grid-two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.og-card {
    display: grid;
    gap: .45rem;
    padding: 1rem;
}

.og-card h3 {
    margin: 0;
    font-size: 1.08rem;
}

.og-card p,
.og-card ul,
.og-card ol {
    margin: 0;
}

.og-card a {
    color: #5b21b6;
    font-weight: 900;
}

.og-card-accent {
    border-color: #c7f9e8;
    background: #f2fffa;
}

.og-note {
    padding: 1rem;
    border-color: #fde68a;
    background: #fffbeb;
}

.og-list-check,
.og-list-clean {
    display: grid;
    gap: .5rem;
    margin: .75rem 0 0;
    padding: 0;
    list-style: none;
}

.og-list-check li,
.og-list-clean li {
    padding-left: 1.35rem;
    position: relative;
    color: #5f5870;
    line-height: 1.6;
}

.og-list-check li::before {
    content: "";
    position: absolute;
    top: .58rem;
    left: 0;
    width: .48rem;
    height: .48rem;
    border-radius: 50%;
    background: #14b8a6;
}

.og-pill-list {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    padding: 0;
    margin: .85rem 0 0;
    list-style: none;
}

.og-pill-list a,
.og-pill-list span {
    display: inline-flex;
    padding: .42rem .7rem;
    border: 1px solid #e6def3;
    border-radius: 999px;
    background: #fff;
    color: #4c1d95;
    font-weight: 900;
    text-decoration: none;
}

.og-table-wrap {
    overflow-x: auto;
    border: 1px solid #ece7f5;
    border-radius: 8px;
}

.og-table {
    width: 100%;
    min-width: 640px;
    border-collapse: collapse;
    background: #fff;
}

.og-table th,
.og-table td {
    padding: .85rem;
    border-bottom: 1px solid #f0ebf7;
    text-align: left;
    vertical-align: top;
}

.og-table th {
    background: #21162f;
    color: #fff;
}

.og-table tr:last-child td {
    border-bottom: 0;
}

.og-richtext h2,
.og-richtext h3 {
    color: #20182f;
}

.og-richtext p {
    line-height: 1.75;
}

.og-richtext a {
    color: #5b21b6;
    font-weight: 900;
}

.og-link-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .75rem;
}

.og-link-card {
    display: grid;
    gap: .25rem;
    min-height: 100%;
    padding: .9rem;
    border: 1px solid #ece7f5;
    border-radius: 8px;
    background: #fff;
    color: #241b36;
    text-decoration: none;
}

.og-link-card strong {
    color: #4c1d95;
}

.og-link-card span {
    color: #6f6681;
    font-size: .9rem;
}

.og-mini-nav {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.og-mini-nav a {
    padding: .45rem .7rem;
    border: 1px solid #e6def3;
    border-radius: 8px;
    background: #fff;
    color: #4c1d95;
    font-weight: 900;
    text-decoration: none;
}

.og-faq details {
    padding: .9rem 0;
    border-bottom: 1px solid #eee8f6;
}

.og-faq details:last-child {
    border-bottom: 0;
}

.og-faq summary {
    color: #241b36;
    cursor: pointer;
    font-weight: 900;
}

.meaning-page .og-hero,
.dream-page .og-hero {
    background: linear-gradient(135deg, #fff, #f8fbff 56%, #fff8ed);
}

.meaning-search-card,
.dream-search-card {
    display: grid;
    gap: .75rem;
    padding: 1rem;
    border: 1px solid #e5d9f5;
    border-radius: 8px;
    background: rgba(255, 255, 255, .92);
    box-shadow: 0 14px 34px rgba(31, 19, 56, .08);
}

.meaning-search-card h2,
.dream-search-card h2 {
    margin: 0;
    color: #20182f;
    font-size: clamp(1.25rem, 2.4vw, 1.75rem);
}

.meaning-search-form,
.dream-search-card {
    min-width: 0;
}

.meaning-search-form {
    display: grid;
    gap: .45rem;
}

.meaning-search-form label,
.dream-search-card label {
    color: #241b36;
    font-weight: 900;
}

.meaning-search-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .55rem;
    align-items: center;
}

.meaning-search-form input,
.dream-search-card input {
    width: 100%;
    min-height: 46px;
    padding: .75rem .85rem;
    border: 1px solid #d9d2e6;
    border-radius: 8px;
    background: #fff;
    color: #241b36;
    font: inherit;
}

.meaning-search-form input:focus,
.dream-search-card input:focus {
    outline: 3px solid rgba(20, 184, 166, .18);
    border-color: #14b8a6;
}

.meaning-search-form small,
.meaning-total-note {
    color: #6f6681;
    font-size: .92rem;
}

.meaning-quick-stats {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    margin-top: 1rem;
}

.meaning-quick-stats span {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    padding: .45rem .65rem;
    border: 1px solid #e7def4;
    border-radius: 999px;
    background: #fff;
    color: #5f5870;
}

.meaning-quick-stats strong {
    color: #20182f;
}

.meaning-definition-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
}

.meaning-name-summary {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr);
    gap: .85rem;
    align-items: start;
}

.meaning-summary-side {
    display: grid;
    gap: .85rem;
}

.meaning-summary-main {
    align-content: start;
}

.meaning-richtext {
    display: grid;
    gap: .8rem;
}

.meaning-richtext p,
.meaning-richtext ul,
.meaning-richtext ol {
    margin: 0;
    color: #4f4861;
    line-height: 1.75;
}

.meaning-richtext h3,
.meaning-richtext h4 {
    margin: .35rem 0 -.35rem;
    color: #20182f;
    font-size: 1.08rem;
}

.meaning-richtext strong,
.meaning-richtext b {
    color: #20182f;
}

.meaning-number-badge {
    display: inline-grid;
    place-items: center;
    width: 2.8rem;
    height: 2.8rem;
    border-radius: 50%;
    background: #20182f;
    color: #f9e7b0;
    font-size: 1.2rem;
    font-weight: 900;
}

.meaning-stat-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
    margin-top: 1rem;
}

.meaning-stat-card {
    display: grid;
    gap: .35rem;
    padding: .95rem;
    border: 1px solid #ece7f5;
    border-radius: 8px;
    background: #fbfdff;
}

.meaning-stat-card span {
    color: #6f6681;
    font-size: .9rem;
    font-weight: 800;
}

.meaning-stat-card strong {
    color: #20182f;
    font-size: clamp(1.35rem, 2.6vw, 2rem);
    line-height: 1;
}

.meaning-data-panel,
.dream-luck-note {
    display: grid;
    gap: .55rem;
    margin-top: 1rem;
    padding: 1rem;
    border: 1px solid #d6f5ec;
    border-radius: 8px;
    background: #f2fffa;
}

.meaning-data-panel h3,
.dream-luck-note h3 {
    margin: 0;
    color: #20182f;
}

.meaning-split-bar {
    display: flex;
    overflow: hidden;
    min-height: 34px;
    border-radius: 999px;
    background: #eef2ff;
}

.meaning-split-bar span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 72px;
    color: #fff;
    font-size: .85rem;
    font-weight: 900;
}

.meaning-split-bar span:first-child {
    background: #2563eb;
}

.meaning-split-bar span:last-child {
    background: #be185d;
}

.meaning-bar-list {
    display: grid;
    gap: .65rem;
}

.meaning-bar-row {
    display: grid;
    grid-template-columns: 72px minmax(140px, 1fr) auto;
    gap: .75rem;
    align-items: center;
    color: #5f5870;
}

.meaning-bar-row span,
.meaning-bar-row strong {
    color: #241b36;
    font-weight: 900;
}

.meaning-bar-row div {
    overflow: hidden;
    height: .72rem;
    border-radius: 999px;
    background: #f0ebf7;
}

.meaning-bar-row i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #14b8a6, #6d28d9);
}

.meaning-inline-grid,
.dream-letter-grid,
.meaning-popular-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .65rem;
}

.meaning-inline-grid a,
.dream-letter-grid a,
.meaning-popular-grid a,
.meaning-list-links a {
    display: grid;
    gap: .2rem;
    min-height: 100%;
    padding: .85rem;
    border: 1px solid #ece7f5;
    border-radius: 8px;
    background: #fff;
    color: #241b36;
    text-decoration: none;
}

.meaning-inline-grid a:hover,
.dream-letter-grid a:hover,
.meaning-popular-grid a:hover,
.meaning-list-links a:hover {
    border-color: #c7f9e8;
    background: #f2fffa;
}

.meaning-inline-grid strong,
.meaning-popular-grid strong,
.dream-letter-grid a {
    color: #4c1d95;
    font-weight: 900;
}

.meaning-inline-grid span,
.meaning-popular-grid span {
    color: #6f6681;
    font-size: .9rem;
}

.meaning-list-links {
    display: grid;
    gap: .45rem;
}

.meaning-cta-section {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
}

.meaning-share-section {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    border-color: #d6f5ec;
    background: linear-gradient(135deg, #f2fffa, #fff);
}

.meaning-share-section h2 {
    margin-bottom: .35rem;
}

.meaning-share-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
}

.meaning-share-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: .72rem 1rem;
    border-radius: 8px;
    color: #fff;
    font-weight: 900;
    text-decoration: none;
}

.meaning-share-button:hover,
.meaning-share-button:focus {
    color: #fff;
    transform: translateY(-1px);
}

.meaning-share-whatsapp {
    background: #128c7e;
}

.meaning-share-facebook {
    background: #1877f2;
}

.dream-suggestions {
    display: grid;
    gap: .35rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.dream-suggestions li {
    padding: .7rem .8rem;
    border: 1px solid #ece7f5;
    border-radius: 8px;
    background: #fff;
    color: #241b36;
    cursor: pointer;
    font-weight: 900;
}

.dream-suggestions li:hover {
    background: #f2fffa;
    border-color: #c7f9e8;
}

.dream-alphabet {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: .45rem;
    margin-top: 1rem;
}

.dream-letter-button {
    min-height: 42px;
    border: 1px solid #e6def3;
    border-radius: 8px;
    background: #fff;
    color: #4c1d95;
    cursor: pointer;
    font-weight: 900;
}

.dream-letter-button:hover,
.dream-letter-button:focus {
    border-color: #14b8a6;
    background: #eefbf7;
}

.dream-letter-button:disabled {
    border-color: #20182f;
    background: #20182f;
    color: #f9e7b0;
    cursor: not-allowed;
}

.dream-letter-panel {
    margin-top: 1rem;
}

.dream-letter-result {
    display: grid;
    gap: .85rem;
    padding: 1rem;
    border: 1px solid #ece7f5;
    border-radius: 8px;
    background: #fbfdff;
}

.dream-letter-result h2 {
    margin: 0;
    color: #20182f;
}

.dream-result-section {
    display: grid;
    gap: 1rem;
}

.tarot-hero {
    background: linear-gradient(135deg, #fffaf0, #f7fbff 52%, #f4f1ff);
}

.tarot-daily,
.tarot-oracle {
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(280px, 1.05fr);
    gap: 1rem;
    align-items: start;
}

.tarot-oracle {
    grid-template-areas: "copy stage";
}

.tarot-oracle > div:first-child {
    grid-area: copy;
}

.tarot-feature-card,
.tarot-result,
.tarot-card-back {
    border: 1px solid #eadfcb;
    border-radius: 8px;
    background: #fffdfa;
    box-shadow: 0 16px 36px rgba(55, 35, 20, .08);
}

.tarot-feature-card,
.tarot-result {
    display: grid;
    gap: .55rem;
    padding: 1.2rem;
    align-content: start;
}

.tarot-card-image,
.tarot-card-thumb {
    display: block;
    width: 100%;
    aspect-ratio: 2 / 3;
    border-radius: 8px;
    object-fit: cover;
    background: #20182f;
}

.tarot-card-image {
    max-width: 280px;
    margin: 0 auto .45rem;
    box-shadow: 0 18px 36px rgba(31, 24, 49, .18);
}

.tarot-card-thumb {
    max-width: 150px;
    margin: 0 auto .45rem;
    box-shadow: 0 10px 24px rgba(31, 24, 49, .12);
}

.tarot-result-image {
    display: grid;
    justify-items: center;
}

.tarot-card-image-result {
    max-width: 260px;
}

.tarot-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 50%;
    background: #1f1831;
    color: #f9e7b0;
    font-weight: 900;
}

.tarot-feature-card h3,
.tarot-result h3 {
    margin: 0;
    color: #20182f;
    font-size: clamp(1.4rem, 2.4vw, 2rem);
}

.tarot-card-back {
    grid-area: stage;
    display: grid;
    min-height: clamp(320px, 38vw, 430px);
    place-items: center;
    background:
        linear-gradient(145deg, rgba(249, 231, 176, .18), transparent 34%),
        linear-gradient(135deg, #24162f 0%, #12293a 100%);
    color: #f9e7b0;
    overflow: hidden;
    position: relative;
}

.tarot-card-back::before {
    content: "";
    position: absolute;
    inset: 18px;
    border: 1px solid rgba(249, 231, 176, .72);
    border-radius: 8px;
}

.tarot-card-back::after {
    content: "";
    position: absolute;
    inset: 36px;
    border: 1px solid rgba(249, 231, 176, .3);
    border-radius: 8px;
}

.tarot-card-back span {
    display: grid;
    place-items: center;
    width: min(58%, 210px);
    aspect-ratio: 3 / 4;
    border: 1px solid rgba(249, 231, 176, .65);
    border-radius: 8px;
    color: #f9e7b0;
    font-size: 2rem;
    font-weight: 900;
    text-transform: uppercase;
    z-index: 1;
    background:
        linear-gradient(145deg, rgba(255, 255, 255, .08), transparent 40%),
        rgba(4, 12, 24, .28);
}

.tarot-card-back-image {
    display: block;
    width: min(100%, 320px);
    aspect-ratio: 2 / 3;
    border-radius: 8px;
    object-fit: cover;
    z-index: 1;
    box-shadow: 0 18px 36px rgba(31, 24, 49, .18);
}

.tarot-card-back:has(.tarot-card-back-image) {
    background: transparent;
    box-shadow: none;
}

.tarot-card-back:has(.tarot-card-back-image)::before,
.tarot-card-back:has(.tarot-card-back-image)::after {
    display: none;
}

.num-name-hero {
    background: linear-gradient(135deg, #ffffff, #f2fbff 56%, #fff7ed);
}

.num-tool {
    display: grid;
    grid-template-columns: minmax(0, .78fr) minmax(320px, 1fr);
    gap: 1rem;
    align-items: start;
}

.num-form {
    display: grid;
    gap: .85rem;
    padding: 1rem;
    border: 1px solid #ece7f5;
    border-radius: 8px;
    background: #fbfdff;
}

.num-field {
    display: grid;
    gap: .35rem;
}

.num-field span {
    color: #241b36;
    font-weight: 900;
}

.num-field input,
.num-field select {
    width: 100%;
    min-height: 46px;
    padding: .75rem .85rem;
    border: 1px solid #d9d2e6;
    border-radius: 8px;
    background: #fff;
    color: #241b36;
    font: inherit;
}

.num-field input:focus,
.num-field select:focus {
    outline: 3px solid rgba(20, 184, 166, .18);
    border-color: #14b8a6;
}

.num-date-grid {
    display: grid;
    grid-template-columns: .7fr 1.2fr 1fr;
    gap: .65rem;
}

.num-submit {
    border: 0;
    cursor: pointer;
}

.num-result-header {
    margin-bottom: 1rem;
}

.num-result-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .85rem;
    margin-bottom: 1rem;
}

.num-main-number {
    border-color: #c7f9e8;
    background: #f2fffa;
}

.num-number-badge {
    display: inline-grid;
    place-items: center;
    width: 2.65rem;
    height: 2.65rem;
    border-radius: 50%;
    background: #20182f;
    color: #f9e7b0;
    font-size: 1.15rem;
    font-weight: 900;
}

.num-reading {
    display: grid;
    gap: .85rem;
}

.num-reading .og-richtext {
    box-shadow: none;
}

.num-offer-card {
    align-content: start;
}

.num-offer-card .og-button,
.num-offer-card .og-button-secondary {
    width: fit-content;
}

.num-values-grid {
    display: grid;
    grid-template-columns: repeat(9, minmax(0, 1fr));
    gap: .55rem;
    margin-top: 1rem;
}

.num-values-grid article {
    display: grid;
    gap: .25rem;
    place-items: center;
    min-height: 88px;
    padding: .65rem;
    border: 1px solid #ece7f5;
    border-radius: 8px;
    background: #fff;
    text-align: center;
}

.num-values-grid strong {
    display: grid;
    place-items: center;
    width: 2.2rem;
    height: 2.2rem;
    border-radius: 50%;
    background: #eefbf7;
    color: #0f766e;
}

.num-values-grid span {
    color: #5f5870;
    font-weight: 800;
}

.tarot-pick-button {
    margin-top: .9rem;
    border: 0;
    cursor: pointer;
}

.tarot-result[hidden] {
    display: none;
}

.tarot-result {
    grid-area: stage;
}

.tarot-reading-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
}

.tarot-reading-grid p {
    margin: 0;
    padding: .75rem;
    border-radius: 8px;
    background: #f8fafc;
}

.tarot-arcana-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
}

.tarot-arcana-card {
    align-content: start;
}

.tarot-arcana-card .tarot-number {
    margin-bottom: .15rem;
}

.tarot-arcana-link {
    color: inherit;
    text-decoration: none;
}

.tarot-arcana-link:hover h3,
.tarot-arcana-link:focus h3 {
    color: #6d28d9;
}

.tarot-mini-result {
    display: grid;
    gap: .55rem;
    padding: 1rem;
    border: 1px solid #eadfcb;
    border-radius: 8px;
    background: #fffdfa;
}

.tarot-mini-result h3 {
    margin: 0;
    color: #20182f;
}

.tarot-spread-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .85rem;
}

@media (min-width: 921px) {
    .tarot-daily .tarot-feature-card,
    .tarot-hero .tarot-feature-card {
        grid-template-columns: minmax(150px, 220px) minmax(0, 1fr);
        align-items: center;
    }

    .tarot-daily .tarot-feature-card .tarot-card-image,
    .tarot-hero .tarot-feature-card .tarot-card-image {
        grid-row: 1 / span 5;
        margin: 0;
        max-width: 220px;
    }

    .tarot-daily .tarot-feature-card .tarot-number,
    .tarot-daily .tarot-feature-card h3,
    .tarot-daily .tarot-feature-card p,
    .tarot-hero .tarot-feature-card .tarot-number,
    .tarot-hero .tarot-feature-card h3,
    .tarot-hero .tarot-feature-card p {
        grid-column: 2;
    }
}

@media (max-width: 920px) {
    .og-hero,
    .og-card-grid,
    .og-card-grid-two,
    .og-link-grid,
    .meaning-definition-grid,
    .meaning-name-summary,
    .meaning-stat-grid,
    .meaning-inline-grid,
    .meaning-popular-grid,
    .dream-letter-grid,
    .tarot-daily,
    .tarot-oracle,
    .tarot-arcana-grid,
    .tarot-spread-grid,
    .num-tool,
    .num-result-grid {
        grid-template-columns: 1fr 1fr;
    }

    .dream-alphabet {
        grid-template-columns: repeat(8, minmax(0, 1fr));
    }

    .num-values-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .og-page {
        width: min(100% - 1rem, 1120px);
    }

    .og-hero,
    .og-card-grid,
    .og-card-grid-two,
    .og-link-grid,
    .meaning-definition-grid,
    .meaning-name-summary,
    .meaning-stat-grid,
    .meaning-inline-grid,
    .meaning-popular-grid,
    .dream-letter-grid,
    .tarot-daily,
    .tarot-oracle,
    .tarot-arcana-grid,
    .tarot-reading-grid,
    .tarot-spread-grid,
    .num-tool,
    .num-date-grid,
    .num-result-grid {
        grid-template-columns: 1fr;
    }

    .meaning-search-row,
    .meaning-cta-section,
    .meaning-share-section,
    .meaning-bar-row {
        grid-template-columns: 1fr;
    }

    .meaning-cta-section,
    .meaning-share-section {
        align-items: flex-start;
        flex-direction: column;
    }

    .meaning-share-actions,
    .meaning-share-button {
        width: 100%;
    }

    .dream-alphabet {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }

    .tarot-oracle {
        grid-template-areas:
            "copy"
            "stage";
    }

    .og-hero h1 {
        font-size: clamp(2rem, 12vw, 2.65rem);
    }
}

.birth-page .og-hero {
    background: linear-gradient(135deg, #fff, #f7fbff 56%, #fff8e6);
}

.birth-page .og-card,
.birth-page .og-link-grid .og-card,
.birth-summary-card,
.birth-day-link {
    color: #241b36;
    text-decoration: none;
}

.birth-section-heading {
    max-width: 760px;
}

.birth-day-grid {
    display: grid;
    grid-template-columns: repeat(8, minmax(0, 1fr));
    gap: .65rem;
    margin-top: 1rem;
}

.birth-day-link {
    display: grid;
    gap: .25rem;
    min-height: 82px;
    padding: .7rem;
    border: 1px solid #e8ddf6;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 10px 24px rgba(31, 19, 56, .05);
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.birth-day-link:hover,
.birth-day-link:focus,
.birth-day-link.is-active {
    border-color: #14b8a6;
    box-shadow: 0 14px 28px rgba(20, 184, 166, .13);
    transform: translateY(-2px);
}

.birth-day-link span,
.birth-summary-number {
    display: inline-grid;
    place-items: center;
    width: 2.2rem;
    height: 2.2rem;
    border-radius: 50%;
    background: #20182f;
    color: #f9e7b0;
    font-weight: 900;
}

.birth-day-link small {
    color: #625874;
    font-weight: 800;
    line-height: 1.25;
}

.birth-day-link.is-active span {
    background: #0f766e;
    color: #fff;
}

.birth-summary-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .85rem;
    margin-top: 1rem;
}

.birth-summary-card {
    display: grid;
    gap: .55rem;
    padding: 1rem;
    border: 1px solid #ece7f5;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 12px 32px rgba(31, 19, 56, .06);
}

.birth-summary-card:hover,
.birth-summary-card:focus {
    border-color: #d8b4fe;
}

.birth-summary-card h3,
.birth-note h2 {
    margin: 0;
    color: #20182f;
    font-size: 1.08rem;
}

.birth-summary-card p {
    margin: 0;
    color: #5f5870;
    line-height: 1.65;
}

.birth-day-orbit {
    display: grid;
    justify-items: center;
    gap: .6rem;
    padding: clamp(1.2rem, 4vw, 2rem);
    border: 1px solid #eadfcb;
    border-radius: 8px;
    background:
        radial-gradient(circle at 50% 34%, rgba(249, 231, 176, .34), transparent 38%),
        linear-gradient(145deg, #20182f, #0f172a);
    color: #fff;
    text-align: center;
    box-shadow: 0 22px 46px rgba(31, 19, 56, .18);
}

.birth-day-orbit span {
    color: #f9e7b0;
    font-weight: 900;
    text-transform: uppercase;
}

.birth-day-orbit strong {
    display: grid;
    place-items: center;
    width: min(52vw, 190px);
    aspect-ratio: 1;
    border: 1px solid rgba(249, 231, 176, .55);
    border-radius: 50%;
    color: #f9e7b0;
    font-size: clamp(4rem, 12vw, 7rem);
    line-height: 1;
}

.birth-day-orbit em {
    color: #fff;
    font-size: 1.25rem;
    font-style: normal;
    font-weight: 900;
}

.birth-day-orbit p {
    max-width: 32rem;
    margin: 0;
    color: #f8fafc;
}

.birth-reading-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .85rem;
    margin-top: 1rem;
}

.birth-original-reading {
    display: block;
}

.birth-original-reading h2 {
    margin-top: 0;
}

.birth-day-nav {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .75rem;
}

.birth-related .og-link-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.birth-related .og-card {
    min-height: 100%;
}

@media (max-width: 920px) {
    .birth-day-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .birth-summary-grid,
    .birth-reading-grid,
    .birth-related .og-link-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .birth-day-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .birth-summary-grid,
    .birth-reading-grid,
    .birth-related .og-link-grid {
        grid-template-columns: 1fr;
    }

    .birth-day-link {
        min-height: 74px;
    }

    .birth-day-nav .og-button,
    .birth-day-nav .og-button-secondary {
        width: 100%;
    }
}

.lottery-page {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.15rem;
    width: min(1120px, calc(100vw - 2rem));
    margin: 0 auto 2rem;
    color: #241b36;
}

.lottery-hero,
.lottery-section {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    border: 1px solid #ece7f5;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(31, 19, 56, .07);
}

.lottery-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(260px, .55fr);
    gap: 1rem;
    align-items: center;
    padding: clamp(1rem, 3vw, 2rem);
    background: linear-gradient(135deg, #fff, #f7fbff 54%, #fff8e6);
}

.lottery-hero-copy,
.lottery-section-copy,
.lottery-result-card,
.lottery-form,
.lottery-hero-card {
    min-width: 0;
}

.lottery-hero h1,
.lottery-section h2,
.lottery-section h3 {
    color: #20182f;
    letter-spacing: 0;
}

.lottery-hero h1 {
    margin: .35rem 0 .75rem;
    font-size: clamp(2rem, 4.5vw, 3.55rem);
    line-height: 1.04;
}

.lottery-hero p,
.lottery-section p,
.lottery-section li,
.lottery-section small {
    color: #5f5870;
    line-height: 1.7;
}

.lottery-kicker {
    display: inline-flex;
    width: fit-content;
    padding: .35rem .6rem;
    border-radius: 999px;
    background: #eefbf7;
    color: #0f766e;
    font-size: .78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.lottery-actions,
.lottery-nav {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    margin-top: 1rem;
}

.lottery-button,
.lottery-button-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    min-height: 44px;
    padding: .72rem 1rem;
    border-radius: 8px;
    font-weight: 900;
    text-decoration: none;
}

.lottery-button {
    border: 0;
    background: #6d28d9;
    color: #fff;
    cursor: pointer;
}

.lottery-button-secondary {
    border: 1px solid #d8cdec;
    background: #fff;
    color: #4c1d95;
}

.lottery-hero-card {
    display: grid;
    gap: .55rem;
    padding: 1.2rem;
    border: 1px solid rgba(249, 231, 176, .42);
    border-radius: 8px;
    background:
        radial-gradient(circle at 25% 20%, rgba(249, 231, 176, .28), transparent 35%),
        linear-gradient(145deg, #20182f, #0f172a);
    color: #fff;
}

.lottery-hero-card strong {
    color: #f9e7b0;
    font-size: 1.35rem;
}

.lottery-hero-card span,
.lottery-hero-card em {
    display: inline-flex;
    width: fit-content;
    padding: .35rem .55rem;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 999px;
    color: #fff;
    font-style: normal;
    font-weight: 800;
}

.lottery-hero-card em {
    background: #f9e7b0;
    color: #20182f;
}

.lottery-section {
    padding: clamp(1rem, 2.5vw, 1.55rem);
}

.lottery-section > h2,
.lottery-section-copy h2 {
    margin-top: .4rem;
}

.lottery-alert,
.lottery-warning {
    padding: .9rem 1rem;
    border: 1px solid #fde68a;
    border-radius: 8px;
    background: #fffbeb;
    color: #624514;
    font-weight: 800;
}

.lottery-warning strong {
    color: #20182f;
}

.lottery-page .loterias-container {
    margin: 1rem 0;
    border-radius: 8px;
    background: linear-gradient(135deg, #0f766e, #4c1d95);
}

.lottery-page .numeros-sorteio {
    max-width: 680px;
    border-radius: 8px;
}

.lottery-page .ads,
.lottery-page .adsbygoogle {
    max-width: 100%;
    overflow: hidden;
}

.lottery-page .adsbygoogle {
    width: 100% !important;
}

.lottery-form-section,
.lottery-result-grid,
.lottery-closure-grid,
.lottery-picked-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    align-items: start;
}

.lottery-form {
    display: grid;
    gap: .75rem;
    align-content: start;
    padding: 1rem;
    border: 1px solid #ece7f5;
    border-radius: 8px;
    background: #f8fafc;
}

.lottery-form label,
.lottery-picker-panel h3 {
    color: #20182f;
    font-weight: 900;
}

.lottery-form input {
    min-height: 46px;
    padding: .72rem .85rem;
    border: 1px solid #d9d2e7;
    border-radius: 8px;
    font-size: 1rem;
}

.lottery-form small {
    display: block;
    margin-top: .15rem;
}

.lottery-generated {
    border-color: #c7f9e8;
    background: #f2fffa;
}

.lottery-callout {
    display: grid;
    gap: .2rem;
    padding: .9rem;
    border: 1px solid #d8cdec;
    border-radius: 8px;
    background: #fff;
    color: #241b36;
    text-decoration: none;
}

.lottery-callout strong {
    color: #4c1d95;
}

.lottery-result-card {
    min-width: 0;
}

.lottery-prize-line {
    padding: .9rem;
    border: 1px solid #c7f9e8;
    border-radius: 8px;
    background: #f2fffa;
}

.lottery-value-grid,
.lottery-card-grid,
.lottery-link-grid,
.lottery-result-summary {
    display: grid;
    gap: .85rem;
}

.lottery-value-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.lottery-value-grid article,
.lottery-mini-card,
.lottery-result-summary span,
.lottery-picker-panel,
.lottery-picked-grid article {
    padding: 1rem;
    border: 1px solid #ece7f5;
    border-radius: 8px;
    background: #fff;
}

.lottery-value-grid article {
    display: grid;
    gap: .35rem;
}

.lottery-value-grid strong,
.lottery-result-summary strong {
    color: #0f766e;
    font-size: 1.2rem;
}

.lottery-card-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.lottery-mini-card p {
    margin: 0;
}

.lottery-link-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.lottery-link-grid a {
    padding: .85rem;
    border: 1px solid #ece7f5;
    border-radius: 8px;
    background: #fff;
    color: #4c1d95;
    font-weight: 900;
    text-decoration: none;
}

.lottery-faq details {
    padding: .9rem 0;
    border-bottom: 1px solid #eee8f6;
}

.lottery-faq details:last-child {
    border-bottom: 0;
}

.lottery-faq summary {
    color: #241b36;
    cursor: pointer;
    font-weight: 900;
}

.lottery-result-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 1rem 0;
}

.lottery-picked-balls {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
}

.lottery-table-wrap {
    overflow-x: auto;
}

.lottery-table {
    width: 100%;
    min-width: 620px;
    border-collapse: collapse;
}

.lottery-table th,
.lottery-table td {
    padding: .85rem;
    border-bottom: 1px solid #eee8f6;
    text-align: left;
    vertical-align: middle;
}

.lottery-table th {
    background: #20182f;
    color: #fff;
}

.lottery-table td:first-child {
    color: #0f766e;
    font-weight: 900;
    text-align: center;
}

.lottery-table .loterias-container {
    margin: 0;
    padding: .75rem;
}

.lottery-closure-form {
    display: grid;
    gap: 1rem;
}

.lottery-picker-panel {
    background: #f8fafc;
}

.lottery-picker-panel .loterias-container {
    padding: .8rem;
}

.lottery-picker-panel .bola-sorteio {
    width: 42px;
    height: 42px;
    font-size: .95rem;
}

.lottery-picker-panel .ball {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background: #fff;
    color: #660909;
    font-weight: 900;
}

.lottery-closure-page .inputFechamento:checked + .ball,
.lottery-closure-page .inputFechamentoAleatorio:checked + .ball {
    background: #16a34a !important;
    color: #fff !important;
    border: 2px solid #bbf7d0;
    box-shadow: inset 0 -4px 10px rgba(0, 0, 0, .18), 0 0 0 3px rgba(22, 163, 74, .18);
}

.lottery-closure-page .bola-sorteio:has(.inputFechamento:checked),
.lottery-closure-page .bola-sorteio:has(.inputFechamentoAleatorio:checked) {
    background: radial-gradient(circle at 30% 30%, #4ade80, #15803d);
    border-color: #bbf7d0;
}

.lottery-submit-wide {
    width: 100%;
}

@media (max-width: 920px) {
    .lottery-hero,
    .lottery-form-section,
    .lottery-result-grid,
    .lottery-closure-grid,
    .lottery-picked-grid {
        grid-template-columns: 1fr;
    }

    .lottery-value-grid,
    .lottery-card-grid,
    .lottery-link-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .lottery-page {
        width: min(100%, calc(100vw - 1rem));
    }

    .lottery-hero h1 {
        font-size: clamp(2rem, 11vw, 2.7rem);
    }

    .lottery-actions .lottery-button,
    .lottery-actions .lottery-button-secondary,
    .lottery-nav .lottery-button-secondary,
    .lottery-button {
        width: 100%;
    }

    .lottery-value-grid,
    .lottery-card-grid,
    .lottery-link-grid,
    .lottery-result-summary {
        grid-template-columns: 1fr;
    }

    .lottery-picker-panel .numeros-sorteio {
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: .35rem;
        padding: .65rem;
    }

    .lottery-picker-panel .bola-sorteio {
        width: 36px;
        height: 36px;
        font-size: .85rem;
    }
}

.article-detail-page {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.2rem;
    width: min(1120px, calc(100vw - 2rem));
    margin: 0 auto 2rem;
    color: #241b36;
}

.article-detail-hero,
.article-detail-body,
.article-detail-footer,
.article-detail-aside section,
.article-related-section,
.article-comments-section {
    border: 1px solid #ece7f5;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(31, 19, 56, .07);
}

.article-detail-hero {
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(320px, .72fr);
    gap: 1rem;
    align-items: center;
    padding: clamp(1rem, 3vw, 2rem);
    background: linear-gradient(135deg, #fff, #f7fbff 56%, #fff8e6);
}

.article-detail-copy,
.article-detail-image,
.article-detail-main,
.article-detail-aside {
    min-width: 0;
}

.article-detail-kicker {
    display: inline-flex;
    width: fit-content;
    padding: .35rem .6rem;
    border-radius: 999px;
    background: #eefbf7;
    color: #0f766e;
    font-size: .78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.article-detail-hero h1 {
    margin: .45rem 0 .75rem;
    color: #20182f;
    font-size: clamp(2rem, 4.5vw, 3.55rem);
    line-height: 1.05;
    letter-spacing: 0;
}

.article-detail-copy p,
.article-detail-body p,
.article-detail-footer p,
.article-comments-section p,
.article-related-section p {
    color: #5f5870;
    line-height: 1.78;
}

.article-detail-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-top: 1rem;
}

.article-detail-meta span {
    display: inline-flex;
    padding: .38rem .62rem;
    border: 1px solid #e6def3;
    border-radius: 999px;
    background: #fff;
    color: #4c1d95;
    font-weight: 900;
    font-size: .9rem;
}

.article-detail-image {
    overflow: hidden;
    border-radius: 8px;
}

.article-detail-image img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.article-detail-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 320px);
    gap: 1rem;
    align-items: start;
}

.article-detail-main {
    display: grid;
    gap: 1rem;
}

.article-detail-body {
    padding: clamp(1rem, 2.6vw, 1.65rem);
}

.article-detail-body p {
    margin: 0 0 1rem;
    font-size: 1.06rem;
}

.article-detail-body p:last-child {
    margin-bottom: 0;
}

.article-detail-body a {
    color: #5b21b6;
    font-weight: 900;
}

.article-detail-body img,
.article-detail-body iframe {
    max-width: 100%;
}

.article-detail-page .ads,
.article-detail-page .adsbygoogle {
    max-width: 100%;
    overflow: hidden;
}

.article-detail-page .adsbygoogle {
    width: 100% !important;
}

.article-detail-footer {
    padding: 1rem;
    background: #fffbeb;
    border-color: #fde68a;
}

.article-detail-footer p {
    margin: .25rem 0;
}

.article-detail-aside {
    display: grid;
    gap: 1rem;
    position: sticky;
    top: 1rem;
}

.article-detail-aside section {
    display: grid;
    gap: .55rem;
    padding: 1rem;
}

.article-detail-aside h2,
.article-related-section h2,
.article-comments-section h2 {
    margin: 0;
    color: #20182f;
    letter-spacing: 0;
}

.article-detail-aside a {
    padding: .72rem;
    border: 1px solid #ece7f5;
    border-radius: 8px;
    background: #f8fafc;
    color: #4c1d95;
    font-weight: 900;
    text-decoration: none;
}

.article-related-section,
.article-comments-section {
    padding: clamp(1rem, 2.6vw, 1.55rem);
}

.article-section-heading {
    margin-bottom: 1rem;
}

.article-section-heading h2 {
    margin-top: .4rem;
}

.article-section-heading p {
    margin-bottom: 0;
}

.article-related-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .85rem;
}

.article-related-card a {
    display: grid;
    min-height: 100%;
    overflow: hidden;
    border: 1px solid #ece7f5;
    border-radius: 8px;
    background: #fff;
    color: #241b36;
    text-decoration: none;
}

.article-related-card img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.article-related-card span {
    display: grid;
    gap: .4rem;
    padding: .85rem;
}

.article-related-card strong {
    color: #20182f;
    line-height: 1.25;
}

.article-related-card small {
    color: #0f766e;
    font-weight: 900;
}

.article-comments-list {
    display: grid;
    gap: .85rem;
}

.article-comment-card {
    overflow: hidden;
    border: 1px solid #ece7f5;
    border-radius: 8px;
    background: #fff;
}

.article-comment-card header {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: .5rem;
    padding: .85rem 1rem;
    border-bottom: 1px solid #ece7f5;
    background: #f8fafc;
}

.article-comment-card header strong {
    color: #20182f;
}

.article-comment-card header span {
    color: #6f6681;
    font-size: .9rem;
    font-weight: 800;
}

.article-comment-body,
.article-comment-replies {
    padding: 1rem;
}

.article-comment-body p,
.article-comment-replies p {
    margin: 0;
}

.article-comment-replies {
    display: grid;
    gap: .75rem;
    border-top: 1px solid #ece7f5;
    background: #f8fafc;
}

.article-comment-replies div {
    padding: .85rem;
    border-radius: 8px;
    background: #fff;
}

.article-comment-replies strong {
    display: block;
    margin-bottom: .4rem;
    color: #0f766e;
}

@media (max-width: 920px) {
    .article-detail-hero,
    .article-detail-layout,
    .article-related-grid {
        grid-template-columns: 1fr;
    }

    .article-detail-aside {
        position: static;
    }

    .article-related-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .article-detail-page {
        width: min(100%, calc(100vw - 1rem));
    }

    .article-detail-hero h1 {
        font-size: clamp(2rem, 11vw, 2.7rem);
    }

    .article-related-grid {
        grid-template-columns: 1fr;
    }
}

/* =========================
   Espiritualidade: anjos, santos, oracoes, salmos e religioes
   ========================= */
.spiritual-page .og-hero {
    background: linear-gradient(135deg, #fff, #f7fbff 52%, #fff7e8);
}

.spiritual-page .og-kicker {
    background: #ecfdf5;
    color: #0f766e;
}

.spiritual-page .og-button {
    background: #0f766e;
    color: #fff;
}

.spiritual-page .og-button-secondary {
    border-color: #d8eadf;
    color: #14532d;
}

.spiritual-page .ads,
.spiritual-page .adsbygoogle,
.content-hub-spiritual .ads,
.content-hub-spiritual .adsbygoogle {
    max-width: 100%;
    overflow: hidden;
}

.spiritual-page .adsbygoogle,
.content-hub-spiritual .adsbygoogle {
    width: 100% !important;
}

.spiritual-today-card,
.spiritual-summary {
    display: grid;
    gap: .65rem;
}

.spiritual-today-card h2,
.spiritual-summary h2 {
    margin: 0;
    color: #20182f;
}

.spiritual-today-card a {
    color: #0f766e;
    font-weight: 900;
}

.spiritual-tool {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(280px, 1.1fr);
    gap: 1rem;
    align-items: end;
}

.spiritual-date-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr)) auto;
    gap: .75rem;
    align-items: end;
}

.spiritual-date-form label,
.spiritual-search {
    display: grid;
    gap: .35rem;
    color: #5f5870;
    font-size: .9rem;
    font-weight: 900;
}

.spiritual-date-form select,
.spiritual-search input {
    width: 100%;
    min-height: 44px;
    border: 1px solid #dfe7e3;
    border-radius: 8px;
    background: #fff;
    color: #241b36;
    font: inherit;
}

.spiritual-date-form select {
    padding: .55rem .65rem;
}

.spiritual-search {
    margin: .85rem 0 1rem;
}

.spiritual-search input {
    padding: .65rem .75rem;
}

.spiritual-section-head {
    max-width: 780px;
}

.spiritual-list-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
}

.spiritual-list-card {
    display: grid;
    gap: .35rem;
    min-height: 100%;
    padding: .95rem;
    border: 1px solid #e6eee9;
    border-radius: 8px;
    background: #fff;
    color: #241b36;
    text-decoration: none;
    box-shadow: 0 10px 24px rgba(31, 19, 56, .05);
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.spiritual-list-card:hover,
.spiritual-list-card:focus {
    border-color: #14b8a6;
    box-shadow: 0 14px 28px rgba(20, 184, 166, .12);
    transform: translateY(-2px);
}

.spiritual-list-card strong {
    color: #20182f;
    line-height: 1.25;
}

.spiritual-list-card span {
    color: #0f766e;
    font-size: .9rem;
    font-weight: 900;
}

.spiritual-faq-list {
    display: grid;
    gap: .4rem;
}

.spiritual-faq-list details {
    padding: .9rem 0;
    border-bottom: 1px solid #eee8f6;
}

.spiritual-faq-list details:last-child {
    border-bottom: 0;
}

.spiritual-faq-list summary {
    color: #241b36;
    cursor: pointer;
    font-weight: 900;
}

.spiritual-faq-list p {
    margin: .5rem 0 0;
    color: #5f5870;
    line-height: 1.7;
}

.spiritual-feature {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(160px, 250px);
    gap: 1rem;
    align-items: center;
}

.spiritual-feature figure {
    margin: 0;
}

.spiritual-feature img {
    display: block;
    width: 100%;
    max-width: 250px;
    margin: 0 auto;
    border-radius: 8px;
}

.spiritual-fact-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
}

.spiritual-fact-card {
    display: grid;
    gap: .35rem;
    padding: .9rem;
    border: 1px solid #e6eee9;
    border-radius: 8px;
    background: #fbfefc;
}

.spiritual-fact-card strong {
    color: #0f766e;
}

.spiritual-fact-card span {
    color: #5f5870;
    line-height: 1.55;
}

.spiritual-prayer-text {
    padding: 1rem;
    border: 1px solid #eee8f6;
    border-radius: 8px;
    background: #fffdf8;
}

.spiritual-prayer-text p {
    margin: 0;
    color: #3b334a;
    font-size: 1.08rem;
    line-height: 1.85;
}

.spiritual-card-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}

.spiritual-card-list .card {
    display: grid;
    gap: .35rem;
    margin: 0 !important;
    padding: .95rem !important;
    border: 1px solid #e6eee9;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 10px 24px rgba(31, 19, 56, .05);
}

.spiritual-card-list .card p {
    margin: 0;
    color: #5f5870;
    line-height: 1.6;
}

.spiritual-card-list .card p:first-child {
    color: #20182f;
    font-size: 1.04rem;
}

.spiritual-card-list .card b {
    color: #0f766e;
}

.spiritual-card-list .card[hidden],
.spiritual-list-card[hidden] {
    display: none;
}

@media (max-width: 900px) {
    .spiritual-tool,
    .spiritual-feature {
        grid-template-columns: 1fr;
    }

    .spiritual-date-form,
    .spiritual-list-grid,
    .spiritual-fact-grid,
    .spiritual-card-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .spiritual-date-form,
    .spiritual-list-grid,
    .spiritual-fact-grid,
    .spiritual-card-list {
        grid-template-columns: 1fr;
    }

    .spiritual-date-form .og-button {
        width: 100%;
    }
}

/* Shared index page card rhythm */
.horoscope-index-grid,
.esoteric-index-grid,
.content-hub-grid-three,
.meaning-index-main-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
}

.meaning-index-related-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: stretch;
}

.horoscope-index-card.is-featured,
.esoteric-index-card.is-featured,
.content-hub-card.is-featured,
.meaning-index-card.is-featured {
    grid-column: auto;
}

.content-hub-card,
.meaning-index-card,
.esoteric-index-card {
    display: flex;
    flex-direction: column;
}

.horoscope-index-card a,
.esoteric-index-card a,
.content-hub-card a,
.meaning-index-card a {
    display: flex;
    height: 100%;
    min-height: 0;
    flex-direction: column;
}

.horoscope-index-card img,
.esoteric-index-card img,
.content-hub-card img,
.meaning-index-card img {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 10;
    height: auto;
    flex: 0 0 auto;
    object-fit: cover;
}

.horoscope-index-card-body,
.esoteric-index-card-body,
.content-hub-card-body,
.meaning-index-card-body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    align-items: flex-start;
}

.horoscope-index-card small,
.esoteric-index-card small,
.content-hub-card small,
.meaning-index-card small {
    flex: 1 1 auto;
}

.horoscope-index-card em,
.esoteric-index-card em,
.content-hub-card em,
.meaning-index-card em {
    margin-top: auto;
    padding-top: .35rem;
}

.content-hub-card.is-featured,
.meaning-index-card.is-featured,
.esoteric-index-card.is-featured,
.horoscope-index-card.is-featured a {
    box-shadow: inset 0 4px 0 rgba(109, 40, 217, .22);
}

@media (max-width: 1100px) {
    .horoscope-index-grid,
    .esoteric-index-grid,
    .content-hub-grid-three,
    .meaning-index-main-grid,
    .meaning-index-related-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .horoscope-index-grid,
    .esoteric-index-grid,
    .content-hub-grid-three,
    .meaning-index-main-grid,
    .meaning-index-related-grid {
        grid-template-columns: 1fr;
    }
}

/* Contextual affiliate blocks */
.affiliate-context-block {
    margin: clamp(1.5rem, 4vw, 2.75rem) 0;
    padding: clamp(1rem, 3vw, 1.5rem);
    border: 1px solid #e7e0d2;
    border-radius: 8px;
    background:
        linear-gradient(135deg, rgba(255, 248, 230, .92), rgba(245, 252, 250, .94)),
        #fffaf0;
    box-shadow: 0 16px 42px rgba(31, 24, 47, .07);
}

.affiliate-context-heading {
    max-width: 760px;
    margin-bottom: 1rem;
}

.affiliate-context-heading span {
    display: inline-flex;
    width: fit-content;
    margin-bottom: .45rem;
    padding: .28rem .65rem;
    border-radius: 999px;
    background: rgba(15, 118, 110, .1);
    color: #0f766e;
    font-size: .74rem;
    font-weight: 900;
    letter-spacing: .02em;
    text-transform: uppercase;
}

.affiliate-context-heading h2 {
    margin: 0;
    color: #19122f;
    font-size: clamp(1.25rem, 2.7vw, 1.75rem);
    line-height: 1.15;
}

.affiliate-context-heading p,
.affiliate-context-note {
    margin: .45rem 0 0;
    color: #5d556e;
    line-height: 1.65;
}

.affiliate-context-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
}

.affiliate-product-card {
    min-width: 0;
}

.affiliate-product-card a {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    gap: .9rem;
    height: 100%;
    padding: .85rem;
    border: 1px solid rgba(32, 24, 47, .08);
    border-radius: 8px;
    background: rgba(255, 255, 255, .86);
    color: inherit;
    text-decoration: none;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.affiliate-product-card a:hover {
    border-color: rgba(15, 118, 110, .28);
    box-shadow: 0 14px 28px rgba(31, 24, 47, .1);
    transform: translateY(-1px);
}

.affiliate-product-media {
    display: block;
    overflow: hidden;
    aspect-ratio: 1;
    border-radius: 8px;
    background: #fff;
}

.affiliate-product-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.affiliate-product-body {
    display: grid;
    align-content: start;
    gap: .25rem;
    min-width: 0;
}

.affiliate-product-body small {
    color: #0f766e;
    font-size: .74rem;
    font-weight: 900;
    text-transform: uppercase;
}

.affiliate-product-body strong {
    color: #19122f;
    font-size: 1rem;
    line-height: 1.25;
}

.affiliate-product-body span {
    color: #5d556e;
    font-size: .92rem;
    line-height: 1.45;
}

.affiliate-product-body em {
    color: #6d28d9;
    font-style: normal;
    font-weight: 900;
}

.affiliate-product-body b {
    width: fit-content;
    margin-top: .25rem;
    padding: .48rem .72rem;
    border-radius: 999px;
    background: #20182f;
    color: #fff;
    font-size: .82rem;
}

.affiliate-context-note {
    font-size: .82rem;
}

@media (max-width: 860px) {
    .affiliate-context-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 520px) {
    .affiliate-product-card a {
        grid-template-columns: 84px minmax(0, 1fr);
        padding: .75rem;
    }
}
