/* =========================================================
   ASTROLUA · YOUR KEY DATES
========================================================= */

:root {
    --kd-ivory: #fbf8f1;
    --kd-ivory-soft: #f6f0e5;
    --kd-white: #ffffff;

    --kd-purple: #55327a;
    --kd-purple-dark: #39204f;
    --kd-purple-soft: #765397;

    --kd-gold: #c49a46;
    --kd-gold-light: #e3c982;

    --kd-text: #342b3d;
    --kd-text-soft: #756c7d;

    --kd-border: rgba(85, 50, 122, 0.16);

    --kd-shadow:
        0 18px 50px rgba(57, 32, 79, 0.09);
}



.astro-key-dates-page {
    background: var(--kd-ivory);
    color: var(--kd-text);
}



.key-dates-container {
    width: min(1120px, calc(100% - 48px));
    margin: 0 auto;
}



/* =========================================================
   HERO
========================================================= */

.key-dates-hero {
    position: relative;

    padding: 140px 0 82px;

    overflow: hidden;

    background:
        radial-gradient(
            circle at 18% 22%,
            rgba(196, 154, 69, 0.18),
            transparent 28%
        ),
        radial-gradient(
            circle at 82% 30%,
            rgba(168, 132, 202, 0.22),
            transparent 30%
        ),
        linear-gradient(
            145deg,
            #32194f 0%,
            #4b2873 48%,
            #67408a 100%
        );

    color: #ffffff;
}



.key-dates-hero::after {
    content: "";

    position: absolute;

    width: 470px;
    height: 470px;

    left: 50%;
    top: 52%;

    transform:
        translate(-50%, -50%);

    border:
        1px solid rgba(234, 216, 173, 0.11);

    border-radius: 50%;

    pointer-events: none;
}



.key-dates-hero-inner {
    position: relative;
    z-index: 2;

    max-width: 800px;

    text-align: center;
}



.key-dates-back {
    position: absolute;

    left: 0;
    top: -45px;

    color:
        rgba(255, 255, 255, 0.78);

    font-size: 0.88rem;

    text-decoration: none;

    transition:
        color 0.2s ease;
}



.key-dates-back:hover {
    color: var(--kd-gold-light);
}



.key-dates-hero-symbol {
    width: 65px;
    height: 65px;

    margin:
        0 auto 17px;

    display: flex;

    align-items: center;
    justify-content: center;

    border:
        1px solid rgba(234, 216, 173, 0.52);

    border-radius: 50%;

    color:
        var(--kd-gold-light);

    font-size: 1.9rem;

    box-shadow:
        0 0 0 9px rgba(255, 255, 255, 0.025),
        0 0 38px rgba(196, 154, 69, 0.14);
}



.key-dates-hero .section-eyebrow {
    margin: 0;

    color:
        var(--kd-gold-light);

    font-size: 0.75rem;
    font-weight: 700;

    letter-spacing: 0.16em;
}



.key-dates-hero h1 {
    margin:
        9px 0 16px;

    color: #ffffff;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(2.7rem, 5vw, 4.5rem);

    line-height: 1.04;

    font-weight: 500;
}



.key-dates-hero-text {
    max-width: 620px;

    margin: 0 auto;

    color:
        rgba(255, 255, 255, 0.82);

    font-size: 1.04rem;

    line-height: 1.75;
}



.key-dates-badges {
    display: flex;

    align-items: center;
    justify-content: center;

    gap: 10px;

    margin-top: 22px;
}



.key-dates-period,
.key-dates-price {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    padding:
        6px 13px;

    border:
        1px solid rgba(234, 216, 173, 0.48);

    border-radius: 30px;

    background:
        rgba(255, 255, 255, 0.06);

    color:
        var(--kd-gold-light);

    font-size: 0.68rem;
    font-weight: 800;

    letter-spacing: 0.12em;
}



.key-dates-star {
    position: absolute;

    z-index: 1;

    color:
        rgba(234, 216, 173, 0.55);

    pointer-events: none;
}



.key-dates-star-one {
    left: 13%;
    top: 35%;

    font-size: 1.2rem;
}



.key-dates-star-two {
    right: 15%;
    top: 27%;

    font-size: 2rem;
}



.key-dates-star-three {
    right: 24%;
    bottom: 18%;

    font-size: 1rem;
}



/* =========================================================
   EXPERIENCE
========================================================= */

.key-dates-experience {
    padding:
        74px 0 82px;
}



.key-dates-section {
    max-width: 900px;

    margin: 0 auto;
}



.key-dates-section +
.key-dates-section {
    margin-top: 38px;
}



.key-dates-section-heading {
    display: flex;

    align-items: flex-start;
    justify-content: space-between;

    gap: 24px;
}



.key-dates-small-label {
    margin:
        0 0 8px;

    color:
        var(--kd-gold);

    font-size: 0.72rem;
    font-weight: 700;

    letter-spacing: 0.15em;
}



.key-dates-section h2,
.key-dates-generate-card h2 {
    margin: 0;

    color:
        var(--kd-purple-dark);

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(1.65rem, 3vw, 2.25rem);

    font-weight: 500;

    line-height: 1.25;
}



.key-dates-info-button {
    flex:
        0 0 auto;

    width: 38px;
    height: 38px;

    padding: 0;

    border:
        1px solid rgba(85, 50, 122, 0.22);

    border-radius: 50%;

    background:
        var(--kd-white);

    color:
        var(--kd-purple);

    font-size: 1rem;
    font-weight: 700;

    cursor: pointer;

    transition:
        border-color 0.2s ease,
        background 0.2s ease,
        color 0.2s ease;
}



.key-dates-info-button:hover {
    border-color:
        var(--kd-purple);

    background:
        var(--kd-purple);

    color: #ffffff;
}



/* =========================================================
   PERSON TABS
========================================================= */

.key-dates-person-tabs {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 10px;

    margin-top: 30px;

    padding: 7px;

    border:
        1px solid var(--kd-border);

    border-radius: 18px;

    background:
        rgba(255, 255, 255, 0.65);
}



.key-dates-person-button {
    min-height: 50px;

    padding:
        10px 18px;

    border: 0;

    border-radius: 13px;

    background: transparent;

    color:
        var(--kd-text-soft);

    font: inherit;

    font-weight: 600;

    cursor: pointer;

    transition:
        background 0.2s ease,
        color 0.2s ease,
        box-shadow 0.2s ease;
}



.key-dates-person-button:hover {
    color:
        var(--kd-purple);
}



.key-dates-person-button.is-active {
    background:
        var(--kd-purple);

    color: #ffffff;

    box-shadow:
        0 8px 22px rgba(85, 50, 122, 0.18);
}



/* =========================================================
   PANELS
========================================================= */

.key-dates-form-panel {
    max-width: 900px;

    margin:
        34px auto 0;
}



.key-dates-profile-loading {
    padding:
        52px 30px;

    border:
        1px solid var(--kd-border);

    border-radius: 24px;

    background:
        var(--kd-white);

    text-align: center;

    box-shadow:
        var(--kd-shadow);
}



.key-dates-loading-symbol {
    margin-bottom: 12px;

    color:
        var(--kd-gold);

    font-size: 1.8rem;
}



.key-dates-profile-loading p,
.key-dates-loading p {
    margin: 0;

    color:
        var(--kd-text-soft);
}



/* =========================================================
   EXISTING PROFILE
========================================================= */

.key-dates-profile-card {
    padding: 34px;

    border:
        1px solid var(--kd-border);

    border-radius: 24px;

    background:
        var(--kd-white);

    box-shadow:
        var(--kd-shadow);
}



.key-dates-profile-card-header {
    display: flex;

    align-items: flex-start;
    justify-content: space-between;

    gap: 20px;

    padding-bottom: 24px;

    border-bottom:
        1px solid var(--kd-border);
}



.key-dates-profile-card h3,
.key-dates-form-intro h3 {
    margin: 0;

    color:
        var(--kd-purple-dark);

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: 1.65rem;

    font-weight: 500;
}



.key-dates-profile-status {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    min-height: 30px;

    padding:
        5px 12px;

    border:
        1px solid rgba(196, 154, 70, 0.28);

    border-radius: 999px;

    background:
        rgba(227, 201, 130, 0.16);

    color: #876522;

    font-size: 0.7rem;
    font-weight: 700;

    letter-spacing: 0.08em;
}



.key-dates-profile-details {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 18px;

    margin-top: 26px;
}



.key-dates-profile-item {
    min-width: 0;

    padding: 18px;

    border:
        1px solid rgba(85, 50, 122, 0.11);

    border-radius: 16px;

    background:
        var(--kd-ivory);
}



.key-dates-profile-label {
    display: block;

    margin-bottom: 6px;

    color:
        var(--kd-text-soft);

    font-size: 0.76rem;
}



.key-dates-profile-item strong {
    display: block;

    overflow-wrap: anywhere;

    color:
        var(--kd-purple-dark);

    font-size: 0.95rem;
    font-weight: 600;
}



.key-dates-edit-profile {
    margin-top: 24px;

    padding:
        10px 0;

    border: 0;

    border-bottom:
        1px solid var(--kd-purple);

    background: transparent;

    color:
        var(--kd-purple);

    font: inherit;

    font-size: 0.88rem;
    font-weight: 600;

    cursor: pointer;
}



/* =========================================================
   FORMS
========================================================= */

.key-dates-profile-form,
#key-dates-other-panel {
    padding: 34px;

    border:
        1px solid var(--kd-border);

    border-radius: 24px;

    background:
        var(--kd-white);

    box-shadow:
        var(--kd-shadow);
}



.key-dates-form-intro {
    margin-bottom: 28px;
}



.key-dates-form-intro p:last-child {
    max-width: 680px;

    margin:
        12px 0 0;

    color:
        var(--kd-text-soft);

    line-height: 1.65;
}



.key-dates-field {
    margin-top: 20px;
}



.key-dates-field label {
    display: block;

    margin-bottom: 8px;

    color:
        var(--kd-purple-dark);

    font-size: 0.88rem;
    font-weight: 600;
}



.key-dates-field input {
    width: 100%;

    min-height: 50px;

    box-sizing: border-box;

    padding:
        11px 14px;

    border:
        1px solid rgba(85, 50, 122, 0.20);

    border-radius: 12px;

    outline: none;

    background: #fffdf9;

    color:
        var(--kd-text);

    font: inherit;

    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        background 0.2s ease;
}



.key-dates-field input:focus {
    border-color:
        var(--kd-purple-soft);

    background: #ffffff;

    box-shadow:
        0 0 0 3px rgba(85, 50, 122, 0.08);
}



.key-dates-field input[readonly] {
    background: #f4f0e9;

    color:
        var(--kd-text-soft);

    cursor: default;
}



.key-dates-field input::placeholder {
    color: #a29aa6;
}



.key-dates-save-profile {
    min-height: 48px;

    margin-top: 28px;

    padding:
        11px 22px;

    border:
        1px solid var(--kd-purple);

    border-radius: 999px;

    background:
        var(--kd-purple);

    color: #ffffff;

    font: inherit;

    font-size: 0.9rem;
    font-weight: 600;

    cursor: pointer;

    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease,
        background 0.2s ease;
}



.key-dates-save-profile:hover {
    background:
        var(--kd-purple-dark);

    box-shadow:
        0 9px 24px rgba(57, 32, 79, 0.18);

    transform:
        translateY(-1px);
}



.key-dates-form-message,
.key-dates-generate-message {
    margin-top: 18px;

    padding:
        13px 16px;

    border:
        1px solid rgba(85, 50, 122, 0.15);

    border-radius: 12px;

    background:
        var(--kd-ivory-soft);

    color:
        var(--kd-text);

    font-size: 0.88rem;

    line-height: 1.5;
}



/* =========================================================
   GOOGLE PLACES
========================================================= */

.pac-container {
    z-index:
        100000 !important;

    margin-top: 4px;

    border:
        1px solid rgba(85, 50, 122, 0.16);

    border-radius: 12px;

    background: #ffffff;

    box-shadow:
        0 12px 32px rgba(57, 32, 79, 0.14);

    font-family: inherit;
}



.pac-item {
    padding:
        9px 12px;

    border-top:
        1px solid rgba(85, 50, 122, 0.08);

    color:
        var(--kd-text-soft);

    cursor: pointer;
}



.pac-item:first-child {
    border-top: 0;
}



.pac-item:hover {
    background:
        var(--kd-ivory);
}



.pac-item-query {
    color:
        var(--kd-purple-dark);

    font-size: 0.9rem;
}



/* =========================================================
   AREA SELECTOR
========================================================= */

.key-dates-area-options {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 14px;

    max-width: 900px;

    margin:
        28px auto 0;
}



.key-dates-area-option {
    display: flex;

    align-items: center;

    gap: 16px;

    min-height: 105px;

    padding:
        20px;

    border:
        1px solid var(--kd-border);

    border-radius: 18px;

    background:
        rgba(255, 255, 255, 0.72);

    color:
        var(--kd-text);

    text-align: left;

    font: inherit;

    cursor: pointer;

    transition:
        border-color 0.2s ease,
        background 0.2s ease,
        color 0.2s ease,
        box-shadow 0.2s ease,
        transform 0.2s ease;
}



.key-dates-area-option:hover {
    border-color:
        rgba(85, 50, 122, 0.38);

    background: #ffffff;

    transform:
        translateY(-1px);
}



.key-dates-area-icon {
    display: flex;

    flex:
        0 0 auto;

    align-items: center;
    justify-content: center;

    width: 48px;
    height: 48px;

    border:
        1px solid rgba(196, 154, 70, 0.34);

    border-radius: 50%;

    color:
        var(--kd-gold);

    font-size: 1.35rem;
}



.key-dates-area-text {
    display: block;

    min-width: 0;
}



.key-dates-area-text strong {
    display: block;

    color:
        var(--kd-purple-dark);

    font-size: 0.98rem;
}



.key-dates-area-text small {
    display: block;

    margin-top: 5px;

    color:
        var(--kd-text-soft);

    font-size: 0.8rem;

    line-height: 1.45;
}



.key-dates-area-option.is-active {
    border-color:
        var(--kd-purple);

    background:
        var(--kd-purple);

    box-shadow:
        0 8px 22px rgba(85, 50, 122, 0.18);
}



.key-dates-area-option.is-active
.key-dates-area-icon {
    border-color:
        rgba(227, 201, 130, 0.55);

    color:
        var(--kd-gold-light);
}



.key-dates-area-option.is-active
.key-dates-area-text strong {
    color: #ffffff;
}



.key-dates-area-option.is-active
.key-dates-area-text small {
    color:
        rgba(255, 255, 255, 0.76);
}



/* =========================================================
   PERIOD SELECTOR
========================================================= */

.key-dates-period-options {
    display: grid;

    grid-template-columns:
        repeat(5, minmax(0, 1fr));

    gap: 12px;

    max-width: 900px;

    margin:
        28px auto 0;
}



.key-dates-period-option {
    min-height: 88px;

    padding:
        16px 12px;

    border:
        1px solid var(--kd-border);

    border-radius: 16px;

    background:
        rgba(255, 255, 255, 0.72);

    color:
        var(--kd-text);

    font: inherit;

    cursor: pointer;

    transition:
        border-color 0.2s ease,
        background 0.2s ease,
        color 0.2s ease,
        box-shadow 0.2s ease,
        transform 0.2s ease;
}



.key-dates-period-option span,
.key-dates-period-option strong {
    display: block;
}



.key-dates-period-option span {
    color:
        var(--kd-purple-dark);

    font-weight: 600;
}



.key-dates-period-option strong {
    margin-top: 7px;

    color:
        var(--kd-gold);

    font-size: 0.86rem;
}



.key-dates-period-option:hover {
    border-color:
        rgba(85, 50, 122, 0.38);

    background: #ffffff;

    transform:
        translateY(-1px);
}



.key-dates-period-option.is-active {
    border-color:
        var(--kd-purple);

    background:
        var(--kd-purple);

    box-shadow:
        0 8px 22px rgba(85, 50, 122, 0.18);
}



.key-dates-period-option.is-active span {
    color: #ffffff;
}



.key-dates-period-option.is-active strong {
    color:
        var(--kd-gold-light);
}



/* =========================================================
   GENERATE
========================================================= */

.key-dates-generate-section {
    max-width: 900px;

    margin:
        38px auto 0;
}



.key-dates-generate-card {
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 34px;

    padding:
        32px 34px;

    border:
        1px solid rgba(196, 154, 70, 0.26);

    border-radius: 24px;

    background:
        linear-gradient(
            135deg,
            rgba(255, 255, 255, 0.96),
            rgba(246, 240, 229, 0.96)
        );

    box-shadow:
        var(--kd-shadow);
}



.key-dates-generate-card p:last-child {
    max-width: 540px;

    margin:
        10px 0 0;

    color:
        var(--kd-text-soft);

    line-height: 1.6;
}



.key-dates-generate-button {
    flex:
        0 0 auto;

    min-height: 52px;

    padding:
        12px 24px;

    border:
        1px solid var(--kd-gold);

    border-radius: 999px;

    background:
        var(--kd-gold);

    color: #ffffff;

    font: inherit;

    font-size: 0.9rem;
    font-weight: 700;

    cursor: pointer;

    box-shadow:
        0 9px 24px rgba(196, 154, 70, 0.20);

    transition:
        background 0.2s ease,
        transform 0.2s ease,
        box-shadow 0.2s ease;
}



.key-dates-generate-button:hover {
    background: #ad8335;

    box-shadow:
        0 12px 28px rgba(196, 154, 70, 0.26);

    transform:
        translateY(-1px);
}



.key-dates-generate-button:disabled,
.key-dates-save-profile:disabled {
    opacity: 0.55;

    cursor: default;

    transform: none;

    box-shadow: none;
}



/* =========================================================
   RESULT
========================================================= */

.key-dates-result {
    max-width: 900px;

    margin:
        48px auto 0;

    overflow: hidden;

    border:
        1px solid var(--kd-border);

    border-radius: 26px;

    background:
        var(--kd-white);

    box-shadow:
        var(--kd-shadow);
}



.key-dates-result-header {
    display: flex;

    align-items: center;

    gap: 20px;

    padding:
        30px 34px;

    border-bottom:
        1px solid var(--kd-border);

    background:
        linear-gradient(
            135deg,
            rgba(246, 240, 229, 0.82),
            rgba(255, 255, 255, 0.96)
        );
}



.key-dates-result-symbol {
    display: flex;

    flex:
        0 0 auto;

    align-items: center;
    justify-content: center;

    width: 58px;
    height: 58px;

    border:
        1px solid rgba(196, 154, 70, 0.36);

    border-radius: 50%;

    color:
        var(--kd-gold);

    font-size: 1.6rem;
}



.key-dates-result-period {
    margin:
        0 0 5px;

    color:
        var(--kd-gold);

    font-size: 0.7rem;
    font-weight: 700;

    letter-spacing: 0.12em;
}



.key-dates-result-header h2 {
    margin: 0;

    color:
        var(--kd-purple-dark);

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: 1.8rem;

    font-weight: 500;
}



.key-dates-result-date {
    margin:
        5px 0 0;

    color:
        var(--kd-text-soft);

    font-size: 0.84rem;
}



.key-dates-loading {
    padding:
        60px 30px;

    text-align: center;
}



.key-dates-result-content {
    padding:
        10px 34px 34px;
}



.key-dates-reading {
    padding:
        28px 0;

    border-bottom:
        1px solid var(--kd-border);
}



.key-dates-reading:last-child {
    border-bottom: 0;
}



.key-dates-reading-title {
    display: flex;

    align-items: center;

    gap: 11px;

    margin-bottom: 12px;
}



.key-dates-reading-title span {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    width: 28px;

    color:
        var(--kd-gold);

    font-size: 1.1rem;
}



.key-dates-reading-title h3 {
    margin: 0;

    color:
        var(--kd-purple-dark);

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: 1.25rem;

    font-weight: 500;
}



.key-dates-reading p,
#key-dates-best-windows,
#key-dates-turning-points,
#key-dates-careful-periods,
#key-dates-key-dates {
    margin: 0;

    color:
        var(--kd-text);

    line-height: 1.78;
}



.key-dates-reading-main {
    margin-top: 24px;

    padding: 24px;

    border:
        1px solid rgba(196, 154, 70, 0.20);

    border-radius: 18px;

    background:
        var(--kd-ivory);
}



.key-dates-reading-guidance {
    margin-top: 6px;

    padding: 25px;

    border:
        1px solid rgba(85, 50, 122, 0.13);

    border-radius: 18px;

    background:
        rgba(85, 50, 122, 0.045);
}



/* =========================================================
   NOTE
========================================================= */

.key-dates-note {
    padding:
        0 0 80px;
}



.key-dates-note-inner {
    display: flex;

    align-items: center;
    justify-content: center;

    gap: 14px;

    max-width: 820px;

    margin:
        0 auto;

    padding:
        22px 28px;

    border-top:
        1px solid rgba(196, 154, 70, 0.25);

    border-bottom:
        1px solid rgba(196, 154, 70, 0.25);

    color:
        var(--kd-text-soft);

    text-align: center;
}



.key-dates-note-symbol {
    flex:
        0 0 auto;

    color:
        var(--kd-gold);

    font-size: 1.25rem;
}



.key-dates-note-inner p {
    margin: 0;

    font-size: 0.88rem;

    line-height: 1.65;
}



/* =========================================================
   INFO MODAL
========================================================= */

.key-dates-modal {
    position: fixed;

    z-index: 99999;

    inset: 0;

    display: none;

    align-items: center;
    justify-content: center;

    padding: 24px;
}



.key-dates-modal.is-open {
    display: flex;
}



.key-dates-modal-backdrop {
    position: absolute;

    inset: 0;

    background:
        rgba(31, 19, 41, 0.58);

    backdrop-filter:
        blur(3px);
}



.key-dates-modal-dialog {
    position: relative;

    z-index: 2;

    width:
        min(560px, 100%);

    max-height:
        calc(100vh - 48px);

    overflow-y: auto;

    padding: 38px;

    border:
        1px solid rgba(196, 154, 70, 0.25);

    border-radius: 24px;

    background: #fffdf9;

    box-shadow:
        0 24px 70px rgba(20, 10, 30, 0.25);
}



.key-dates-modal-close {
    position: absolute;

    top: 14px;
    right: 16px;

    width: 34px;
    height: 34px;

    padding: 0;

    border: 0;

    background: transparent;

    color:
        var(--kd-text-soft);

    font-size: 1.65rem;

    cursor: pointer;
}



.key-dates-modal-symbol {
    display: flex;

    align-items: center;
    justify-content: center;

    width: 54px;
    height: 54px;

    margin-bottom: 18px;

    border:
        1px solid rgba(196, 154, 70, 0.34);

    border-radius: 50%;

    color:
        var(--kd-gold);

    font-size: 1.45rem;
}



.key-dates-modal-eyebrow {
    margin:
        0 0 8px;

    color:
        var(--kd-gold);

    font-size: 0.7rem;
    font-weight: 700;

    letter-spacing: 0.14em;
}



.key-dates-modal-dialog h2 {
    margin:
        0 0 26px;

    color:
        var(--kd-purple-dark);

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: 1.85rem;

    font-weight: 500;

    line-height: 1.2;
}



.key-dates-modal-section {
    padding:
        18px 0;

    border-top:
        1px solid var(--kd-border);
}



.key-dates-modal-section h3 {
    margin:
        0 0 7px;

    color:
        var(--kd-purple-dark);

    font-size: 0.98rem;
}



.key-dates-modal-section p {
    margin: 0;

    color:
        var(--kd-text-soft);

    font-size: 0.9rem;

    line-height: 1.65;
}



.key-dates-modal-button {
    width: 100%;

    min-height: 48px;

    margin-top: 18px;

    border:
        1px solid var(--kd-purple);

    border-radius: 999px;

    background:
        var(--kd-purple);

    color: #ffffff;

    font: inherit;
    font-weight: 600;

    cursor: pointer;
}



/* =========================================================
   HEADER STARS BALANCE
========================================================= */

.header-stars-balance {
    min-width: 58px;
    height: 38px;

    padding:
        0 13px;

    display: inline-flex;

    align-items: center;
    justify-content: center;

    gap: 6px;

    border:
        1px solid rgba(213, 173, 85, 0.42);

    border-radius: 999px;

    color: #3f236f;

    background:
        rgba(255, 250, 241, 0.72);

    text-decoration: none;

    font-size: 14px;
    font-weight: 700;

    transition:
        transform 0.2s ease,
        border-color 0.2s ease,
        background 0.2s ease;
}



.header-stars-balance:hover {
    transform:
        translateY(-1px);

    border-color:
        rgba(213, 173, 85, 0.75);

    background: #fffaf1;
}



.header-stars-icon {
    color: #d5ad55;

    font-size: 16px;

    line-height: 1;
}



/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 900px) {

    .key-dates-period-options {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }


    .key-dates-profile-details {
        grid-template-columns: 1fr;
    }


    .key-dates-generate-card {
        align-items: flex-start;

        flex-direction: column;
    }


    .key-dates-generate-button {
        width: 100%;
    }

}



@media (max-width: 700px) {

    .key-dates-container {
        width:
            min(100% - 30px, 1120px);
    }


    .key-dates-hero {
        padding:
            116px 0 65px;
    }


    .key-dates-back {
        position: static;

        display: inline-block;

        margin-bottom: 27px;

        font-size: 0.88rem;
    }


    .key-dates-hero-symbol {
        width: 57px;
        height: 57px;

        font-size: 1.6rem;
    }


    .key-dates-hero h1 {
        font-size: 2.45rem;
    }


    .key-dates-hero-text {
        font-size: 0.95rem;

        line-height: 1.7;
    }


    .key-dates-badges {
        flex-wrap: wrap;
    }


    .key-dates-star-one {
        left: 4%;
    }


    .key-dates-star-two {
        right: 7%;
    }


    .key-dates-star-three {
        right: 4%;
    }


    .key-dates-experience {
        padding:
            50px 0 60px;
    }


    .key-dates-section-heading {
        gap: 15px;
    }


    .key-dates-section h2,
    .key-dates-generate-card h2 {
        font-size: 1.55rem;
    }


    .key-dates-person-tabs {
        grid-template-columns: 1fr;
    }


    .key-dates-profile-card,
    .key-dates-profile-form,
    #key-dates-other-panel {
        padding:
            24px 20px;

        border-radius: 20px;
    }


    .key-dates-profile-card-header {
        flex-direction: column;

        gap: 12px;
    }


    .key-dates-profile-details {
        gap: 10px;
    }


    .key-dates-profile-item {
        padding: 15px;
    }


    .key-dates-area-options {
        grid-template-columns: 1fr;

        gap: 10px;
    }


    .key-dates-area-option {
        min-height: 88px;

        padding:
            16px;
    }


    .key-dates-area-icon {
        width: 43px;
        height: 43px;
    }


    .key-dates-period-options {
        grid-template-columns: 1fr;

        gap: 9px;
    }


    .key-dates-period-option {
        min-height: 58px;

        display: flex;

        align-items: center;
        justify-content: space-between;

        padding:
            13px 16px;

        text-align: left;
    }


    .key-dates-period-option strong {
        margin-top: 0;
    }


    .key-dates-generate-card {
        padding:
            25px 20px;

        border-radius: 20px;
    }


    .key-dates-result {
        border-radius: 20px;
    }


    .key-dates-result-header {
        align-items: flex-start;

        padding:
            24px 20px;
    }


    .key-dates-result-symbol {
        width: 48px;
        height: 48px;
    }


    .key-dates-result-header h2 {
        font-size: 1.5rem;
    }


    .key-dates-result-content {
        padding:
            5px 20px 24px;
    }


    .key-dates-reading {
        padding:
            23px 0;
    }


    .key-dates-reading-main,
    .key-dates-reading-guidance {
        padding: 19px;
    }


    .key-dates-note {
        padding-bottom: 58px;
    }


    .key-dates-note-inner {
        align-items: flex-start;

        padding:
            19px 10px;

        text-align: left;
    }


    .key-dates-modal {
        padding: 14px;
    }


    .key-dates-modal-dialog {
        max-height:
            calc(100vh - 28px);

        padding:
            30px 22px 24px;

        border-radius: 20px;
    }


    .key-dates-modal-dialog h2 {
        padding-right: 20px;

        font-size: 1.55rem;
    }


    .header-stars-balance {
        min-width: 52px;
        height: 36px;

        padding:
            0 10px;

        gap: 5px;

        font-size: 13px;
    }


    .header-stars-icon {
        font-size: 15px;
    }

}



@media (max-width: 420px) {

    .key-dates-hero h1 {
        font-size: 2rem;
    }


    .key-dates-result-header {
        gap: 13px;
    }


    .key-dates-result-symbol {
        width: 42px;
        height: 42px;

        font-size: 1.25rem;
    }


    .key-dates-area-option {
        align-items: flex-start;
    }

}