:root {
    --primary-default: rgb(4 136 72);
    --primary-dark: rgb(3 112 60);
    --gray-100: #f3f4f6;
    --gray-400: #9ca3af;
    --gray-600: #555;
    --font-primary: "Outfit", sans-serif;
    --text-xs: 0.75rem;
    --text-sm: 0.875rem;
    --text-base: 1rem;
    --text-lg: 1.125rem;
    --text-xl: 1.25rem;
    --text-2xl: 1.5rem;
    --font-light: 300;
    --font-regular: 400;
    --font-medium: 500;
    --font-semibold: 600;
    --font-bold: 700
}

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

.form-group input,body {
    font-size: var(--text-base);
    font-weight: var(--font-regular)
}

body {
    font-family: var(--font-primary);
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    background-color: var(--gray-100);
    min-height: 100vh
}

.container {
    max-width: 800px;
    margin: 0 auto;
    padding: 1rem;
    display: grid;
    gap: 1.75rem
}

.w-full {
    width: 100%
}

.overflow-hidden {
    overflow: hidden
}

.checkout-form {
    display: flex;
    flex-direction: column;
    gap: 1.75rem
}

.form-section {
    background: #fff;
    padding: 1.5rem;
    border-radius: 12px
}

.form-section h2 {
    font-size: var(--text-xl);
    font-weight: var(--font-semibold);
    color: #313c52;
    margin-bottom: 1.5rem
}

.form-grid {
    gap: 1rem
}

.form-grid,.form-group {
    display: flex;
    flex-direction: column
}

.form-group label {
    font-family: "Inter",sans-serif;
    display: block;
    font-size: var(--text-sm);
    font-weight: var(--font-medium);
    color: #313c52;
    margin-bottom: .5rem;
    font-stretch: normal;
    letter-spacing: .7px;
}

.form-group input {
    width: 100%;
    min-height: 50px;
    padding: .5rem .875rem;
    border: 1px solid #d1d5db;
    border-radius: .375rem;
    transition: all .2s
}

.form-group input:hover {
    border-color: var(--gray-600)
}

.form-group input:focus {
    outline: 0;
    border-color: var(--gray-600);
    box-shadow: 0 0 0 1px var(--gray-600)
}

.payment-options {
    display: flex;
    gap: .75rem
}

.submit-section {
    margin-top: 1.5rem
}

.submit-button {
    text-transform: uppercase;
    gap: .25rem;
    display: flex;
    justify-content: center;
    align-items: center
}

@media (min-width:768px) {
    .submit-button {
        grid-column: 2
    }
}

.cart-count,.cart-header {
    display: flex;
    align-items: center
}

.cart-header {
    justify-content: space-between;
    margin-bottom: 1rem
}

#pixScreen h2,.cart-header h2 {
    font-size: var(--text-lg);
    font-weight: var(--font-semibold);
    color: #313c52
}

.loading-screen {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(255, 255, 255, 0.95);
	display: flex;
	justify-content: center;
	align-items: center;
	z-index: 1000;
}

.loading-content {
	text-align: center;
}

.loading-spinner {
	width: 50px;
	height: 50px;
	border: 5px solid #f3f3f3;
	border-top: 5px solid #00a868;
	border-radius: 50%;
	animation: spin 1s linear infinite;
	margin: 0 auto 20px;
}

.loading-content h2 {
	color: #333;
	margin-bottom: 10px;
}

.loading-content p {
	color: #666;
}

@keyframes spin {
	0% {
		transform: rotate(0deg);
	}
	100% {
		transform: rotate(360deg);
	}
}

.cart-count {
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    background: #0762d1;
    color: #fff;
    border-radius: 50%;
    font-weight: 700
}

.item-details {
    display: flex;
    gap: .5rem
}

.item-image {
    width: 3rem;
    height: 3rem;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center
}

.item-image img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.item-info {
    flex: 1;
    font-family: "Inter",sans-serif;
}

.instruction-step p,.item-name {
    font-size: var(--text-base);
    font-weight: var(--font-medium)
    color: #313c52;
}

.item-meta {
    font-size: var(--text-xs);
    font-weight: var(--font-regular);
    color: var(--gray-400)
}

.cart-subtotal,.cart-total,.item-meta {
    display: flex;
    justify-content: space-between
}

.cart-subtotal {
    margin-bottom: .5rem;
    padding-bottom: .5rem;
    border-bottom: 1px solid #e5e7eb
}

.cart-total {
    font-size: var(--text-lg);
    font-weight: var(--font-medium)
}

.cart-total strong,.total-value strong {
    font-weight: var(--font-bold)
}

.security-button,footer {
    align-items: center;
    justify-content: center
}

footer {
    display: flex;
    flex-direction: column;
    padding: 1.5rem
}

.security-button {
    display: inline-flex;
    padding: .5rem 1.5rem;
    background: #fff;
    border: 0;
    border-radius: 1rem;
    font-size: .75rem;
    font-weight: 700;
    color: var(--gray-600);
    cursor: pointer;
    transition: all .4s
}

.security-button:hover {
    box-shadow: 0 0 7px rgba(46,133,236,.3)
}

.security-icon {
    width: 1.375rem;
    height: 1.375rem;
    margin-right: .25rem;
    fill: #41c286
}

.payment-button {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: center;
    gap: .25rem;
    padding: .75rem;
    border: 1px solid #d1d5db;
    border-radius: .375rem;
    font-size: 1.125rem;
    font-weight: 700;
    background: #fff;
    cursor: pointer
}

#pixScreen,.pix-container {
    display: flex;
    flex-direction: column
}

.pix-container {
    max-width: 600px;
    padding: 1.5rem;
    background: #fff;
    border-radius: 1rem;
    text-align: center;
    box-shadow: rgba(0,0,0,.1)0 4px 6px -1px,rgba(0,0,0,.1)0 2px 4px -2px
}

#pixScreen {
    align-items: center;
    padding: 2.5rem
}

#pixScreen h2 {
    text-align: center;
    font-size: var(--text-2xl);
    color: #333;
    margin-bottom: 2rem
}

.qr-code-container {
    margin: 2rem auto;
    padding: 1rem;
    background: #fff;
    border-radius: .5rem;
    box-shadow: 0 2px 8px rgba(0,0,0,.1);
    display: inline-block
}

.pix-copy-text {
    font-size: var(--text-base);
    font-weight: var(--font-regular);
    color: #666
}

.pix-code-container {
    margin: 1rem 0;
    display: flex;
    flex-direction: column;
    gap: 12px
}

.pix-code-container input {
    padding: 1rem;
    border: 1px solid #ddd;
    border-radius: .5rem;
    font-size: .9rem;
    background: #f5f5f5
}

.copy-button {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    padding: 1rem;
    background: #41c286;
    color: #fff;
    border: 0;
    border-radius: .5rem;
    font-size: var(--text-sm);
    font-weight: var(--font-bold);
    cursor: pointer;
    transition: background .2s
}

.copy-button:hover {
    background: #31ae74
}

.copy-button svg {
    fill: currentColor
}

.payment-instructions {
    text-align: left;
    margin-top: 2rem
}

.payment-details h3,.payment-instructions h3 {
    font-size: var(--text-lg);
    font-weight: var(--font-semibold);
    margin-bottom: 1.5rem
}

.instruction-step {
    gap: 1rem;
    margin: 1rem 0
}

.instruction-step,.instruction-step .step-icon,.step-icon {
    display: flex;
    align-items: center
}

.step-icon {
    width: 2rem;
    height: 2rem;
    min-width: 2rem;
    background: #00b341;
    border-radius: 50%;
    justify-content: center
}

.step-icon svg {
    width: 1.2rem;
    height: 1.2rem;
    fill: #fff
}

.instruction-step p {
    font-weight: var(--font-regular)
}

.instruction-step .step-icon {
    justify-content: center;
    min-width: 40px;
    min-height: 40px;
    width: 40px;
    height: 40px;
    background: #00a868;
    border-radius: 50%;
    flex-shrink: 0
}

.instruction-step .step-icon i {
    color: #fff;
    font-size: 20px
}

.instruction-step {
    gap: 15px;
    margin-bottom: 15px
}

.payment-details {
    margin: 2rem 0;
    padding: 1rem;
    background: #f8f8f8;
    border-radius: .5rem
}

.payment-details h3 {
    margin-bottom: 1rem
}

.total-value {
    font-size: var(--text-xl);
    font-weight: var(--font-medium);
    color: #333
}

.total-value strong {
    color: var(--primary-default)
}

h1,h2,h3,h4,h5,h6 {
    font-weight: var(--font-semibold);
    line-height: 1.2
}

.payment-section {
    background: #fff;
    border-radius: .75rem;
    padding: 1.5rem
}

.payment-method {
    margin-bottom: 1.5rem
}

.payment-option {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    padding: 1rem;
    border: 1px solid #e5e7eb;
    border-radius: .5rem;
    background-color: #f9fafb
}

.payment-icon {
    width: 24px;
    height: 24px
}

.payment-footer h4,.payment-label {
    font-size: var(--text-base);
    color: var(--gray-600)
}

.submit-button {
    width: 100%;
    background: var(--primary-default);
    color: #fff;
    border: 0;
    border-radius: .5rem;
    padding: .875rem;
    font-size: var(--text-base);
    font-weight: var(--font-semibold);
    cursor: pointer;
    transition: background-color .2s
}

.submit-button:hover {
    background: var(--primary-dark)
}

.cart-summary {
    background: #fff;
    border-radius: 12px;
    padding: 1.5rem
}

.payment-footer {
    text-align: center;
    padding: 2rem 0;
    border-top: 1px solid #eee;
    margin-top: 2rem
}

.payment-footer h4 {
    font-size: var(--text-sm);
    margin-bottom: 1rem
}

.payment-methods-icons {
    display: flex;
    justify-content: center;
    gap: 1rem;
    margin-bottom: 1.5rem
}

.checkout-steps,.secure-badge {
    align-items: center;
    background: #fff
}

.secure-badge {
    display: inline-flex;
    gap: .5rem;
    padding: .5rem 1rem;
    border-radius: 2rem;
    font-size: var(--text-xs);
    color: var(--gray-600);
    box-shadow: 0 2px 4px rgba(0,0,0,.05)
}

.secure-badge svg {
    width: 16px;
    height: 16px;
    fill: var(--primary-default)
}

.checkout-steps {
    display: flex;
    justify-content: space-between;
    border-radius: 8px;
    gap: 1rem;
    padding: 1rem;
    font-family: "Inter",sans-serif;
}

.step {
    display: flex;
    align-items: center;
    position: relative;
    max-width: 120px;
    flex-direction: column;
    cursor: pointer
}

.step-number {
    display: flex;
    align-items: center;
    background: #e5e7eb;
    font-weight: var(--font-semibold);
    font-size: var(--text-sm);
    transition: all .3s ease;
    position: relative;
    z-index: 2;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background-color: #f4f6fb;
    color: grey;
    justify-content: center;
    margin-bottom: 4px
}

.step.active .step-number,.step.completed .step-number {
    background: var(--primary-default);
    color: #fff
}

.step.completed .step-number::after {
    content: "✓";
    position: absolute;
    font-size: 14px;
    color: #ccc;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    font-weight:lighter;
}

.step.active .step-label {
    color: #313c52;
}

.step.completed .step-label {
    color: #939598;
}

.step-label {
    font-size: var(--text-sm);
    font-weight: var(--font-medium);
    text-align: center;
    transition: color .3s ease
}

.step-label {
    font-size: .875rem;
    color: #585858;
    float: left;
    line-height: 19px;
    letter-spacing: -.02em;
    color: #939598;
    font-style: normal;
    font-weight: 600;
    font-size: 14px
}

.step-buttons {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-top: 1rem
}

.step-button {
    flex: 1;
    padding: 16px 24px;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    background: #fff;
    color: var(--gray-600);
    font-size: var(--text-base);
    font-weight: var(--font-medium);
    font: 700 16px/20px Inter;
    cursor: pointer;
    transition: all .2s;
    text-transform: uppercase;
    width: 100%
}

.step-button:hover {
    border-color: var(--gray-600);
    /* background: #f9fafb */
    background: #1b296d;
}

.step-button.next-step {
    /* background: #262626; */
    background: #1f2e7a;
    color: #fff;
    border: 1px solid transparent
}

.step-button:disabled {
    background: #f3f4f6;
    color: #9ca3af;
    border-color: #e5e7eb;
    cursor: not-allowed
}

.step.active .step-number {
    /* background-color: #262626; */
    background-color: #1f2e7a;
}

.step.completed .step-number {
    /* background-color: #393939; */
    background-color: #1f2e7a;
    color: transparent; /* Esconde o número */
    position: relative;
}

.step-content {
    display: none
}

.delivery-options {
    margin-top: 1.5rem
}

.delivery-options h3 {
    font-size: var(--text-lg);
    font-weight: var(--font-semibold);
    color: #313c52;
    margin-bottom: 1rem
}

.delivery-option {
    position: relative;
    border-radius: .75rem;
    transition: all .2s ease;
    background: #fff
}

.delivery-option.selected,.delivery-option:hover {
    border-color: var(--primary-default);
    box-shadow: 0 2px 8px rgba(4,136,72,.1)
}

.delivery-option.selected {
    background: rgba(4,136,72,.02);
    box-shadow: 0 2px 8px rgba(4,136,72,.15)
}

.delivery-badge {
    position: absolute;
    top: -12px;
    left: 1rem;
    padding: .25rem .75rem;
    border-radius: 1rem;
    font-size: var(--text-xs);
    font-weight: var(--font-bold);
    text-transform: uppercase;
    letter-spacing: .025em
}

.delivery-badge.recommended {
    background: var(--primary-default);
    color: #fff
}

.delivery-badge.express {
    background: #f59e0b;
    color: #fff
}

.delivery-left {
    gap: .75rem
}

.delivery-left input[type=radio] {
    width: 18px;
    height: 18px;
    accent-color: var(--primary-default)
}

.delivery-name {
    gap: .5rem;
    font-size: var(--text-base);
    font-weight: var(--font-semibold);
    color: #313c52;
    display: flex;
    align-items: center
}

.delivery-icon {
    font-size: 1.25rem
}

.delivery-time {
    font-size: var(--text-sm);
    color: var(--gray-400)
}

.delivery-price {
    gap: .25rem
}

.price-label {
    font-size: var(--text-sm);
    color: var(--gray-400)
}

.price-value {
    font-size: var(--text-xl);
    font-weight: var(--font-bold);
    color: var(--primary-default)
}

.error-message {
    font-size: var(--text-sm)
}

.step-content .form-grid {
    display: flex;
    flex-direction: column;
    gap: 1rem
}

@media (min-width:768px) {
    .step-content .form-grid {
        display: grid;
        grid-template-columns: repeat(2,1fr);
        gap: 1rem
    }
}

.texto-promocional {
    font-family: "Inter",sans-serif;
    font-style: normal;
    font-size: .875rem;
    line-height: calc(1.25/.875);
    font-weight: 600;
    color: #fff;
    background-color: var(--primary-default);
    background-color: #393939;
    box-sizing: border-box;
    display: flex;
    width: 100%;
    align-items: center;
    padding: 1rem .5rem;
    text-align: center;
    justify-content: center
}

.texto-promocional span {
    max-width: 48rem
}

input::-webkit-input-placeholder {
    opacity: .2
}

input::-ms-input-placeholder {
    opacity: .2
}

input::placeholder {
    opacity: .2
}

.p-amount {
    color: #a6a6a6;
    font-size: 14px
}

#botaoGerarPix:disabled {
    background-color: #a8d9a1;
    cursor: not-allowed;
    opacity: .7
}

.input-number {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #fff;
    width: 80px;
    height: 32px;
    border-radius: 20px
}

.input-number input {
    width: 20px;
    height: 30px;
    padding: 0;
    outline: 0;
    box-shadow: none;
    text-align: center;
    font-family: sans-serif;
    font-size: 14px;
    -webkit-appearance: textfield;
    -webkit-background-clip: padding-box;
    -moz-appearance: textfield;
    -moz-background-clip: padding-box;
    appearance: textfield;
    background-clip: padding-box;
    border: 0;
    border-radius: 0;
    border-top: solid 1px #e1e1e1;
    border-bottom: solid 1px #e1e1e1
}

.input-number input::-webkit-inner-spin-button,.input-number input::-webkit-outer-spin-button {
    -webkit-appearance: none
}

.input-number button {
    display: flex;
    justify-content: center;
    align-items: center;
    border: 0;
    outline: 0;
    width: 30px;
    height: 30px;
    background: #fff;
    transition: all .5s
}

.input-number button:first-child {
    border-radius: 30px 0 0 30px;
    border-top: solid 1px #e1e1e1;
    border-left: solid 1px #e1e1e1;
    border-bottom: solid 1px #e1e1e1
}

.input-number button:last-child {
    border-radius: 0 30px 30px 0;
    border-top: solid 1px #e1e1e1;
    border-right: solid 1px #e1e1e1;
    border-bottom: solid 1px #e1e1e1
}

.input-number button:hover {
    background: #fafafa
}

.input-number button:focus {
    background: #f5f5f5
}

.input-number button img {
    width: 10px
}

.delivery-options {
    margin-bottom: 1rem
}

.delivery-option {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem;
    border: 1px solid #ddd;
    border-radius: 4px;
    margin-bottom: .5rem;
    cursor: pointer
}

.delivery-option.selected {
    background-color: #f0f0f0
}

.delivery-badge {
    background-color: #23d07d;
    color: #fff;
    padding: .25rem .75rem;
    border-radius: 4px;
}

.delivery-info,.delivery-left {
    display: flex;
    align-items: center
}

.delivery-info {
    justify-content: space-between;
    width: 100%;
}

.delivery-details {
    display: flex;
    flex-direction: column;
    gap: .25rem
}

.delivery-time {
    font-size: .875rem;
    color: #7e7e7e
}

.delivery-price {
    display: flex;
    align-items: center;
    align-self:flex-end;
}

.price-label {
    margin-right: 4px
}

.error-message {
    color: red;
    font-size: .875rem;
    margin-top: .5rem
}

.email-input-wrapper {
	position: relative;
	width: 100%;
}

.email-suggestions {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	background: white;
	border-radius: 4px;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
	z-index: 1000;
	max-height: 200px;
	overflow-y: auto;
}

.email-suggestion {
	padding: 10px;
	cursor: pointer;
	transition: background-color 0.2s;
}

.email-suggestion:hover {
	background-color: #f5f5f5;
}

#cep {
    margin-bottom:1rem
}

.frete-container {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding-top: 1rem;
}

.frete-title {
  font-family: 'Inter', sans-serif;
  font-weight: 500;
  font-size: 14px;
  line-height: 17px;
  color: #373737;
}

.frete-info {
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-family: 'Inter', sans-serif;
    font-weight: 500;
    font-style: normal;
    line-height: 1;
    border: 1px dashed #ddd;
    border-radius: 8px;
    padding: 24px;
    position: static;
}

.frete-info .aviso-principal {
  font-size: 16px;
  line-height: 19px;
  letter-spacing: -0.02em;
  color: #585858;
}

.frete-info .aviso-secundario {
  font-size: 12px;
  line-height: 15px;
  color: #999999;
}

.frete-observacao {
    margin: 0;
    font-family: Inter;
    font-style: normal;
    font-weight: 500;
    font-size: 10px;
    line-height: 12px;
    color: #999;
}

.dados-seguros {
	display:flex;
	flex-direction:column;
	padding: 16px;
	border: 2px solid #ededed;
	border-radius: 6px;
    border-style: dashed;
    margin-top:1rem;
}

.dados-seguros span {
    font-family: Inter;
    font-style: normal;
    font-weight: 600;
    font-size: 14px;
    line-height: 17px;
    color: #313c52;
}

.dados-seguros ul {
	display:flex;
	flex-direction:column;
	gap:0.75rem;
	margin-top:1rem;
}

.dados-seguros ul li {
	display:flex;
	align-items:center;
	gap: 1rem;
}

.dados-seguros ul li span {
    margin-left: 0;
    font-family: Inter;
    font-style: normal;
    font-weight: 400;
    font-size: 14px;
    line-height: 17px;
    color: #7e7e7e;
}

.dados-seguros ul li img {
	height:20px;
}

.prova-social-container {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  margin-top:1.75rem;
}

.prova-social {
  display:flex;
  flex-direction:row;
  gap:0.75rem;
  background: white;
  padding: 1rem;
  border-radius: 0.75rem;
}

.prova-social .avatar {
  display:flex;
  align-items:center;
  flex-shrink:0;
}
.prova-social .avatar img {
  height:60px;
  width:60px;
  object-fit: cover;
  color: transparent;
  border-radius:3.40282e+38px;
}

.prova-social .estrelas {
  color:#fcc800;
}

.prova-social .nome {
  font-weight:500;
}

.prova-social .mensagem {
  font-size: .875rem;
  line-height: 1.25rem;
  color:#6a7282;
}