/* Using your brand's color palette and fonts */
:root {
    --color-primary: #C3E4C0;
    --color-accent: #87AFC7;
    --color-accent-dark: #7098B6;
    --color-neutral: #F4F4F4;
    --color-text-primary: #2C3E50;
    --color-text-secondary: #6B7280;
}

body {
    margin: 0;
    font-family: 'Inter', sans-serif;
    background: linear-gradient(to bottom right, #C3E4C0, #8DC0E0);
    color: var(--color-text-primary);
}

/* Centering container */
.container {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    padding: 20px;
    box-sizing: border-box;
}

.content {
    text-align: center;
    max-width: 550px;
}

.brand-name {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--color-text-secondary);
    margin-bottom: 0.5rem;
}

h1 {
    font-size: 3rem;
    font-weight: 700;
    margin: 0;
    line-height: 1.2;
}

p {
    font-size: 1.1rem;
    color: var(--color-text-secondary);
    line-height: 1.6;
    margin-top: 1rem;
    margin-bottom: 2.5rem;
}

/* Form Styles */
.input-group {
    display: flex;
    justify-content: center;
    width: 100%;
    gap: 10px;
}

.waitlist-form {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
}

.waitlist-form input[type="email"] {
    padding: 15px;
    font-size: 1rem;
    border: 1px solid #ced4da;
    border-radius: 8px;
    width: 60%;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.waitlist-form button {
    padding: 15px 25px;
    font-size: 1rem;
    font-weight: 700;
    border: none;
    border-radius: 8px;
    background-color: #3477A2;
    color: white;
    cursor: pointer;
    transition: background-color 0.2s;
}

.waitlist-form button:hover {
    background-color: #2C668C;
}

.user-type-selection {
    display: flex;
    gap: 15px;
    font-size: 0.9rem;
    color: var(--color-text-secondary);
}

.user-type-selection label {
    display: flex;
    align-items: center;
    gap: 5px;
    cursor: pointer;
}

.practitioner-note {
    margin-top: 3rem;
    font-size: 1rem;
    max-width: 450px;
    margin-left: auto;
    margin-right: auto;
}

:focus-visible {
    outline: 3px solid var(--color-primary, #007bff);
    outline-offset: 2px;
    border-radius: 4px;
}

/*
==============================================
SVG Animations
==============================================
*/

/* Initial icon animations for a smooth entry */
.hybrid-graphic .patient-icon,
.hybrid-graphic .practitioner-icon {
    opacity: 0;
    transform: translateY(20px);
    animation: fade-in-up 1s ease-out forwards;
}

.hybrid-graphic .patient-icon {
    animation-delay: 0.2s;
}

.hybrid-graphic .practitioner-icon {
    /* CORRECTED: Appears exactly when the second line finishes */
    animation-delay: 4.5s;
}

@keyframes fade-in-up {
    from {
        opacity: 0;
        transform: translateY(20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Line drawing animation */
.hybrid-graphic .line {
    opacity: 0;
    animation: draw-line 2s ease-out forwards;
}

.hybrid-graphic .line-one {
    /* Starts after patient icon appears */
    animation-delay: 0.5s;
}

.hybrid-graphic .line-two {
    /* CORRECTED: Starts exactly when the first line ends */
    animation-delay: 2.5s;
}

@keyframes draw-line {
    to {
        stroke-dashoffset: 0;
        opacity: 1;
    }
}

/* Center node animation */
.center-node {
    opacity: 0;
    /* This line makes it invisible initially */
    transform-origin: center;
    animation: pop-in 0.5s ease-out forwards;
    animation-delay: 2.5s;
}

@keyframes pop-in {
    from {
        opacity: 0;
        transform: scale(0.5);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}

/* In your SVG Animations section in style.css */

/* Star constellation animation - now with a subtle twinkle */
.star {
    fill: var(--color-text-secondary);
    opacity: 0;
    transform-origin: center center;
    /* Ensure scaling is from the middle */
    animation: star-fade-in 0.8s ease-out forwards, twinkle 2.5s ease-in-out infinite alternate;
}

/* This keyframe animates the star appearing */
@keyframes star-fade-in {
    from {
        opacity: 0;
        transform: scale(0.5);
    }

    to {
        opacity: 0.7;
        /* Final state after initial fade-in */
        transform: scale(1);
    }
}

/* This keyframe animates the star twinkling (fading and scaling) */
@keyframes twinkle {
    0% {
        opacity: 0.7;
        transform: scale(1);
    }

    50% {
        opacity: 1;
        /* Brighter */
        transform: scale(1.1);
        /* Slightly larger */
    }

    100% {
        opacity: 0.7;
        transform: scale(1);
    }
}

/*
==============================================
Responsive Styles
==============================================
*/

/* For Tablets (screens smaller than 768px) */
@media (max-width: 768px) {
    h1 {
        font-size: 2.5rem;
    }

    p {
        font-size: 1rem;
    }
}

/* For Mobile Phones (screens smaller than 480px) */
@media (max-width: 480px) {
    h1 {
        font-size: 2rem;
    }

    .hybrid-graphic {
        width: 100%;
        height: auto;
    }

    .input-group {
        flex-direction: column;
        align-items: stretch;
        width: 90%;
        margin: 0 auto;
    }

    .waitlist-form input[type="email"] {
        width: auto;
        text-align: center;
    }

    .user-type-selection {
        flex-direction: column;
        align-items: center;
    }

    .practitioner-note {
        margin-top: 2rem;
    }
}

/* Footer */
.footer-links {
    margin-top: 2rem;
    font-size: 0.8rem;
    color: var(--color-text-secondary);
}

.footer-links a {
    color: var(--color-text-primary);
    font-weight: bold;
    text-decoration: none;
}

.footer-links a:hover {
    text-decoration: underline;
}

/* --- Cookie Banner Styles --- */

.cookie-banner {
    /* Positioning */
    position: fixed;
    inset: auto 0 0 0;
    /* Same as bottom: 0; left: 0; right: 0; */
    z-index: 9999;

    /* Visuals & Spacing */
    background-color: #ffffff;
    padding: 1.25rem;
    /* 20px for better spacing */
    border-top: 1px solid #e5e7eb;
    box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.08);
    /* Softer, more modern shadow */
    font-family: 'Inter', system-ui, sans-serif;
    color: #374151;
    /* A slightly softer black for text */

    /* This is controlled by your script, but it's good practice */
    display: none;
}

.cookie-content {
    max-width: 960px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    /* Allows items to wrap on smaller screens */
    gap: 1rem;
    /* 16px space between text and buttons */
}

.cookie-content p {
    margin: 0;
    flex: 1 1 300px;
    /* Allows the text to grow and shrink */
    line-height: 1.5;
    /* Improves readability */
}

.cookie-content a {
    color: #3477A2;
    /* Your brand color */
    text-decoration: underline;
}

.cookie-actions {
    display: flex;
    gap: 0.75rem;
    /* 12px space between buttons */
}

/* Base button style for both Accept and Reject */
.cookie-btn {
    padding: 10px 16px;
    border: 1px solid transparent;
    border-radius: 8px;
    cursor: pointer;
    font-weight: 500;
    /* Medium weight for clarity */
    font-size: 0.9rem;
    transition: background-color 0.2s ease, transform 0.1s ease;
}

.cookie-btn:active {
    transform: translateY(1px);
    /* Adds a subtle "press" effect */
}

/* Specific button styles */
.btn-reject {
    background-color: #fff;
    border-color: #cbd5e1;
    /* Light gray border */
    color: #4b5563;
}

.btn-reject:hover {
    background-color: #f8fafc;
    /* Very light gray on hover */
}

.btn-accept {
    background-color: #3477A2;
    /* Your brand primary color */
    color: #ffffff;
}

.btn-accept:hover {
    background-color: #2c668b;
    /* A slightly darker shade on hover */
}


/* --- Responsive Styles for Mobile --- */
@media (max-width: 640px) {
    .cookie-banner {
        /* Reduce vertical padding on mobile for a slimmer bar */
        padding: 0.75rem 1rem;
    }

    .cookie-content {
        /* Keep it as a row, but allow wrapping if needed */
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        text-align: left;
        /* Revert text-align from center */
    }

    .cookie-content p {
        /* Allow the text to be more flexible on small screens */
        flex-basis: 60%;
        line-height: 1.4;
        /* Slightly tighter line-height */
        font-size: 0.85rem;
        /* Slightly smaller font on mobile */
    }

    .cookie-actions {
        /* Ensure buttons don't take up the full width */
        width: auto;
    }

    .cookie-btn {
        /* Make buttons a bit smaller on mobile */
        padding: 8px 12px;
        flex-grow: 0;
        /* Stop buttons from growing */
    }
}