.feature-box-10:hover .number {
  background: #ff5100;
  color: #fff;
}

.line-section .down-section .down-section-link {
    opacity: 1;
}

.text-small .pofo-scroll-down-text {
  font-size: 16px;
  line-height: 20px;
}
.line-section .separator-line-verticle-large {
  width: 3px;
}


/* ----------------  formulário orçamentos */
.wpcf7-select.croqui {
    background-color: #f7f7f7;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M6 9L12 15L18 9' stroke='%23FF5F00' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 15px center;
}
.big-input, .big-textarea, .big-select select {
	padding: 10px 20px;
}

/* ----------------  cantos redondos */
.border-radius-bottom-custom {
    border-bottom-left-radius: 42px;
    border-bottom-right-radius: 42px;
}
.border-radius-top-custom {
    border-top-left-radius: 42px;
    border-top-right-radius: 42px;
}
/* ----------------  botão class orange */
.btn.btn-deep-orange {
	background: #ff5100;
	border-color: #ff5100;
	color: #ffffff;
    opacity: 1 !important;
}
.btn.btn-deep-orange:hover, .btn.btn-deep-orange:focus {
	background: transparent;
	border-color: #ff5100;
	color: #ff5100;
	outline: none;
}    

/* ----------------  linha animada slide head */
.box-separator-line{
    overflow:hidden;
    background:linear-gradient(
        90deg,
        transparent,
        rgba(255, 255, 255, 1)
    ) !important;
}

.box-separator-line::after{
    content:'';
    position:absolute;
    inset:0;
    background:#FF5100;
    transform:translateX(-100%);
    animation:scrollPulse 2.5s ease-in-out infinite;
}

@keyframes scrollPulse{
    0%{
        transform:translateX(-100%);
    }

    100%{
        transform:translateX(100%);
    }
}



/* ----------------  Contact Form 7 - alinhar aceitação à esquerda */
.wpcf7 .wpcf7-acceptance,
.wpcf7 .wpcf7-list-item,
.wpcf7 .wpcf7-list-item label,
.wpcf7 .wpcf7-list-item-label {
  text-align: left !important;
}

/* Alinhar checkbox + texto */
.wpcf7 .wpcf7-list-item label {
  display: flex !important;
  align-items: flex-start;
  gap: 8px;
}

/* Remover margem lateral estranha do CF7 */
.wpcf7 .wpcf7-list-item {
  margin-left: 0 !important;
}

/* Checkbox */
.wpcf7 .wpcf7-acceptance input[type="checkbox"] {
  margin-top: 3px;
  flex-shrink: 0;
}


/* ---------------------- butto scroll down */
button.scroll_down {
    position: fixed;
    left: 40px;
    bottom: 40px;
    height: 50px;
    width: 30px;
    background-color: transparent;
    border: 2px solid #ffffff;
    border-radius: 20px;
    cursor: pointer;
    outline: none;
    z-index: 9999;

    opacity: 0;
    transform: translateX(-80px);
    animation: scrollButtonEnter 1s ease-out forwards;
    animation-delay: 0.4s;

    transition: opacity 0.8s ease;
}

button.scroll_down:before {
  position: absolute;
  top: 10px;
  left: 50%;
  content: "";
  width: 6px;
  height: 6px;
  margin-left: -3px;
  background-color: #ffffff;
  border-radius: 100%;
  animation: scroll_down_btn-animation 2s infinite;
  box-sizing: border-box;
}


button.scroll_down:after {
    content: "SCROLL";
    position: absolute;
    bottom: 60px; /* distância acima do botão */
    left: 50%;
    transform: translateX(-50%);
    color: #ffffff;
    font-size: 10px;
    font-weight: 400;
    letter-spacing: 2px;
    white-space: nowrap;
    pointer-events: none;
}

@keyframes scrollButtonEnter {
  0% {
    opacity: 0;
    transform: translateX(-120px);
  }

  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes scroll_down_btn-animation {
  0% {
    transform: translate(0, 0);
    opacity: 0;
  }
  40% {
    opacity: 1;
  }
  80% {
    transform: translate(0, 20px);
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}

button.scroll_down.hide {
    opacity: 0 !important;
    pointer-events: none;
}
button.scroll_down.ready {
    animation: none;
    transform: translateX(0);
}


/* ---------------------- cursor */
/* Esconde cursor nativo */
body {
    cursor: none;
}

/* Ponto central */
#cursor-dot {
    width: 8px;
    height: 8px;
    background: #ffffff;
    border-radius: 50%;
    position: fixed;
    top: 0;
    left: 0;
    pointer-events: none;
    z-index: 99999;
    transform: translate(-50%, -50%);
    transition:
        transform 0.1s,
        width 0.2s,
        height 0.2s,
        background 0.2s;
    mix-blend-mode: exclusion;
}

/* Anel exterior */
#cursor-ring {
    width: 36px;
    height: 36px;
    border: 1.5px solid #ff5100;
    border-radius: 50%;
    position: fixed;
    top: 0;
    left: 0;
    pointer-events: none;
    z-index: 99998;
    transform: translate(-50%, -50%);
    transition:
        transform .12s cubic-bezier(.23,1,.32,1),
        width .3s,
        height .3s,
        border-color .3s;
}

/* Hover links e botões */
body:has(a:hover) #cursor-dot,
body:has(button:hover) #cursor-dot,
body:has(.elementor-button:hover) #cursor-dot {
    width: 16px;
    height: 16px;
    background: #0067a6;
}

body:has(a:hover) #cursor-ring,
body:has(button:hover) #cursor-ring,
body:has(.elementor-button:hover) #cursor-ring {
    width: 64px;
    height: 64px;
    border-color: #0067a6;
}



/* ---------------------- barra rolante categorias */
.croqui-marquee-wrap {
    width: 100%;
    overflow: hidden;
    border-top: 1px solid rgba(255,255,255,.1);
    border-bottom: 1px solid rgba(255,255,255,.1);
    padding: 20px 0;
    position: relative;
}

.croqui-marquee-track {
    display: flex;
    width: max-content;
    gap: 3rem;
    animation: croquiMarqueeScroll 22s linear infinite;
}

.croqui-marquee-wrap:hover .croqui-marquee-track {
    animation-play-state: paused;
}

.croqui-marquee-item {
    font-size: 18px;
    font-weight: 300;
    letter-spacing: .08em;
    text-transform: uppercase;
    white-space: nowrap;
    color: #ff5100;
    transition: color .3s ease;
}

.croqui-marquee-item:hover {
    color: #0067a6;
}

.croqui-marquee-sep {
    color: #0067a6;
}

@keyframes croquiMarqueeScroll {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(-50%);
    }
}

/* ---------------------- barra percentagem */
.scroll-progress-bar {
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 2px;
    background: #f99d31;
    z-index: 10000;
    overflow: hidden;

    opacity: 0;
    transition: opacity 0.3s ease;
}

.scroll-progress-fill {
    width: 0%;
    height: 100%;
    background: #0096d6;
    transition: width 0.05s linear;
}

.scroll-progress-percent {
    position: fixed;
    left: 20px;
    top: 0;

    font-size: 10px;
    line-height: 1;
    font-weight: 500;
    letter-spacing: 0.05em;
    color: #0096d6;

    z-index: 10001;
    pointer-events: none;

    opacity: 0;
    transition: opacity 0.3s ease;
}

.scroll-progress-bar.visible,
.scroll-progress-percent.visible {
    opacity: 1;
}