:root {
    --site-max: 72rem;
    --brand: #db2777;
    --brand-dark: #9d174d;
    --brand-light: #fce7f3;
}

.site-container {
    width: 100%;
    max-width: var(--site-max);
    margin-inline: auto;
    padding-inline: 1.25rem;
}

.py-section { padding-block: 3rem; }

.hero {
    background: linear-gradient(135deg, var(--brand) 0%, var(--brand-dark) 55%, #0f172a 100%);
    position: relative;
    overflow: hidden;
}

.hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 80% 20%, rgba(255,255,255,0.12) 0%, transparent 50%);
    pointer-events: none;
}

.card {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 1rem;
    transition: box-shadow 0.2s, border-color 0.2s;
}

.card:hover {
    border-color: #fbcfe8;
    box-shadow: 0 8px 30px rgba(219, 39, 119, 0.08);
}

.card-tool {
    border-left: 4px solid var(--brand);
}

.calc-form label {
    display: block;
    font-size: 0.875rem;
    font-weight: 600;
    color: #334155;
    margin-bottom: 0.35rem;
}

.calc-form input[type="date"],
.calc-form input[type="number"],
.calc-form select {
    width: 100%;
    padding: 0.65rem 0.85rem;
    border: 1px solid #e2e8f0;
    border-radius: 0.75rem;
    font-size: 1rem;
    background: #fff;
}

.calc-form input:focus {
    outline: 2px solid var(--brand);
    outline-offset: 1px;
}

.btn-brand {
    background: var(--brand);
    color: #fff;
    font-weight: 600;
    padding: 0.75rem 1.5rem;
    border-radius: 0.75rem;
    border: none;
    cursor: pointer;
    transition: opacity 0.2s;
}

.btn-brand:hover { opacity: 0.9; }

.result-box {
    background: var(--brand-light);
    border: 1px solid #fbcfe8;
    border-radius: 1rem;
    padding: 1.25rem;
}

.result-row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.5rem 0;
    border-bottom: 1px solid #fbcfe8;
}

.result-row:last-child { border-bottom: none; }

.week-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(4.5rem, 1fr));
    gap: 0.5rem;
}

.week-pill {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.65rem;
    border-radius: 0.75rem;
    border: 1px solid #e2e8f0;
    background: #fff;
    font-weight: 600;
    font-size: 0.875rem;
    transition: all 0.15s;
}

.week-pill:hover {
    background: var(--brand);
    color: #fff;
    border-color: var(--brand);
}

.week-pill.active {
    background: var(--brand);
    color: #fff;
    border-color: var(--brand);
}

.trimester-badge {
    display: inline-block;
    padding: 0.25rem 0.75rem;
    border-radius: 9999px;
    font-size: 0.75rem;
    font-weight: 600;
    background: var(--brand-light);
    color: var(--brand-dark);
}

.ad-slot-wrap { margin-block: 1.5rem; }
.ad-slot {
    min-height: 90px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f8fafc;
    border: 1px dashed #cbd5e1;
    border-radius: 0.75rem;
}

.disclaimer-box {
    border-color: #f9a8d4;
    background: #fdf2f8;
    color: #831843;
}

.cookie-banner.hidden { display: none; }

.prose h2 { font-size: 1.35rem; font-weight: 700; margin-top: 2rem; margin-bottom: 0.75rem; color: #0f172a; }
.prose p { margin-bottom: 1rem; line-height: 1.7; color: #475569; }
.prose ul, .prose ol { margin-bottom: 1rem; padding-left: 1.5rem; color: #475569; }
.prose li { margin-bottom: 0.35rem; }
.prose strong { color: #0f172a; }

.bg-brand { background-color: var(--brand); }
.text-brand { color: var(--brand); }
