.mod-dailyhoroscope-today {
    --dh-accent: #5b4b9a;
    --dh-card-bg: #fff;
    --dh-card-text: #212529;
    --dh-border: rgba(25, 30, 45, .13);
    --dh-muted: rgba(33, 37, 41, .68);
    --dh-radius: 1rem;
    --dh-padding: 1.25rem;
    --dh-overlay-alpha: .66;
    color: inherit;
}
.mod-dailyhoroscope-today *, .mod-dailyhoroscope-today *::before, .mod-dailyhoroscope-today *::after { box-sizing: border-box; }
.dh-module-header { margin: 0 0 1.4rem; }
.dh-module-title { margin: 0 0 .4rem; }
.dh-intro { max-width: 76ch; color: var(--dh-muted); }
.dh-intro > :last-child { margin-bottom: 0; }
.dh-items { display: grid; grid-template-columns: repeat(var(--dh-cols-desktop, 3), minmax(0, 1fr)); gap: var(--dh-gap, 20px); align-items: start; }
.dh-item { position: relative; display: flex; flex-direction: column; min-width: 0; overflow: hidden; color: var(--dh-card-text); background: var(--dh-card-bg); border-radius: var(--dh-radius); transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.dh-equal-height .dh-item { height: 100%; }
.dh-content { display: flex; flex: 1 1 auto; flex-direction: column; min-width: 0; padding: var(--dh-padding); }
.dh-item-header { display: flex; align-items: center; gap: .8rem; margin-bottom: .75rem; }
.dh-title { margin: 0; font-size: clamp(1.1rem, 1rem + .35vw, 1.45rem); line-height: 1.2; color: inherit; }
.dh-subtitle { margin: -.35rem 0 .8rem; color: var(--dh-muted); font-size: .88rem; font-weight: 650; }
.dh-symbol { display: inline-grid; place-items: center; flex: 0 0 auto; color: var(--dh-accent); line-height: 1; }
.dh-symbolstyle-plain .dh-symbol { font-size: 1.6rem; }
.dh-symbolstyle-circle .dh-symbol, .dh-symbolstyle-soft .dh-symbol { width: 2.75rem; height: 2.75rem; border-radius: 50%; font-size: 1.45rem; }
.dh-symbolstyle-circle .dh-symbol { color: #fff; background: var(--dh-accent); }
.dh-symbolstyle-soft .dh-symbol { background: rgba(91, 75, 154, .12); }
.dh-symbolstyle-large .dh-symbol { width: 3.5rem; height: 3.5rem; font-size: 2.4rem; }
.dh-date, .dh-badge { display: inline-block; align-self: flex-start; margin: 0 0 .65rem; font-size: .78rem; font-weight: 700; }
.dh-date { color: var(--dh-muted); }
.dh-badge { padding: .2rem .55rem; border-radius: 999px; color: var(--dh-accent); background: rgba(91, 75, 154, .10); }
.dh-text { line-height: 1.6; }
.dh-text > :last-child { margin-bottom: 0; }
.dh-source { margin: auto 0 0; padding-top: 1rem; color: var(--dh-muted); font-size: .82rem; }
.dh-source a { color: inherit; text-underline-offset: .15em; }
.dh-empty { padding: 1rem; border: 1px dashed var(--dh-border); border-radius: var(--dh-radius); }

/* Card styling */
.dh-cardstyle-plain .dh-item { background: transparent; }
.dh-cardstyle-border .dh-item { border: 1px solid var(--dh-border); }
.dh-cardstyle-shadow .dh-item { box-shadow: 0 .55rem 1.8rem rgba(0,0,0,.10); }
.dh-cardstyle-border-shadow .dh-item { border: 1px solid var(--dh-border); box-shadow: 0 .55rem 1.8rem rgba(0,0,0,.08); }
.dh-cardstyle-soft .dh-item { border: 1px solid rgba(91,75,154,.10); background: linear-gradient(145deg, var(--dh-card-bg), rgba(91,75,154,.055)); }
.dh-cardstyle-elevated .dh-item { box-shadow: 0 .95rem 2.5rem rgba(0,0,0,.14); }
.dh-cardstyle-glass .dh-item { border: 1px solid rgba(255,255,255,.45); background: rgba(255,255,255,.78); box-shadow: 0 .8rem 2.5rem rgba(0,0,0,.10); backdrop-filter: blur(14px) saturate(135%); }
.dh-cardstyle-outline .dh-item { border: 2px solid var(--dh-accent); }

/* Radius and padding */
.dh-radius-none { --dh-radius: 0; }
.dh-radius-small { --dh-radius: .45rem; }
.dh-radius-medium { --dh-radius: .9rem; }
.dh-radius-large { --dh-radius: 1.35rem; }
.dh-radius-xlarge { --dh-radius: 2rem; }
.dh-padding-compact { --dh-padding: .8rem; }
.dh-padding-normal { --dh-padding: 1.25rem; }
.dh-padding-generous { --dh-padding: 1.8rem; }

/* Alignment */
.dh-align-center .dh-content { text-align: center; }
.dh-align-center .dh-item-header { justify-content: center; }
.dh-align-center .dh-date, .dh-align-center .dh-badge { align-self: center; }
.dh-align-right .dh-content { text-align: right; }
.dh-align-right .dh-item-header { justify-content: flex-end; }
.dh-align-right .dh-date, .dh-align-right .dh-badge { align-self: flex-end; }

/* Images */
.dh-image { position: relative; margin: 0; overflow: hidden; background: rgba(0,0,0,.035); }
.dh-image img { display: block; width: 100%; height: 100%; object-fit: var(--dh-image-fit, cover); transition: transform .35s ease; }
.dh-ratio-1-1 { aspect-ratio: 1 / 1; }.dh-ratio-4-3 { aspect-ratio: 4 / 3; }.dh-ratio-3-2 { aspect-ratio: 3 / 2; }.dh-ratio-16-9 { aspect-ratio: 16 / 9; }.dh-ratio-21-9 { aspect-ratio: 21 / 9; }
.dh-ratio-auto img { height: auto; }
.dh-image-left, .dh-image-right { display: flex; }
.dh-image-right { flex-direction: row-reverse; }
.dh-image-left .dh-image, .dh-image-right .dh-image { flex: 0 0 min(42%, 20rem); }

/* Layouts */
.dh-layout-accent .dh-item { border-top: .3rem solid var(--dh-accent); }
.dh-layout-accent .dh-item::before { position: absolute; top: .7rem; right: .7rem; width: 2.2rem; height: 2.2rem; border-radius: 50%; content: ''; background: rgba(91,75,154,.09); pointer-events: none; }
.dh-layout-editorial .dh-item { border-radius: 0; border-block: 1px solid var(--dh-border); background: transparent; box-shadow: none; }
.dh-layout-editorial .dh-title { font-family: Georgia, 'Times New Roman', serif; font-size: clamp(1.3rem, 1.05rem + .6vw, 1.8rem); }
.dh-layout-compact .dh-item { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; }
.dh-layout-compact .dh-image { width: 7rem; height: 5.5rem; aspect-ratio: auto; }
.dh-layout-compact .dh-content { padding: .75rem 1rem; }
.dh-layout-compact .dh-title { font-size: 1rem; }
.dh-layout-compact .dh-text { font-size: .9rem; line-height: 1.45; }
.dh-layout-list .dh-items { grid-template-columns: 1fr; }
.dh-layout-list .dh-item.dh-has-image { display: grid; grid-template-columns: minmax(10rem, .32fr) minmax(0,1fr); }
.dh-layout-list .dh-image-right.dh-has-image { grid-template-columns: minmax(0,1fr) minmax(10rem,.32fr); }
.dh-layout-list .dh-image-right .dh-image { grid-column: 2; grid-row: 1; }
.dh-layout-list .dh-image-right .dh-content { grid-column: 1; grid-row: 1; }
.dh-layout-magazine .dh-lead { grid-column: 1 / -1; }
.dh-layout-magazine .dh-lead .dh-title { font-size: clamp(1.55rem, 1.1rem + 1vw, 2.35rem); }
.dh-layout-magazine .dh-lead.dh-has-image { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(17rem,.75fr); }
.dh-layout-magazine .dh-lead.dh-image-right .dh-image { grid-column: 2; grid-row: 1; }
.dh-layout-magazine .dh-lead.dh-image-right .dh-content { grid-column: 1; grid-row: 1; }
.dh-layout-masonry .dh-items { display: block; column-count: var(--dh-cols-desktop, 3); column-gap: var(--dh-gap, 20px); }
.dh-layout-masonry .dh-item { display: inline-flex; width: 100%; margin: 0 0 var(--dh-gap,20px); break-inside: avoid; page-break-inside: avoid; vertical-align: top; }
.dh-layout-masonry .dh-image-left, .dh-layout-masonry .dh-image-right { display: inline-flex; flex-direction: column; }
.dh-layout-masonry .dh-image-left .dh-image, .dh-layout-masonry .dh-image-right .dh-image { width: 100%; }
.dh-layout-plain .dh-items { display: block; }
.dh-layout-plain .dh-item { padding: 1rem 0; border: 0; border-bottom: 1px solid var(--dh-border); border-radius: 0; background: transparent; box-shadow: none; }
.dh-layout-plain .dh-content { padding: 0; }
.dh-layout-plain .dh-item:last-child { border-bottom: 0; }

/* Overlay: especially useful when horoscope images are maintained */
.dh-layout-overlay .dh-item.dh-has-image { min-height: clamp(18rem, 34vw, 28rem); isolation: isolate; background: #262238; }
.dh-layout-overlay .dh-item.dh-has-image::after { position: absolute; z-index: 1; inset: 0; content: ''; pointer-events: none; background: linear-gradient(180deg, rgba(0,0,0,.04) 10%, rgba(0,0,0,var(--dh-overlay-alpha)) 100%); }
.dh-overlay-light { --dh-overlay-alpha: .46; }.dh-overlay-medium { --dh-overlay-alpha: .66; }.dh-overlay-strong { --dh-overlay-alpha: .82; }
.dh-layout-overlay .dh-item.dh-has-image .dh-image { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; }
.dh-layout-overlay .dh-item.dh-has-image .dh-content { position: relative; z-index: 2; justify-content: flex-end; min-height: inherit; color: #fff; }
.dh-layout-overlay .dh-item.dh-has-image .dh-source, .dh-layout-overlay .dh-item.dh-has-image .dh-date, .dh-layout-overlay .dh-item.dh-has-image .dh-subtitle { color: rgba(255,255,255,.82); }
.dh-layout-overlay .dh-item.dh-has-image .dh-symbolstyle-circle .dh-symbol { background: rgba(255,255,255,.18); }
.dh-layout-overlay .dh-no-image { background: linear-gradient(145deg, var(--dh-accent), #252039); color: #fff; }
.dh-layout-overlay .dh-no-image .dh-content, .dh-layout-overlay .dh-no-image .dh-source, .dh-layout-overlay .dh-no-image .dh-date { color: #fff; }

/* Hover */
.dh-hover-lift .dh-item:hover { z-index: 2; transform: translateY(-6px); box-shadow: 0 1rem 2.6rem rgba(0,0,0,.15); }
.dh-hover-zoom .dh-item:hover .dh-image img { transform: scale(1.07); }
.dh-hover-glow .dh-item:hover { border-color: var(--dh-accent); box-shadow: 0 0 0 1px var(--dh-accent), 0 1rem 2.5rem rgba(91,75,154,.22); }

@media (max-width: 991.98px) {
    .dh-items { grid-template-columns: repeat(var(--dh-cols-tablet, 2), minmax(0,1fr)); }
    .dh-layout-masonry .dh-items { column-count: var(--dh-cols-tablet, 2); }
    .dh-layout-magazine .dh-lead.dh-has-image { display: block; }
}
@media (max-width: 575.98px) {
    .dh-items { grid-template-columns: repeat(var(--dh-cols-mobile, 1), minmax(0,1fr)); }
    .dh-layout-masonry .dh-items { column-count: var(--dh-cols-mobile,1); }
    .dh-image-left, .dh-image-right, .dh-layout-list .dh-item.dh-has-image { display: block; }
    .dh-image-left .dh-image, .dh-image-right .dh-image { width: 100%; }
    .dh-layout-compact .dh-item { grid-template-columns: 5.5rem minmax(0,1fr); }
    .dh-layout-compact .dh-image { width: 5.5rem; height: 5rem; }
}
@media (prefers-reduced-motion: reduce) {
    .dh-item, .dh-image img { transition: none; }
    .dh-hover-lift .dh-item:hover { transform: none; }
}

.dh-version { margin: -.2rem 0 .75rem; color: var(--dh-muted); font-size: .78rem; font-weight: 650; letter-spacing: .015em; }
