/* ============================================================
   FIREBASS CONFIGURATOR - ESTILOS
   ============================================================ */

::selection { background: #c0392b; color: #fff; }

* { box-sizing: border-box; }

html, body {
    font-family: 'Teko', sans-serif;
    font-weight: 300;
    font-size: 24px;
    background: #fff;
    color: #333;
    overflow-x: hidden;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body { margin: 0; padding: 0; }

input[type=text], input[type=submit], input[type=password], input[type=number], select {
    font-family: 'Teko', sans-serif;
    font-weight: 300;
    font-size: 24px;
    background: #c4c4c4;
    color: #666;
    border: 0 none;
    border-radius: 0;
    outline: 0 none;
    padding: 6px;
    width: 100%;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

input[type=text]::placeholder { text-align: center; }

ul, ul li { margin: 0; padding: 0; list-style: none; }

a, a:focus, a:active, a:hover, a:visited {
    text-decoration: none;
    outline: 0 none;
}

.btn-primary, input[type=submit].btn-primary,
.btn-secondary, input[type=submit].btn-secondary {
    display: block;
    text-align: center;
    color: #fff;
    background-color: #c0392b;
    margin: 20px 0 0 0;
    padding: 6px;
    cursor: pointer;
    transition: background 0.2s ease;
}

.btn-primary:hover { background: #e74c3c; }

.btn-secondary, input[type=submit].btn-secondary {
    background: #2c3e50;
}

.btn-secondary:hover { background: #34495e; }

h1, h2, h3, h4, h5, h6 { font-weight: 300; margin: 0; }
h1 { font-size: 32px; }
h3 { font-size: 24px; }

.hidden { display: none; }

header {
    padding: 16px;
    background: #1a1a2e;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}

header div { flex: 0 0 75%; max-width: 75%; }

#header-left {
    flex: 0 0 75%;
    max-width: 75%;
    display: flex;
    align-items: center;
}

header h1, footer p { color: #888; margin: 0; }

header h3 {
    color: #fff;
    margin: 0;
    padding-left: 10px;
    flex: 0 0 25%;
    max-width: 25%;
    text-align: left;
    font-size: 18px;
    line-height: 1.2;
}

header h1 span { margin: 0 10px; }

#lang-wrapper {
    flex: 0 0 auto;
    margin: 0 0 0 20px;
}

#lang-select {
    font-family: 'Teko', sans-serif;
    font-size: 18px;
    font-weight: 400;
    background: #2c3e50;
    color: #fff;
    border: 1px solid #c0392b;
    border-radius: 4px;
    padding: 4px 8px;
    cursor: pointer;
    outline: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

#lang-select:hover {
    background: #34495e;
}

#lang-select option {
    background: #1a1a2e;
    color: #fff;
}

header img {
    max-width: 175px;
    width: 100%;
    height: auto;
    display: inline-block;
    vertical-align: middle;
}

header h1 { display: inline-block; vertical-align: middle; }

/* Navegación */
nav ul .inner { overflow: hidden; display: none; }

nav ul li a {
    position: relative;
    width: 100%;
    display: block;
    color: #333;
    padding: 2px 15px;
    border-top: 1px solid transparent;
    border-bottom: 1px solid #c4c4c4;
    transition: padding 0.25s ease;
    cursor: pointer;
}

nav ul li a.toggle.disabled,
nav ul .inner.level-1 a.notselectable,
nav ul .inner.level-2 a.notselectable,
nav ul .inner.level-3 a.notselectable {
    color: #888;
    pointer-events: none;
}

/* Opciones de instrumento deshabilitadas (selección excluyente bajos/guitarras) */
nav ul li a.selectable.disabled {
    color: #888;
    opacity: 0.4;
    cursor: not-allowed;
    pointer-events: none;
}

nav ul .inner.level-1 a {
    background: #1a1a2e;
    color: #f7f7f7;
    padding: 2px 30px;
    font-size: 20px;
}

nav ul .inner.level-2 a {
    background: #2c3e50;
    color: #f7f7f7;
    padding: 0 60px;
    font-size: 19px;
    border-bottom: 1px solid #c4c4c4;
}

nav ul .inner.level-3 a {
    background: #555;
    border-bottom-color: #666;
    padding: 0 90px;
    font-size: 18px;
}

nav ul li a b {
    font-size: 0;
    font-weight: 400;
    color: #c0392b;
    position: relative;
    top: -2px;
    max-width: 0;
    margin: 0;
    opacity: 0;
    transition: opacity 0.25s ease, max-width 0.25s ease, margin 0.25s ease;
}

nav ul li a b.visible {
    font-size: 16px;
    max-width: 500px;
    margin: 0 0 0 10px;
    opacity: 1;
}

nav ul li a i {
    color: #c0392b;
    display: inline-block;
    vertical-align: middle;
    line-height: 16px;
    font-size: 0;
    padding-right: 0;
    transition: font-size 0.25s ease, padding-right 0.25s ease;
}

nav ul li a.checked i {
    font-size: 16px;
    padding-right: 10px;
}

nav ul li a:after {
    content: '+';
    position: absolute;
    right: 25px;
    font-size: 24px;
}

nav ul li a.current:after { content: "\2212"; }

nav ul li a.selectable:before {
    content: '';
    width: 14px;
    height: 14px;
    border: 0 none;
    border-radius: 100%;
    position: absolute;
    background: #333;
    left: 35px;
    top: 47.5%;
    transform: translateY(-50%);
}

nav ul.level-3 li a.selectable:before { left: 65px; }

aside ul li a.selectable:hover:before,
aside ul li a.selectable.selected:before {
    background: #c0392b;
}

nav ul li a.selectable:after { content: ''; }

/* Layout principal */
main, main section, main aside {
    height: 93vh;
    max-height: 94vh;
    overflow-y: hidden;
}

main {
    display: flex;
    flex-wrap: wrap;
}

main section {
    position: relative;
    flex: 0 0 75%;
    max-width: 75%;
    text-align: center;
    order: 1;
}

main section img#save_img {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    transform: translateY(-50%);
    width: 100%;
    height: auto;
    padding: 7.5%;
}

main aside {
    background: #f7f7f7;
    flex: 0 0 25%;
    max-width: 25%;
    overflow-y: scroll;
    order: 2;
}

/* Panel de información */
#sondersachen {
    position: absolute;
    left: -125%;
    width: 100%;
    height: 93vh;
    max-height: 94vh;
    background: #fff;
    z-index: 10000;
    box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.15);
    transition: left 0.5s ease-in-out;
}

#sondersachen.visible { left: 0; display: inline-block; overflow-y: scroll; }

table tbody { display: block; }

#sondersachen tr { display: block; width: 100% !important; margin: 25px 0; padding: 0 25px; }
#sondersachen tr#information { margin-top: 50px; }
#sondersachen td { display: block; }

#information, #sondersachen #upcharge, #sondersachen #info_roasted {
    height: auto !important;
}

aside section {
    padding: 16px;
    text-align: left;
    flex: 0 0 100%;
    max-width: 100%;
    height: auto !important;
}

aside section p, #information, #sondersachen #upcharge,
#sondersachen #info_roasted, #sondersachen #info_neck,
#sondersachen #details-txt {
    font-family: 'Roboto Condensed', sans-serif;
    font-weight: 400;
    font-size: 14px;
    text-transform: none;
    color: #666;
}

#current-configuration #copy-state {
    max-height: 0;
    margin: 0;
    visibility: hidden;
    transition: max-height 0.125s ease-in-out, visibility 0.125s ease-in-out;
}

#current-configuration #copy-state.copy-success {
    max-height: 500px;
    visibility: visible;
}

.btn-secondary.copy-success { background: #27ae60; }

.info-icon { cursor: pointer; }

.info-icon.open { display: none; }

.has-information .info-icon.open, .has-content .info-icon.open {
    width: 100%;
    margin-bottom: 20px;
    text-align: center;
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 5000;
    padding: 16px;
    display: block;
}

.info-icon img, .info-icon span { display: inline-block; vertical-align: middle; }
.info-icon img { max-width: 35px; width: 100%; margin-right: 10px; }

footer {
    text-align: center;
    padding: 32px;
    background: #1a1a2e;
}

footer a {
    display: inline-block;
    color: #fff;
    margin: 0 16px 20px 16px;
}

footer p { color: #888; }

/* Responsive */
@media (max-width:1280px) {
    header h3, main aside { flex: 0 0 35%; max-width: 35%; }
    header div, main section#image { flex: 0 0 65%; max-width: 65%; }
    #header-left { flex: 0 0 65%; max-width: 65%; }
}

@media (max-width:960px) {
    h1 { font-size: 24px; }
    header { text-align: center; }
    header div, main section, main aside, main section#image {
        flex: 0 0 100%;
        max-width: 100%;
        display: block;
    }
    #header-left {
        flex: 0 0 100%;
        max-width: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    header img { max-width: 150px; }
    header h3 { display: none; }
    main { height: 100%; max-height: 100%; overflow-y: visible; }
    main section { order: 2; height: auto; }
    main section img#save_img { position: relative; top: 0; transform: none; }
    main aside { order: 1; height: 53.5vh; box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.25); }
    #sondersachen { position: fixed; top: 0; height: 100vh; max-height: 100vh; }
}
