/******************************
*   ANIMATION
******************************/
.loading-gear {
    width: 200px;
    height: 200px;
    background: url(../images/crossword/loading-gear.gif) no-repeat left 50px;
}

.row [class*='col-'] {
    transition: all 0.5s ease-in-out;
}

.design-item {
    max-width: 311px;
}

.center-line {
    display: inline-block;
    width: 70px;
    height: 1px;
    border-top: 1px solid #bbb;
    margin: 15px;
}

/* INPUT FORM */
form .col-form-label,
form label {
    font-weight: 500;
}

#delete-button-list li button {
    padding: 0;
    color: #999999;
}
#delete-button-list li button:hover {
    color: #dc3545;
}

.license_explanation {
    height: 217px;
}

#crossword-form-license .col-form-label,
#crossword-form-license .form-check-label,
form label.font-weight-regular {
    font-weight: 400;
}

form .large-help {
    font-size: 1rem;
}

.solution_char {
    font-weight: normal;
    font-size: 0.9rem;
    margin-left: 2px;
}

form ul {
    padding: 0;
}

form ul li {
    list-style: none;
    margin-bottom: 5px;
}

/******************************
*  RESULT
******************************/
h1.cw-title {
    font-weight: 400;
}

.crossword .questions {
    column-count: 2;
    font-size: 1.2rem;
}

.crossword .cw-description {
    max-width: 800px;
}

.crossword .puzzle {
    overflow: hidden;
}

.cw-table {
    overflow: hidden;
    margin-bottom: 10px;
}

.cw-row {
    clear: both;
}

.cw-cell {
    width: 32px;
    height: 40px;
    line-height: 40px;
    padding: 0;
    float: left;
}

.cw-cell.char {
    border-right: #000 solid 1px;
    border-bottom: #000 solid 1px;
    background-color: #fff !important;
}

.cw-cell.char .preview {
    color: #aaaaaa;
}

.cw-cell.b-top {border-top: #000 solid 1px;}
.cw-cell.b-bottom {border-bottom: #000 solid 1px;}
.cw-cell.b-left {border-left: #000 solid 1px;}
.cw-cell.b-right {border-right: #000 solid 1px;}

.cw-cell.empty {
    background-color: #eeeeee;
}

.crossword .puzzle .char .hint {
    position: absolute;
    margin-top: 2px;
    margin-left: 2px;
    font-size: 12px;
    line-height: 12px;
    font-weight: 600;
}

.crossword .puzzle .char .solution {
    margin-top: 26px;
    padding-right: 2px;
    font-size: 12px;
    line-height: 12px;
    color: #000000;
}

/** SOLUTION */
.crossword .puzzle .solution-cells {
    clear: both;
}

.crossword .puzzle .solution-cells .word {
    margin: 0 4px 4px 0;
    white-space: nowrap;
    display: inline-block;
}

.crossword .solution-cells .char {
    border: #000 solid 1px;
    border-right: none;
}

.crossword .puzzle .solution-cells .char.last {
    border-right: #000 solid 1px;
}

.crossword .puzzle .solution-cells .char .hint {
    font-weight: 400;
}

.crossword .puzzle .solution-cells .char .preview {
    display: inline-block;
    text-align: center;
    width: 100%;
    line-height: 40px;
    color: #aaa;
}

.hints {
    max-width: 800px;
}

.hints ul {
    padding: 0;
}

.hints ul li {
    list-style: none;
    margin-bottom: 5px;
}

.result.print {
    padding: 0.5cm;
}

/******************************
*  FOOTER
******************************/
footer {
    background-color: #333;
    border-top: 1px solid #000;
    color: #e7e7e7;
    font-size: 0.9rem;
}

footer h3 {
    font-size: 1.2em;
    text-decoration: underline;
    color: #fff;
}

footer .nav a{
    color: #e7e7e7;
    padding: 5px 0;
}

footer .nav a:hover,
footer .nav a:focus,
footer .nav a:active {
    background-color: #333;
    color: #fff;
}

/******************************
*  ORDER FLOW
******************************/
.license-message {
    font-size: 0.8rem;
}

/******************************
*  DEBUG
******************************/
.debug {
    position: absolute;
    top: 0;
    right: 0;
    border: 1px solid #555;
    padding: 5px;
}

/******************************
*  THEMES
******************************/


/* Do not fill background for designs */
.theme:not(.none) .cw-cell.empty {background-color: transparent}
.theme:not(.none) .cw-cell.empty.b-top {border-top: none}
.theme:not(.none) .cw-cell.empty.last.b-right {border-right: none}
.theme:not(.none) .cw-row.last .cw-cell.empty.b-bottom {border-bottom: none}
.theme:not(.none) .cw-cell.empty.b-left {border-left: none}

.theme .cw-table {
    margin: 0 auto 10px auto;
}

.theme .solution-title,
.theme .watermark,
.theme .solution-cells {
    text-align: center;
}

.theme .solution-cells {
    max-width: 600px;
    margin: 0 auto;
}

/** LARGE PUZZLE FIXES */
.theme.height-12 h1,
.theme.height-13 h1,
.theme.height-14 h1,
.theme.height-15 h1,
.theme.height-16 h1,
.theme.height-17 h1,
.theme.height-18 h1 {
    padding-top: 70px;
}

.theme.height-19 h1,
.theme.height-20 h1,
.theme.height-21 h1,
.theme.height-22 h1,
.theme.height-23 h1,
.theme.height-24 h1 {
    padding-top: 50px;
}

.theme.height-14 {line-height: 1.3}
.theme.height-15,
.theme.height-16,
.theme.height-17,
.theme.height-18,
.theme.height-19,
.theme.height-20,
.theme.height-21,
.theme.height-22,
.theme.height-23,
.theme.height-24 {line-height: 1.2}

.theme.height-16 .crossword .puzzle .char .hint,
.theme.height-17 .crossword .puzzle .char .hint,
.theme.height-18 .crossword .puzzle .char .hint,
.theme.height-19 .crossword .puzzle .char .hint,
.theme.height-20 .crossword .puzzle .char .hint,
.theme.height-21 .crossword .puzzle .char .hint,
.theme.height-22 .crossword .puzzle .char .hint,
.theme.height-23 .crossword .puzzle .char .hint,
.theme.height-24 .crossword .puzzle .char .hint {
    margin-top: 1px;
    margin-left: 1px;
    font-size: 11px;
}

.theme.height-14 .crossword .puzzle .cw-cell {height: 37px;line-height: 37px;}
.theme.height-15 .crossword .puzzle .cw-cell {height: 36px;line-height: 36px;}
.theme.height-16 .crossword .puzzle .cw-cell {height: 35px;line-height: 35px;}
.theme.height-17 .crossword .puzzle .cw-cell {height: 34px;line-height: 34px;}
.theme.height-18 .crossword .puzzle .cw-cell {height: 32px;line-height: 32px;}
.theme.height-19 .crossword .puzzle .cw-cell {height: 30px;line-height: 30px;}
.theme.height-20 .crossword .puzzle .cw-cell {height: 29px;line-height: 29px;}
.theme.height-21 .crossword .puzzle .cw-cell {height: 28px;line-height: 28px;}
.theme.height-22 .crossword .puzzle .cw-cell {height: 26px;line-height: 26px;}

.theme.height-14 .crossword .puzzle .cw-cell .solution {margin-top: 22px;}
.theme.height-15 .crossword .puzzle .cw-cell .solution {margin-top: 22px;}
.theme.height-16 .crossword .puzzle .cw-cell .solution {margin-top: 21px;}
.theme.height-17 .crossword .puzzle .cw-cell .solution {margin-top: 20px;}
.theme.height-18 .crossword .puzzle .cw-cell .solution {margin-top: 19px;}
.theme.height-19 .crossword .puzzle .cw-cell .solution {margin-top: 16px;}
.theme.height-20 .crossword .puzzle .cw-cell .solution {margin-top: 16px;}
.theme.height-21 .crossword .puzzle .cw-cell .solution {margin-top: 15px;}
.theme.height-22 .crossword .puzzle .cw-cell .solution {margin-top: 13px;}

.theme.none.height-16 .crossword .puzzle .cw-cell {height: 33px;line-height: 33px;}
.theme.none.height-17 .crossword .puzzle .cw-cell {height: 33px;line-height: 33px;}
.theme.none.height-18 .crossword .puzzle .cw-cell {height: 33px;line-height: 33px;}
.theme.none.height-19 .crossword .puzzle .cw-cell {height: 32px;line-height: 32px;}
.theme.none.height-20 .crossword .puzzle .cw-cell {height: 31px;line-height: 31px;}
.theme.none.height-21 .crossword .puzzle .cw-cell {height: 30px;line-height: 30px;}
.theme.none.height-22 .crossword .puzzle .cw-cell {height: 28px;line-height: 28px;}
.theme.none.height-23 .crossword .puzzle .cw-cell {height: 27px;line-height: 27px;}
.theme.none.height-24 .crossword .puzzle .cw-cell {height: 26px;line-height: 26px;}
.theme.none.height-25 .crossword .puzzle .cw-cell {height: 25px;line-height: 25px;}
.theme.none.height-26 .crossword .puzzle .cw-cell {height: 24px;line-height: 24px;}
.theme.none.height-27 .crossword .puzzle .cw-cell {height: 23px;line-height: 23px;}
.theme.none.height-28 .crossword .puzzle .cw-cell {height: 22px;line-height: 22px;}
.theme.none.height-29 .crossword .puzzle .cw-cell {height: 21px;line-height: 21px;}
.theme.none.height-30 .crossword .puzzle .cw-cell {height: 20px;line-height: 20px;}
.theme.none.height-31 .crossword .puzzle .cw-cell {height: 20px;line-height: 20px;}
.theme.none.height-32 .crossword .puzzle .cw-cell {height: 19px;line-height: 19px;}
.theme.none.height-33 .crossword .puzzle .cw-cell {height: 19px;line-height: 19px;}
.theme.none.height-34 .crossword .puzzle .cw-cell {height: 18px;line-height: 18px;}
.theme.none.height-35 .crossword .puzzle .cw-cell {height: 18px;line-height: 18px;}
.theme.none.height-36 .crossword .puzzle .cw-cell {height: 17px;line-height: 17px;}
.theme.none.height-37 .crossword .puzzle .cw-cell {height: 17px;line-height: 17px;}
.theme.none.height-38 .crossword .puzzle .cw-cell {height: 16px;line-height: 16px;}
.theme.none.height-39 .crossword .puzzle .cw-cell {height: 16px;line-height: 16px;}
.theme.none.height-40 .crossword .puzzle .cw-cell {height: 16px;line-height: 16px;}
.theme.none.height-41 .crossword .puzzle .cw-cell {height: 15px;line-height: 15px;}
.theme.none.height-42 .crossword .puzzle .cw-cell {height: 15px;line-height: 15px;}

.theme.none.height-16 .crossword .puzzle .cw-cell .solution {margin-top: 19px;}
.theme.none.height-17 .crossword .puzzle .cw-cell .solution {margin-top: 19px;}
.theme.none.height-18 .crossword .puzzle .cw-cell .solution {margin-top: 19px;}
.theme.none.height-19 .crossword .puzzle .cw-cell .solution {margin-top: 18px;}
.theme.none.height-20 .crossword .puzzle .cw-cell .solution {margin-top: 17px;}
.theme.none.height-21 .crossword .puzzle .cw-cell .solution {margin-top: 16px;}
.theme.none.height-22 .crossword .puzzle .cw-cell .solution {margin-top: 15px;}
.theme.none.height-23 .crossword .puzzle .cw-cell .solution {margin-top: 14px;}
.theme.none.height-24 .crossword .puzzle .cw-cell .solution {margin-top: 13px;}
.theme.none.height-25 .crossword .puzzle .cw-cell .solution {margin-top: 12px;}
.theme.none.height-26 .crossword .puzzle .cw-cell .solution {margin-top: 11px;}
.theme.none.height-27 .crossword .puzzle .cw-cell .solution {margin-top: 10px;}
.theme.none.height-28 .crossword .puzzle .cw-cell .solution {margin-top: 9px;}
.theme.none.height-29 .crossword .puzzle .cw-cell .solution {margin-top: 8px;}
.theme.none.height-30 .crossword .puzzle .cw-cell .solution {margin-top: 7px;}
.theme.none.height-31 .crossword .puzzle .cw-cell .solution {margin-top: 6px;}
.theme.none.height-32 .crossword .puzzle .cw-cell .solution {margin-top: 5px;}
.theme.none.height-33 .crossword .puzzle .cw-cell .solution {margin-top: 4px;}
.theme.none.height-34 .crossword .puzzle .cw-cell .solution {margin-top: 3px;}
.theme.none.height-35 .crossword .puzzle .cw-cell .solution {margin-top: 2px;}
.theme.none.height-36 .crossword .puzzle .cw-cell .solution {margin-top: 1px;}
.theme.none.height-37 .crossword .puzzle .cw-cell .solution {margin-top: 0px;}
.theme.none.height-38 .crossword .puzzle .cw-cell .solution {margin-top: 0px;}
.theme.none.height-39 .crossword .puzzle .cw-cell .solution {margin-top: 0px;}
.theme.none.height-40 .crossword .puzzle .cw-cell .solution {margin-top: 0px;}
.theme.none.height-41 .crossword .puzzle .cw-cell .solution {margin-top: 0px;}
.theme.none.height-42 .crossword .puzzle .cw-cell .solution {margin-top: 0px;}

.theme .table.solution {margin-bottom: 2px;}

.theme.width-19 .crossword .cw-cell {width: 31px}
.theme.width-20 .crossword .cw-cell {width: 30px}
.theme.width-21 .crossword .cw-cell {width: 29px}
.theme.width-22 .crossword .cw-cell {width: 28px}
.theme.width-23 .crossword .cw-cell {width: 27px}
.theme.width-24 .crossword .cw-cell {width: 26px}
.theme.width-25 .crossword .cw-cell {width: 25px}
.theme.width-26 .crossword .cw-cell {width: 24px}

/** puzzles without design */
.theme.none.width-19 .crossword .cw-cell,
.theme.none.width-20 .crossword .cw-cell,
.theme.none.width-21 .crossword .cw-cell,
.theme.none.width-22 .crossword .cw-cell {width: 32px}
.theme.none.width-23 .crossword .cw-cell {width: 31px}
.theme.none.width-24 .crossword .cw-cell {width: 29px}
.theme.none.width-25 .crossword .cw-cell {width: 28px}
.theme.none.width-26 .crossword .cw-cell {width: 27px}
.theme.none.width-27 .crossword .cw-cell {width: 26px}
.theme.none.width-28 .crossword .cw-cell {width: 25px}
.theme.none.width-29 .crossword .cw-cell {width: 24px}
.theme.none.width-30 .crossword .cw-cell {width: 23px}
.theme.none.width-31 .crossword .cw-cell {width: 23px}
.theme.none.width-32 .crossword .cw-cell {width: 22px}
.theme.none.width-33 .crossword .cw-cell {width: 21px}
.theme.none.width-34 .crossword .cw-cell {width: 20px}
.theme.none.width-35 .crossword .cw-cell {width: 20px}
.theme.none.width-36 .crossword .cw-cell {width: 19px}
.theme.none.width-37 .crossword .cw-cell {width: 19px}
.theme.none.width-38 .crossword .cw-cell {width: 18px}
.theme.none.width-39 .crossword .cw-cell {width: 18px}
.theme.none.width-40 .crossword .cw-cell {width: 17px}
.theme.none.width-41 .crossword .cw-cell {width: 17px}
.theme.none.width-42 .crossword .cw-cell {width: 16.9px}
/** END LARGE PUZZLE FIXES */


/** NONE - This is as special theme to support better PDF downloads for larger puzzles */
.theme.none {
    padding: 24px;
}

.theme.none h1,
.theme.none h2 {
    padding-top: 10px;
    padding-bottom: 10px;
    font-size: 2rem;
    margin: 0;
    text-align: left;
    max-width: none;
}

.theme.none.print h1 {
    padding-top: 54px;
}

.theme.none p {
    text-align: left;
    font-style: normal;
    margin: 0;
    padding: 0;
}

.theme.none .cw-table {
    margin: 0 0 10px 0;
}

.theme.none .solution-title, .theme.none .watermark, .theme.none .solution-cells {
    text-align: left;
    margin: 0;
    max-width: none;
}

.theme .print-warning {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
}