:root {
    /* Core units
     ========================================================================== */
    --base-unit:        0.25rem;
    --base-half-unit:   calc(var(--base-unit) / 1.5);

    /* Typography
     ========================================================================== */

    /* Fonts */
    --font-family-primary:      "Roboto", sans-serif;
    --font-family-secondary:    "Klee One", cursive;
    --font-secondary-letter-spacing: calc(var(--font-base-unit) * 1.5);

    --font-base-unit: var(--base-unit);
    /* Font sizes - 4x4 grid */
    --font-size-12: calc(var(--font-base-unit) * 3);
    --font-size-16: calc(var(--font-base-unit) * 4);
    --font-size-20: calc(var(--font-base-unit) * 5);
    --font-size-24: calc(var(--font-base-unit) * 6);
    --font-size-40: calc(var(--font-base-unit) * 10);
    --font-size-48: calc(var(--font-base-unit) * 12);
    --font-size-64: calc(var(--font-base-unit) * 16);

    --line-height-base-unit: 1;
    /* Line heights */
    --line-height-small:   calc(var(--line-height-base-unit) * 1.1);
    --line-height-medium:  calc(var(--line-height-base-unit) * 1.3);
    --line-height-large:   calc(var(--line-height-base-unit) * 1.5);

    /* Font weights */
    --font-weight-lighter:  100;
    --font-weight-light:    200;
    --font-weight-normal:   400;
    --font-weight-bold:     700;
    --font-weight-bolder:   900;

    /* Space
     ========================================================================== */

    --space-base-unit: var(--base-unit);
    /* Margin, Padding */
    --space-8:  calc(var(--space-base-unit) * 2);
    --space-16: calc(var(--space-base-unit) * 4);
    --space-24: calc(var(--space-base-unit) * 6);
    --space-32: calc(var(--space-base-unit) * 8);
    --space-40: calc(var(--space-base-unit) * 10);
    --space-48: calc(var(--space-base-unit) * 12);
    --space-64: calc(var(--space-base-unit) * 16);

    /* Color
     ========================================================================== */

    --color-bg:             #FFFFFF;
    --color-primary:        #DD7626;
    --color-secondary:      #808184;

}


/* Body */

body{
    background-color: var(--color-bg);
    background-repeat: no-repeat;
    color: var(--color-secondary);
    font-family: var(--font-family-primary);
    font-weight: var(--font-weight-normal);
    min-height: 100vh;
    font-size: 1em;
}

/*::-webkit-scrollbar {
    width: 10px;
}*/
 
/* Track */
/*::-webkit-scrollbar-track {
    -webkit-box-shadow: inset 0 0 6px var(--color-primary); 
}
 */
/* Handle */
/*::-webkit-scrollbar-thumb {
    background: #662930; 
    -webkit-box-shadow: inset 0 0 6px var(--color-secondary); 
    -webkit-border-radius: 10px;
    border-radius: 10px;
}
::-webkit-scrollbar-thumb:window-inactive {
    background: var(--color-secondary); 
}*/

/* /Body */

/* Pre Loader */
.pre-loader{
	position: fixed;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	z-index: 1001;
	text-align: center;
	background-color: var(--color-primary);
}

.pre-loader .loading{
    margin: 30vh auto 0;
    position: relative;
    max-width: 320px;
    background: var(--color-bg);
    padding: 110px 0;
    border-radius: 50%;
}

.pre-loader img{
	width: 12em;
}

.pre-loader p{
	color: #808184;
	margin: 1.5em 0 0 0;
	position: relative;
	text-align: center;
	text-transform: uppercase;
	letter-spacing: 1px;
	animation: fadeh 4s ease infinite;
    font-size: 1em;
    line-height: var(--line-height-large);
}

@keyframes fadeh{ 
    0%{opacity: 0.5; letter-spacing: 5px;}
    50%{opacity: 1; letter-spacing: initial;}
    100%{opacity: 0.5; letter-spacing: 5px;}
}

/* /Pre Loader */


/* Header */

header{
    background: var(--color-primary);
    padding: var(--space-32) 0;
}

header img{
    width: 100%;
    height: auto;
    max-width: 160px;
}

header .links a{
    font-size: 1.1em;
    transition: all .2s ease;
    color: var(--color-bg);
    padding: 0.75em 2em;
    border-radius: 5px;
    border: 1px solid #ccc;
    margin: -5px 0 0 0;
    position: relative;
    top: -5px;
}

header .links a:hover{
    text-decoration: none;
    color: #ccc;
}

header .links span{
    font-size: 1.75em;
    margin: 0 5px 0 0;
    position: relative;
    top: 5px;
}

h1{
    font-family: var(--font-family-secondary);
    font-size: 1.5em;
    margin-bottom: 1em;
    color: var(--color-primary);
    font-weight: bold;
}

/* /Header */

/* Main */
main{
    padding: 5em 0;
    background: var(--color-bg);
}

main h2{
    color: var(--color-secondary);
    font-weight: var(--font-weight-bold);
    margin-bottom: var(--space-16);
    font-size: 1.4em;
}

main small{
    font-size: 85%;
}

main .celular{
    border-radius: 20px;
    width: 277px;
    height: 600px;
    border: 3px solid var(--color-secondary);
    background: var(--color-bg);
    box-shadow: 0 15px 40px #736a6a;
    position: relative;
    overflow: hidden;
    margin-left: calc(50% - 138.5px);
    margin-top: 1em;
}

main figure{
    margin: 0;
    width: 102%;
}

main .editor-container {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin: 0.25em 0 0.5em 0;
}

main .crop-area, main .preview-area {            
    text-align: center;
}

main .crop-area img {
    max-width: 100%;
}

main .preview-area img {
    display: none;
    width: 102%;
    background: #fff;
}

main .preview-area {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    position: absolute;
    background-image: url('../img/arte.png');
    background-position: center;
    background-repeat: no-repeat;
    background-size: 50% auto;
}

main .loading{
    background-image: url(../img/loading.gif) !important;
    background-size: 15% auto;
}

main .texto{
    position: absolute;
    left: 0;
    top: 90%;
    font-weight: bold;
    font-size: 1.75em;
    word-break: break-word;
    text-shadow: 0 0 3px #000000;
    color: #fff;
    cursor: move;
    transform-origin: center center;
    text-align: center;
    min-width: 100%;
    min-height: 1em;
    touch-action: none;
}


main .camera{
    position: absolute;
    width: 100%;
    height: 30px;
    top: 0;
    left: 0;
}

main .camera div{
    border: 1px solid #ccc;
    background: rgba(0, 0, 0, 0.7);
    position: absolute;
    display: none;
    border-radius: 15px;
}

main .camera .esq{
    width: 80px;
    height: 130px;
    left: 15px;
    top: 15px;
}

main .camera .esq img{
    width: 5em;
    position: absolute;
    right: -160px;
    top: 5px;
    mix-blend-mode: exclusion;
    opacity: 0.5;
}

main .camera .vert{
    left: calc(50% - 30px);
    top: 50px;
    width: 60px;
    height: 135px;
}

main .camera .vert img{
    width: 5em;
    left: -11px;
    position: absolute;
    top: -30px;
    mix-blend-mode: exclusion;
    opacity: 0.5;
}

main .camera .cen{
    width: 70px;
    height: 70px;
    left: calc(50% - 35px);
    top: 78px;
    border-radius: 25%;
}

main .camera .cen img{
    position: absolute;
    left: -4px;
    width: 5em;
    top: -60px;
    mix-blend-mode: exclusion;
    opacity: 0.5;
}

main .camera .hor{
    width: 240px;
    height: 60px;
    left: 15px;
    top: 55px;
}

main .camera .hor img{
    position: absolute;
    left: 81px;
    width: 5em;
    top: -37px;
    mix-blend-mode: exclusion;
    opacity: 0.5;
}

main .fonts{
    height: 115px;
    overflow-y: scroll;
    margin-bottom: 1em;
}

main .fonts p{
    border-bottom: 1px dotted #ccc;
    padding: 0.5em 0;
    margin: 0 0 -1px 0;
    cursor: pointer;
    font-size: 1em;
}

main .fonts p:hover{
    background: #f1f1f1;
}

main .fonts .ativo-font{
    background: #f1f1f1;
}

main .btn-texto{
    border: 1px solid var(--color-primary);
    border-radius: 3px;
    color: var(--color-secondary);
    cursor: pointer;
}

main .inverter{
    transform: scaleX(-1);
}

main .p-camera img{
    width: 30px;
    height: auto;

}

main .borda-foto{
    background-color: #f1f1f1;
    padding: 1em 1em 0 1em;
    border: 1px solid #ccc;
    border-radius: 0.5em;
    margin-bottom: 1em;
}

main .borda-foto p{
    margin-bottom: 0;
}

main ul{
    margin-top: -1em;
    font-size: 0.9em;
}

main .filtros span img{
    width: 100%;
    height: auto; 
}

main .filtros span{
    border: 1px dotted #ccc;
    cursor: pointer;
    display: block;
    margin-bottom: 1em; 
    border-radius: 0.25em;    
}

main .filtros span:hover{
    border: 1px solid #ccc;
}

main .filtros .ativo-filtro{
    border: 1px solid #b1b1b1;
}

label{
    display: block;
}

input::placeholder, input, select{
    font-size: 0.9em !important;
}

input, select{
    color: var(--color-secondary) !important;
}

.btn-env-foto{
    width: 100%;
    color: var(--color-bg);
    background: var(--color-secondary);
    font-weight: var(--font-weight-bolder);
    font-family: var(--font-family-secondary);
    border: 0;
    font-size: var(--font-size-16);
    cursor: pointer;
    border-radius: 0.5em;
    padding: 1em 0.5em 1.2em 0.5em;
    margin: 0 0 0.5em 0;
    display: inline-block;
    text-align: center;
}

.btn-env-fotoo:hover{
    text-decoration: none;
}

.invert{
    text-align: center;
    cursor: pointer;
    margin: 0 0 1.5em 0;
    color: var(--color-secondary);
    font-weight: var(--font-weight-normal);
    padding: 0.5em;
    border-radius: 5px;
    border: 1px solid #f1f1f1;
}

.invert-ativo{
    background: #f1f1f1;
}

.invert img{
    width: 2em;
    height: auto;
    margin: 0 0.5em 0 0;
}

.fundo{
    background-color: #ebebeb;
    position: relative;
    margin: 0 0 1em 0;
    padding: 1em 0 2em 0;
    border-radius: 0.5em;
    border: 1px dashed #808184;
}

.p-camera span{
    cursor: pointer;
    margin-right: 0.75em;
}

.p-camera .ativo-cam{
    background-color: #f1f1f1;
    border-radius: 5px;
}

.p-camera{
    margin-bottom: 0.5em;
}

.btn-enviar{
    width: 100%;
    color: var(--color-bg);
    background: var(--color-primary);
    font-weight: var(--font-weight-bolder);
    font-family: var(--font-family-secondary);
    border: 0;
    font-size: var(--font-size-24);
    cursor: pointer;
    border-radius: 0.5em;
    padding: 1em 0.5em 1.2em 0.5em;
    margin: 0.75em 0 0 0;
    transition: all 0.2s ease-in-out;
}


#btn-enviar:hover {
    background: var(--color-secondary);
}

#btn-enviar:disabled {
    cursor: not-allowed;
}

/* Quando estiver carregando, o botão pisca */
#btn-enviar.loadingbutton {
    animation: blink 1s infinite;
    opacity: 0.7;
}

@keyframes blink {
    0%, 100% {
        opacity: 0.7;
    }
    50% {
        opacity: 0.3;
    }
}

main mark{
    background: var(--color-primary);
    color: var(--color-bg);
    padding: 0 0.2em 0.2em 0.2em;
    font-weight: var(--font-weight-bolder);
    font-family: var(--font-family-secondary);
    display: inline-block;
    margin-bottom: 0.25em;
}

main .erro{
    background: #dc3545;
    border-radius: 5px;
}

main .sucesso{
    background: #28a745;
    font-size: 1.25em;
    border-radius: 5px;
}

#message{
    display: none;
}

#message div{
    margin-top: 1em;
    background: #f1f1f1;
    padding: 1em;
    font-size: 0.9em;
    border-radius: 0.5em;
}

.formerror, .formerror:focus{
    border: 2px solid #dc3545;
    background-color: #ffdcdc;
    box-shadow: 0 0 0 .2rem #ffdcdc;
}

.help{
    cursor: pointer;
    color: var(--color-primary);
}

/* Main */


/* Banner */
.banner{
    background-color: #1a1414;
    background-image: url('../img/fundo.png');
    background-size: cover;
    background-position: center center;
    padding: var(--space-32) 0 var(--space-64);
}

.banner img{
    width: 100%;
    height: auto;
}

.slogan{
    font-family: var(--font-family-secondary);
    font-size: 2.5em;
    margin: 0.5em 0 1em 0;
    color: var(--color-primary);
    font-weight: bold;
}

/* /Banner */

/* Frase */
.frase{
    padding: var(--space-32) 0;
    background: #141212;
    font-weight: var(--font-weight-normal);

}

.frase h1{
    color: var(--color-bg);
    margin: 0;
    padding: 0;
    font-size: 1.5em;
}

.frase mark{
    background: var(--color-primary);
    color: var(--color-bg);
    padding: 0 0.2em 0.2em 0.2em;
}

.frase p{
    color: #fff;
    margin-bottom: 0;
}

.frase .topo{
    font-size: 1.3em;
    color: #fff;
    cursor: pointer;
}
/* /Frase */

/* Catálogo */
.catalogo{
    background: var(--color-primary);
    padding: 6em 0;
}

.catalogo img{
    width: 100%;
    height: auto;
} 

.catalogo h2{
    color: #fff;
    font-weight: var(--font-weight-bold);
    margin-bottom: var(--space-16);
    font-family: var(--font-family-secondary);
}

.catalogo p{
    color: #fff;
    font-weight: var(--font-weight-normal);
    margin-bottom: var(--space-16);
}

.btn-catalogo{
    width: 100%;
    color: var(--color-primary);
    background: var(--color-bg);
    font-weight: var(--font-weight-bolder);
    font-family: var(--font-family-secondary);
    border: 0;
    font-size: var(--font-size-24);
    cursor: pointer;
    border-radius: 0.5em;
    padding: 1em 0.5em 1.2em 0.5em;
    margin: 0.75em 0 0 0;
    display: inline-block;
    text-align: center;
}

.btn-catalogo:hover{
    text-decoration: none;
}

/* /Catálogo */

/* Corporativo */
.corporativo{
    background: #1a1414;
    padding: 6em 0;
    background-image: url('../img/fundo-cp.png');
    background-size: cover;
    background-position: center center;
}

.corporativo img{
    width: 100%;
    height: auto;
    margin: -10em 0 0 0;
}

.corporativo h2{
    color: var(--color-primary);
    font-weight: var(--font-weight-bold);
    margin-bottom: var(--space-16);
    font-family: var(--font-family-secondary);
}

.corporativo p{
    color: var(--color-bg);
    font-weight: var(--font-weight-normal);
    margin-bottom: var(--space-16);
}

.btn-corporativo{
    width: 100%;
    color: var(--color-bg);
    background: var(--color-primary);
    font-weight: var(--font-weight-bolder);
    font-family: var(--font-family-secondary);
    border: 0;
    font-size: var(--font-size-24);
    cursor: pointer;
    border-radius: 0.5em;
    padding: 1em 0.5em 1.2em 0.5em;
    margin: 0.75em 0 0 0;
    display: inline-block;
    text-align: center;
}

.btn-corporativo:hover{
    text-decoration: none;
}


/* /Corporativo */

/* Sobre */
.sobre{
    margin-top: 3em;
}

.sobre img{
    max-width: 10em;
    margin: 0 0 2em 0;
}

.sobre p{
    color: #fff;
}

.sobre h3{
    font-family: var(--font-family-secondary);
    color: var(--color-primary);
    margin-top: 1em;
}

.sobre a{
    color: var(--color-primary);
   
}

.sobre a span{
    font-size: 1.75em;
    margin: 0 5px 0 0;
    position: relative;
    top: 5px;
}

.sobre a:hover{
    text-decoration: none;
}

/* /Sobre  */

/* Footer */
footer{
    background: #494949;
    padding: var(--space-64) 0 0 0;
}

footer img{
    width: 100%;
    height: auto;
    margin: -10em 0 0 0;
}

/* /Footer */

@media (max-width: 575.98px) {  
   
    .fundo-mob{
        background-color: transparent;
        margin: 0;
        padding: 0;
        border-radius: 0.5em;
        border: 0;
        position: fixed;
        bottom: 1em;
        right: 1em;
        /* transform: scale(0.60); */
        z-index: 10;
    }
    main .celular-mob{
        margin-left: 0;
        position: relative;
    }
    main .editor-container{
        max-width: 80%;
        overflow: hidden;
    }
    main
    {
        padding: 2em 0;
    }
    .mob{
        display: none;
    }
    label{
        margin-top: 1em;
    }
    header .links a {
        font-size: 0.9em;
        padding: 0.75em 0.75em;
    }
    .slogan {
        font-size: 1.4em;
    }
    .pre-loader .loading{
        transform: scale(0.75);
    }
    .catalogo img{
        margin: 3em 0 0 0;
    }
    .corporativo img{
        margin: 0 auto 2em;
        max-width: 12em;
        display: block;
    }
    footer .mock{
        margin: 3em auto 0;
        max-width: 18em;
        display: block
    }  
    #ver{
        display: block !important;
    }  
}

@media (min-width: 767.98px) {
    main .celular{
        transform: scale(0.6);
        top: -3em;
    } 
       
}

@media (min-width: 991.98px) {
    main .celular{
        transform: scale(0.8);
        top: -3em;
    }
}

@media (min-width: 1199.98px) {
    main .celular{
        transform: scale(1);
        top: 0;
    }  
}


.exportar{
    position: absolute;
    width: 100%;
    height: 100%;
}

/* Alça de rotação visível */
.ui-rotatable-handle {
  width: 20px;
  height: 20px;
  position: absolute;
  top: -20px;
  left: 50%;
  transform: translateX(-50%);
  cursor: grab;
  z-index: 10;
  background: url('../img/arrows-spin-solid.svg');
  display: none;
  background-size: 80% auto;
  background-color: rgba(255, 255, 255, 0.50);
  border-radius: 50%;
  background-repeat: no-repeat;
  background-position: center center;
  box-sizing: border-box;
}


.texto:hover .ui-rotatable-handle{
     display: initial;
}

.help-text img{
    width: 1em;
    height: auto;
}

#ver{
    position: fixed;
    left: -3px;
    top: 5em;
    z-index: 50;
    background: var(--color-primary);
    border: 3px solid #dd7626;
    cursor: pointer;
    border-radius: 0 15px 15px 0;
    color: #fff;
    font-family: var(--font-family-secondary);
    font-weight: 700;
    padding: 0.5em;
    display: none;
    box-shadow: 0 0 10px #524f4f;
}

#ver:focus{
    border: 3px solid #dd7626;
}

#ver img{
    display: inline;
    width: 1em;
    height: auto;
    filter: brightness(0) invert(1);
}



@media (max-width: 575.98px) {
  /* Estado inicial: miniatura fixa no canto */
  .celular-mobile {
    position: fixed !important;
    bottom: 1em;
    right: 1em;
    transform: scale(0.35); /* tamanho bem pequeno */
    transform-origin: bottom right;
    transition: all 0.4s ease-in-out;
    z-index: 99;
  }

  /* Estado expandido: 75% da tela, mantendo proporção */
.celular-mobile.expandido {
        position: fixed !important;
        bottom: 40%;
        right: 50%;
        transform: translate(50%, 50%) scale(0.9);
        transform-origin: center center;
        z-index: 999;
        box-shadow: 0 0px 80px 270px rgba(0, 0, 0, 0.75)
    }

  /* Botão "ver capinha" visível apenas no mobile */
  #ver {
    display: flex !important;
    align-items: center;
    gap: 6px;
    z-index: 1000;
  }

  .fundo{
    border: 0;
    background: none;
    padding: 0;
  }
}
