/*
 Theme Name:   Hello Elementor Child
 Theme URI:    https://profinassociates.com/
 Description:  Child theme for Hello Elementor
 Author:       Profin Associates
 Author URI:   https://profinassociates.com/
 Template:     hello-elementor
 Version:      1.0.0
 Text Domain:  hello-elementor-child
*/

/* Overflow removal site-wide */
html,
body {
    overflow-x: hidden !important;
    width: 100% !important;
}

/* Scroll Bar Custom Color */
::-webkit-scrollbar {
    width: 0.3vw !important;
    background: #F5F5F5 !important;
}
::-webkit-scrollbar-thumb {
    background: #D2AE5B !important;
	border-radius: 0px !important;
}

/* Text Select Color */
::selection {
  background: #D2AE5B!important;
  color: #fff !important;         
}
/* For WebKit browsers (Safari, Chrome) */
::-moz-selection {
  background: #D2AE5B !important;
  color: #9fff !important;
}

/* Line Height Removal */
.line-fix {
    line-height: 0px !important;
}

/* ===== BUSINESS SERVICES FORM ===== */

.cf7-form-wrap {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

.cf7-form-wrap br {
  display: none !important;
}

/* Tight gap between label and field */
.cf7-form-wrap .field-wrap {
  display: block !important;
  width: 100% !important;
  margin: 0 0 20px 0 !important;
  padding: 0 !important;
  line-height: 1 !important;
}

.cf7-form-wrap p,
.cf7-form-wrap .field-wrap p {
  margin-block-end: 0 !important;
  margin-block-start: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Labels - acts as placeholder */
.cf7-form-wrap label {
  display: block !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  color: #000 !important;
  margin: 0 0 2px 0 !important;
  padding: 0 !important;
  line-height: 1.2 !important;
}

/* ===== BOTTOM BORDER STYLE ===== */
.cf7-form-wrap .wpcf7-text,
.cf7-form-wrap .wpcf7-email,
.cf7-form-wrap .wpcf7-tel,
.cf7-form-wrap .wpcf7-select {
  display: block !important;
  width: 100% !important;
  height: 36px !important;
  padding: 0 4px !important;
  border: none !important;
  border-bottom: 1.5px solid #DFDFDF !important;
  border-radius: 0px !important;
  font-size: 14px !important;
  color: #000 !important;
  background: transparent !important;
  outline: none !important;
  box-shadow: none !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  line-height: 36px !important;
  transition: border-color 0.2s !important;
}

/* Focus */
.cf7-form-wrap .wpcf7-text:focus,
.cf7-form-wrap .wpcf7-email:focus,
.cf7-form-wrap .wpcf7-tel:focus,
.cf7-form-wrap .wpcf7-select:focus {
  border-bottom-color: #D2AE5B !important;
  box-shadow: none !important;
}

/* Select arrow */
.cf7-form-wrap .wpcf7-select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 4px center !important;
  padding-right: 28px !important;
  cursor: pointer !important;
}

/* wpcf7-form-control-wrap */
.cf7-form-wrap .wpcf7-form-control-wrap {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* ===== TEXTAREA ===== */
.cf7-form-wrap .wpcf7-textarea {
  display: block !important;
  width: 100% !important;
  height: 80px !important;
  padding: 4px !important;
  border: none !important;
  border-bottom: 1.5px solid #DFDFDF !important;
  border-radius: 0px !important;
  font-size: 14px !important;
  color: #000 !important;
  background: transparent !important;
  outline: none !important;
  box-shadow: none !important;
  box-sizing: border-box !important;
  line-height: 1.5 !important;
  resize: none !important;
  margin: 0 !important;
  transition: border-color 0.2s !important;
}

.cf7-form-wrap .wpcf7-textarea:focus {
  border-bottom-color: #D2AE5B !important;
  box-shadow: none !important;
}

/* ===== ERROR ===== */
.cf7-form-wrap .wpcf7-not-valid {
  border-bottom-color: #c0392b !important;
}

.cf7-form-wrap .wpcf7-not-valid-tip {
  font-size: 12px !important;
  color: #c0392b !important;
  margin-top: 4px !important;
  display: block !important;
  line-height: 1.4 !important;
}

/* ===== SUBMIT BUTTON ===== */
.cf7-form-wrap .wpcf7-submit {
  background: #072653 !important;
  color: #fff !important;
  border: none !important;
  border-radius: 0px !important;
  padding: 10px 30px !important;
  font-size: 15px !important;
  font-weight: 300 !important;
  cursor: pointer !important;
  width: auto !important;
  height: auto !important;
  margin: 8px 0 0 0 !important;
  transition: background 0.2s, color 0.2s !important;
}

.cf7-form-wrap .wpcf7-submit:hover {
  background: #D2AE5B !important;
  color: #ffffff !important;
}

/* ===== CF7 RESPONSE ===== */
.wpcf7 form.sent .wpcf7-response-output {
  border-radius: 0px !important;
  border: 1px solid #D2AE5B !important;
  color: #072653 !important;
  background: rgba(210,174,91,0.1) !important;
  padding: 10px 20px !important;
  font-size: 14px !important;
  text-align: center !important;
  margin-top: 12px !important;
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
  border-radius: 0px !important;
  border: 1px solid #c0392b !important;
  color: #c0392b !important;
  background: #fdf0ee !important;
  padding: 10px 20px !important;
  font-size: 14px !important;
  text-align: center !important;
  margin-top: 12px !important;
}

/* Hide heading by default on rest archieve pages */
.blog-page-heading { 
    display: none; 
}

/* Show heading only on the blog/posts page */
.blog .blog-page-heading { 
    display: block; 
}

/* Hide dynamic breadcrumb item on blog page */
.blog .hide-on-blog { 
    display: none; 
}
/* Show heading for rest archieve pages */
.hide-on-blog { 
    display: block; 
}

/* Elementor Pagination*/
.elementor-pagination {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 2px !important;
    margin-top: 50px !important;
    padding: 0 !important;
}

.elementor-pagination .page-numbers {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 38px !important;
    height: 38px !important;
    padding: 0 10px !important;
    border-radius: 0px !important;
    border: 1px solid #e0e0e0 !important;
    color: #666 !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    text-decoration: none !important;
    transition: all 0.2s ease !important;
    background: transparent !important;
}

.elementor-pagination a.page-numbers:hover {
    background: #DFDFDF !important;
    border-color: #DFDFDF !important;
    color: #000000 !important;
}

.elementor-pagination .page-numbers.current {
    background: #000000 !important;
    border-color: #000000 !important;
    color: white !important;
    font-weight: 500 !important;
}

/* Prev/Next arrows if your pagination type includes them */
.elementor-pagination .page-numbers.next,
.elementor-pagination .page-numbers.prev {
    font-weight: 500 !important;
}

/* ==========================================================
   Reusable FAQ + Process Section styles
   ========================================================== */

:root {
    --dfp-primary: #D2AE5B;
    --dfp-secondary: #072653;
    --dfp-black: #000000;
    --dfp-border: #DFDFDF;
}

/* ---------- Process (responsive image-box grid) ---------- */
.dynamic-process-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 30px !important;
    width: 100% !important;
    max-width: 100%; /* no !important — lets the shortcode's width="" inline style override this */
    margin: 0 auto !important;
}

.dynamic-process-box {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    padding: 32px 20px !important;
    background: #fff !important;
    border: 1px solid var(--dfp-border) !important;
    border-radius: 0px !important;
    transition: border-color 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.dynamic-process-box:hover {
    border-color: var(--dfp-primary) !important;
}

.dynamic-process-icon {
    width: 64px !important;
    height: 64px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin-bottom: 20px !important;
    border-radius: 0px !important;
}

.dynamic-process-icon img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
}

.dynamic-process-title {
    margin: 0 !important;
    font-size: 18px !important;
    font-weight: 500 !important;
    color: var(--dfp-secondary) !important;
}

/* ---------- FAQ ---------- */
.dynamic-faq-section {
    width: 100% !important;
    max-width: 100%; /* no !important — lets the shortcode's width="" inline style override this */
    margin: 0 auto !important;
}

.dynamic-faq-item {
    border: 1px solid var(--dfp-border) !important;
    border-radius: 0px !important;
    margin-bottom: 12px !important;
}

.dynamic-faq-question {
    width: 100% !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 16px !important;
    background: transparent !important;
    border: none !important;
    text-align: left !important;
    padding: 20px !important;
    font-size: 18px !important;
    font-weight: 500 !important;
    color: var(--dfp-black) !important;
    cursor: pointer !important;
    transition: color 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

/* the question text — without min-width:0 a flex item won't shrink below
   its content's natural width, which was pushing long questions past the
   container instead of wrapping onto a new line */
.dynamic-faq-question span:first-child {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: break-word !important;
}

.dynamic-faq-item.is-open .dynamic-faq-question {
    color: var(--dfp-secondary) !important;
}

.dynamic-faq-icon {
    flex-shrink: 0 !important;
    display: flex !important;
    color: var(--dfp-primary) !important;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.dynamic-faq-item.is-open .dynamic-faq-icon {
    transform: rotate(45deg) !important;
}

.dynamic-faq-answer {
    max-height: 0 !important;
    overflow: hidden !important;
    transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.dynamic-faq-answer-inner {
    padding: 0 20px 20px !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    line-height: 1.6 !important;
    color: var(--dfp-black) !important;
}

/* ---------- Breakpoints ---------- */
@media (max-width: 1024px) {
    .dynamic-process-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 20px !important; }
    .dynamic-faq-question { font-size: 16px !important; }
}

@media (max-width: 767px) {
    .dynamic-process-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 10px !important; }
    .dynamic-process-box { padding: 24px 16px !important; }
    .dynamic-faq-question { font-size: 15px !important; padding: 16px !important; }
}

/* Gradient-text */
.gradient-text {
  background: linear-gradient(90deg, #ffffff, #DAB663, #ffffff);
  background-size: 200% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: gradientMove 3s linear infinite;
}

@keyframes gradientMove {
  0% { background-position: 0% center; }
  100% { background-position: 200% center; }
}



