/* Custom Fonts */
@font-face {
    font-family: 'Atkinson Hyperlegible';
    src: url('../fonts/Atkinson-Hyperlegible-Regular.woff2') format('woff2'),
         url('../fonts/Atkinson-Hyperlegible-Regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Atkinson Hyperlegible';
    src: url('../fonts/Atkinson-Hyperlegible-Bold.woff2') format('woff2'),
         url('../fonts/Atkinson-Hyperlegible-Bold.woff') format('woff');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}

/* Base Styles */
body {
    font-family: 'Atkinson Hyperlegible', sans-serif;
    line-height: 1.6;
    background-color: var(--soft-cream); /* Custom property */
    color: var(--charcoal); /* Custom property */
}

/* icons bass style */
.bi {
    font-size: 1em;
    vertical-align: middle;
    margin: 3px;
}

/* Custom CSS Variables for Colors */
:root {
    --indigo: #4B4E9E;
    --coral: #FF6B6B;
    --soft-cream: #FFF9EF;
    --charcoal: #222;
    --sky-blue: #A0E7E5;

  /* Varianten met transparantie */
  --coral-10: rgba(255, 107, 107, 0.10); /* Coral met 15% opacity */
  --indigo-25: rgba(75, 78, 158, 0.25);
  --sky-blue-25: rgba(160, 231, 229, 0.25);
}

/* Utility Classes for Colors */
.bg-soft-cream { background-color: var(--soft-cream) !important; }
.text-charcoal { color: var(--charcoal) !important; }
.highlight-coral {
    background-color: var(--coral-10);
    color: var(--coral); /* Contrast for text on coral */
}
.highlight-indigo { color: var(--indigo) !important; }
.highlight-sky-blue {
    background-color: var(--sky-blue);
    color: var(--charcoal); /* Contrast for text on sky blue */
}

/* Header & Logo */
.logo-link {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    color: var(--charcoal);
}
.logo-text {
    font-family: 'Atkinson Hyperlegible', sans-serif; /* Explicitly use for logo text */
    font-weight: bold;
    font-size: 4.5rem; /* Larger size for logo text */
    color: var(--coral); /* Specific color for logo text */
}

.logo-text-lighter {
    font-family: 'Atkinson Hyperlegible', sans-serif; /* Explicitly use for logo text */
    font-weight: lighter;
    font-size: 4.5rem; /* Larger size for logo text */
    color: var(--indigo); /* Specific color for logo text */
}
.logo-link img {
    height: 60px; /* Adjust as needed for logo image */
    width: auto;
}

/* Main Content - Homepage */
.hero-section {
    max-width: 800px;
    margin: 0 auto;
    padding-top: 50px;
}

.tagline {
    font-weight: normal;
    font-size: 1.1rem;
    padding: 0.5rem 1.5rem;
    border-radius: 50px;
}

.bi-heart-fill {
    color: var(--coral);
}

.title-text {
    font-weight: bold;
    font-size: 3.5rem; /* Larger for titles */
    line-height: 1.2;
    color: var(--charcoal);
}

.lead-text {
    max-width: 650px;
    font-size: 1.2rem;
    color: var(--charcoal);
}

.link, .back-home-link {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    color: var(--indigo);
    font-weight: normal;
    font-size: 1.1rem;
    transition: color 0.3s ease;
}
.link:hover, .back-home-link:hover {
    color: var(--coral);
}
.manifesto-icon, .arrow-icon {
    font-size: 1.3em;
    line-height: 1;
}

.color-swatch {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    margin: 0 auto;
    border: 1px solid rgba(0,0,0,0.1); /* Subtle border for lighter colors */
}

/* Waitlist Section */
.waitlist-section {
    background-color: var(--soft-cream); /* Ensure background is soft cream */
    padding: 60px 0;
}

.waitlist-form {
    max-width: 500px;
    margin: 0 auto;
}

.email-input {
    border: 2px solid var(--sky-blue-25);
    border-radius: 50px 0 0 50px !important;
    padding: 0.8rem 1.5rem;
    font-size: 1.1rem;
    height: auto; /* Ensure vertical padding applies */
    box-shadow: none !important; /* Remove default focus shadow */
    transition: border-color 0.3s ease;
    background-color: var(--sky-blue-25);
}
.email-input:focus {
    border-color: var(--indigo);
}

.join-button {
    background-color: var(--indigo);
    color: white;
    border: 2px solid var(--indigo);
    border-radius: 0 50px 50px 0 !important;
    padding: 0.8rem 2rem;
    font-size: 1.1rem;
    font-weight: bold;
    transition: background-color 0.3s ease, border-color 0.3s ease;
    height: auto; /* Ensure vertical padding applies */
}
.join-button:hover {
    background-color: var(--coral);
    border-color: var(--coral);
    color: white;
}

/* Manifesto Page */
.page .content {
    max-width: 700px;
    margin: 0 auto;
    text-align: left;
    font-size: 1.15rem;
}
.page .heading {
    color: var(--charcoal);
    font-size: 2rem;
}
.page .lead-text {
    font-size: 1.15rem;
}


/* Privacy Page */
.privacy-page .privacy-content {
    max-width: 800px;
    margin: 0 auto;
    text-align: left;
    font-size: 1.05rem;
}
.privacy-page h2 {
    color: var(--indigo);
    font-size: 1.8rem;
}
.privacy-page ul {
    list-style-type: disc;
    padding-left: 25px;
}

/* Footer */
footer {
    background-color: var(--soft-cream);
    border-top: 1px solid rgba(0,0,0,0.05);
}

.copyright-text {
    color: var(--charcoal);
}

.social-icons a {
    margin: 0 8px;
    display: inline-block;
    color: #4B4E9E;
}

.privacy-link {
    color: var(--charcoal);
    text-decoration: none;
    transition: color 0.3s ease;
}
.privacy-link:hover {
    color: var(--indigo);
}


/* Responsive Adjustments */
@media (max-width: 768px) {
    .logo-text, .logo-text-lighter {
        font-size: 3.2rem;
    }
    .logo-link img {
        height: 50px;
    }
    .title-text {
        font-size: 2.5rem;
    }
    .lead-text {
        font-size: 1rem;
        padding: 0 15px;
    }
    .tagline {
        font-size: 1rem;
        padding: 0.4rem 1rem;
    }
    .waitlist-form {
        max-width: 90%;
    }
    .email-input, .join-button {
        padding: 0.6rem 1rem;
        font-size: 1rem;
    }
    .input-group {
        flex-wrap: wrap; /* Allow input and button to wrap */
    }
    .email-input {
        border-radius: 50px !important; /* Full rounded on small screens */
        margin-bottom: 10px;
        width: 100%;
    }
    .join-button {
        border-radius: 50px !important; /* Full rounded on small screens */
        width: 100%;
    }
    .social-icons {
        margin-top: 15px;
        margin-bottom: 15px;
    }
    .page .content,
    .privacy-page .privacy-content {
        padding: 0 15px;
    }
    .page .heading {
        font-size: 1.5rem;
    }
    .privacy-page h2 {
        font-size: 1.4rem;
    }
}

@media (max-width: 576px) {
    .title-text {
        font-size: 2rem;
    }
}