@import url('https://fonts.googleapis.com/css2?family=Lora:wght@600;700&family=Poppins:wght@400;700&display=swap');

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    height: 97%;
}

body {
    font-family: 'Poppins', sans-serif !important;
    font-size: 16px !important;
    line-height: 1.5 !important;
    color: #333 !important;
    height: 100%;
    background: linear-gradient(160deg, #f5f0e8 0%, #ede4d0 100%);
}

#logoContainer {
    display: flex;
    align-items: center;
    font-size: xx-large;
    height: 100px;
    width: 100%;
    justify-content: space-evenly;
}

#mainContainer {
    display: flex;
    flex-direction: column;
    justify-content: space-evenly;
    align-items: center;
    height: 100%;
}

#logo {
    width: 150px;
}

#infoButton {
    font-size: x-large;
    cursor: pointer;
    top: 15px;
    right: 15px;
    position: absolute;
    color: #000000B8;
}

#openWinModalBtn {
    font-size: x-large;
    cursor: pointer;
    top: 15px;
    right: 50px;
    position: absolute;
    color: #000000B8;
    display: none;
}

#clueButton {
    display: none;
    width: 230px;
    height: 35px;
    margin-top: 10px;
    margin-bottom: 10px;
    border: solid #a07830 1.5px;
    border-radius: 25px;
    font-size: 20px;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    background: linear-gradient(135deg, #c8962a, #e6b84a);
    color: #2d1a00;
    font-weight: bold;
    text-align: center;
}

#wordsContainer {
    max-width: 750px;
    margin: 0 auto;
    margin-top: 10px;
    padding: 0 30px;
}

.keyboardContainer {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 97%;
}

.keyboardRow {
    display: flex;
    justify-content: space-around;
    max-width: 650px;
    width: 100%;
}

.wordGuess {
    display: flex;
    justify-content: center;
    font-size: xx-large;
}

.letterBox {
    width: 50px;
    height: 50px;
    margin: 5px;
    display: flex;
    justify-content: center;
    align-items: center;
    border: 2px solid #c8a96e;
    background-color: #fdf8f0;
    opacity: 90%;
    border-radius: 8px;
    box-shadow: 2px 3px 0px #a07840;
}

.keyboardLetter,
#letterKeyRemove,
#letterKeyEnter {
    border: 1px solid #a89878;
    background: #d4c9b0;
    font-weight: bold;
    height: 50px;
    display: flex;
    flex-grow: 1;
    justify-content: center;
    align-items: center;
    margin: 0.75%;
    border-radius: 5px;
    box-shadow: 2px 2px #8a7560;
    color: #2d2417;
    width: 0px;
}

#keyboardRow2 {
    padding: 0px 15px;
}

#letterKeyEnter {
    width: 50px;
    font-size: 10.5pt;
}

.keyboardLetter:hover,
#letterKeyRemove:hover,
#letterKeyEnter:hover {
    cursor: pointer;
    background-color: #b8aa90;
}

#aboutModalHeader,
#aboutModalClose {
    text-align: center;
}

#aboutModalTitle {
    display: inline;
    font-family: 'Lora', serif;
    letter-spacing: 0.5px;
}

#winModalTitle {
    font-family: 'Lora', serif;
    letter-spacing: 0.5px;
}

.aboutModal {
    max-width: 655px;
}

.centerModey {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
}

#invalidWordModal,
#invalidLengthModal,
#clueModal {
    width: 325px;
}

.infoText {
    text-align: center;
    margin-top: 10px;
    font-size: large;
}

.modal-body {
    padding-top: 5px;
}

.modal-footer,
.infoText #clueText {
    text-align: center !important;
    margin: 0px;
}

#winModalContainer {
    width: auto;
    max-width: 550px;
}

#winModalHeader {
    font-weight: bold;
    text-align: center;
    font-size: larger;
}

#scriptureBook {
    margin-bottom: 15px;
    margin-top: 5px;
    text-align: center;
    display: none;
}

#scriptureText {
    margin-bottom: 20px;
    font-size: smaller;
    font-style: italic;
    text-align: center;
}

#readMoreLink {
    font-size: small;
    font-style: italic;
    display: none;
}

#bookSelectContainer {
    display: flex;
    align-items: center;
    justify-content: space-evenly;
    margin-bottom: 15px;
}

#bookSelect {
    flex-grow: 1;
    margin-left: 5px;
}

#correctBookGuess,
#wrongBookGuess {
    display: none;
    font-size: larger;
}

#correctBookGuess {
    color: #69ab63;
}

#wrongBookGuess {
    color: #a94442;
}

.separator {
    display: flex;
    align-items: center;
    margin-bottom: 5px;
}

.separator .line {
    height: 1px;
    flex: 1;
    background-color: #000;
}

.separator p {
    padding: 10px 15px 0px 15px;
    font-size: large;
}

.centerText {
    text-align: center;
}

#scoreSection,
#questionSection {
    display: none;
}

#scoreTotal {
    text-align: center;
    font-size: x-large;
}

#scoreWorkings {
    text-align: center;
    font-size: small;
}

#scoreDiv {
    margin-bottom: 20px;
}

#scoreDetails {
    display: flex;
    justify-content: space-evenly;
    align-items: center;
}

.verticalBreak {
    border-left: solid #6e6e6e 1px;
    height: 60px;
}

#questionSection,
#infoModalBody {
    font-size: smaller;
}

#contactInfo {
    font-size: smaller;
}


#showWord {
    width: 120px;
    background-color: #474747;
    color: #fff;
    border-radius: 6px;
    text-align: center;
    font-size: medium;
    margin-top: 15px;
}

#greenText {
    color: #69ab63;
    font-weight: bold;
}

#orangeText {
    color: #c7af47;
    font-weight: bold;
}

#greyText {
    color: #6e7476;
    font-weight: bold;
}

.letterInWord {
    animation: letterAnimation 0.75s ease 0s 1 normal forwards, letterInWordAnimation 1.25s ease 0s 1 normal forwards;
}

.correctLetter {
    animation: letterAnimation 0.75s ease 0s 1 normal forwards, correctLetterAnimation 1.25s ease 0s 1 normal forwards;
}

.wrongLetter {
    animation: letterAnimation 0.75s ease 0s 1 normal forwards, wrongLetterAnimation 1.25s ease 0s 1 normal forwards;
}

@keyframes letterInWordAnimation {
    to {
        background-color: #c7af47;
    }

    to {
        color: white;
    }
}

@keyframes correctLetterAnimation {
    to {
        background-color: #69ab63;
    }

    to {
        color: white;
    }
}

@keyframes wrongLetterAnimation {
    to {
        background-color: #6e7476;
    }

    to {
        color: white;
    }
}

@keyframes letterAnimation {

    0% {
        opacity: 1;
    }

    50% {
        opacity: 0.2;
    }

    100% {
        opacity: 1;
    }
}

/* Consent Banner */
#consentBanner {
    display: none;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: #2c2c2c;
    color: #fff;
    padding: 14px 20px;
    z-index: 9999;
    box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.3);
}

#consentBannerInner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 900px;
    margin: 0 auto;
    gap: 20px;
    flex-wrap: wrap;
}

#consentText strong {
    font-size: medium;
    display: block;
    margin-bottom: 3px;
}

#consentText p {
    margin: 0 0 4px;
    font-size: 12px;
    color: #ccc;
    line-height: 1.4;
}

#consentText a {
    color: #a8d5a2;
    font-size: 12px;
}

#consentButtons {
    display: flex;
    gap: 10px;
    flex-shrink: 0;
}

/* Privacy Footer */
#privacyFooter {
    text-align: center;
    font-size: 11px;
    padding: 6px 0 10px;
    color: #999;
}

#privacyFooter a,
#privacyFooter #manageConsent {
    color: #999;
    text-decoration: underline;
}

#privacyModalBody {
    max-height: 60vh;
    overflow-y: auto;
    font-size: 12px;
    line-height: 1.4;
}

#privacyModalBody p {
    margin-bottom: 4px;
}

#privacyModalBody p strong {
    display: block;
    margin-top: 10px;
}

#privacyModalBody p:first-child strong {
    margin-top: 0;
}

#privacyModalBody ul {
    padding-left: 18px;
    margin-bottom: 4px;
}

#privacyModalBody ul li {
    margin-bottom: 3px;
}

@media only screen and (max-width: 900px) {
    .keyboardContainer {
        width: 94%;
    }

    .keyboardLetter,
    #letterKeyEnter,
    #letterKeyRemove {
        height: 45px;
    }

    #clueButton {
        font-size: 14px;
        width: 160px;
        height: 23px;
    }

}

@media only screen and (max-width: 600px) {
    .keyboardContainer {
        width: 94%;
    }

    .keyboardLetter,
    #letterKeyEnter,
    #letterKeyRemove {
        height: 40px;
    }

    .letterBox {
        width: 45px;
        height: 45px;
    }

    #logoContainer {
        height: 50px;
    }

    #logo {
        width: 125px;
    }

    #privacyModalBody {
        font-size: 11px;
    }
}

@media only screen and (max-width: 400px) {

    #wordsContainer {
        margin-top: 0px;
    }

    .letterBox {
        width: 37px;
        height: 37px;
        margin: 3px;
        font-size: 20pt;
    }

    #letterKeyEnter {
        width: 25px;
    }

    #logo {
        width: 100px;
    }
}

@media only screen and (min-width: 700px) {
    .aboutModal {
        width: 75% !important;
    }
}

@media only screen and (min-width: 450px) {
    #bookSelectContainer {
        justify-content: center;
    }

    #submitBookGuess {
        margin-left: 25px;
    }

    #bookSelect {
        margin-right: 25px;
    }
}