/*
Theme Name: Astra Child
Theme URI: https://wpastra.com/
Template: astra
Author: Brainstorm Force
Author URI: https://wpastra.com/about/?utm_source=theme_preview&utm_medium=author_link&utm_campaign=astra_theme
Description: The Astra WordPress theme is lightning-fast and highly customizable. It has over 1 million downloads and the only theme in the world with 6,000+ five-star reviews! It’s ideal for professional web designers, solopreneurs, small businesses, eCommerce, membership sites and any type of website. It offers special features and templates so it works perfectly with all page builders like Spectra, Elementor, Beaver Builder, etc. Fast performance, clean code, mobile-first design and schema markup are all built-in, making the theme exceptionally SEO-friendly. It’s fully compatible with WooCommerce, SureCart and other eCommerce plugins and comes with lots of store-friendly features and templates. Astra also provides expert support for free users. A dedicated team of fully trained WordPress experts are on hand to help with every aspect of the theme. Try the live demo of Astra: https://zipwp.org/themes/astra/
Tags: custom-menu,custom-logo,entertainment,one-column,two-columns,left-sidebar,e-commerce,right-sidebar,custom-colors,editor-style,featured-images,full-width-template,microformats,post-formats,rtl-language-support,theme-options,threaded-comments,translation-ready,blog
Version: 4.13.10.1787630027
Updated: 2026-08-25 03:53:47

*/

/* =========================================================================
   3-Step Appointment Booking Form Styles (Add to style.css or Additional CSS)
   ========================================================================= */
.wp-booking-wrapper {
  width: 100%;
  max-width: 860px;
  margin: 20px auto;
  box-sizing: border-box;
}
.wp-booking-wrapper * { 
  box-sizing: border-box; 
}
/* Top Step Wizard Header */
.wp-step-wizard {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-bottom: 28px;
}
.wp-step-item {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #6e6a60;
  font-size: 15px;
  font-weight: 600;
}
.wp-step-item.active { 
  color: var(--e-global-color-primary); 
}
.wp-step-number {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background-color: #eef3ea;
  color: #6e6a60;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 14px;
  transition: all 0.3s ease;
}
.wp-step-item.active .wp-step-number,
.wp-step-item.completed .wp-step-number {
  background-color: var(--e-global-color-secondary);
  color: #ffffff;
}
.wp-step-line {
  width: 48px;
  height: 2px;
  background-color: var(--e-global-color-507e0c2);
  border-radius: 2px;
}
/* Main Card */
.wp-booking-card {
  background-color: #FFFDF8;
  border: 1px solid var(--e-global-color-507e0c2);
  border-radius: 24px;
  padding: 40px 44px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.03);
}
.wp-step-panel { 
  display: none; 
}
.wp-step-panel.active {
  display: block;
  animation: wpFadeIn 0.3s ease-in-out;
}
@keyframes wpFadeIn {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}
.wp-form-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-bottom: 24px;
}
.wp-form-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.wp-full-width { 
  grid-column: 1 / -1; 
}
.wp-form-label {
  font-size: 14px;
  font-weight: 700;
  color: var(--e-global-color-primary);
}
/* Inputs & Textarea */
.wp-form-input, 
.wp-form-textarea {
  width: 100%;
  height: 40px;
  padding: 0 16px;
  background-color: #f6f3eb !important;
  border: 1px solid var(--e-global-color-507e0c2) !important;
  border-radius: 12px !important;
  font-size: 15px !important;
  color: var(--e-global-color-primary) !important;
  outline: none !important;
  box-shadow: none !important;
  transition: border-color 0.2s;
}
.wp-form-input::placeholder, 
.wp-form-textarea::placeholder {
  color: #9b968a !important;
}
.wp-form-input:focus, 
.wp-form-select:focus, 
.wp-form-textarea:focus {
  border-color: var(--e-global-color-secondary) !important;
}
/* Dropdown / Select */
.wp-form-select {
  width: 100%;
  height: 40px;
  padding: 0 42px 0 16px !important;
  background-color: #f6f3eb !important;
  border: 1px solid var(--e-global-color-507e0c2) !important;
  border-radius: 12px !important;
  font-size: 15px !important;
  color: var(--e-global-color-primary) !important;
  outline: none !important;
  box-shadow: none !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  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='%23232461' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 16px center !important;
  background-size: 16px !important;
  cursor: pointer;
}
.wp-form-select:invalid {
  color: #9b968a !important;
}
.wp-form-textarea {
  height: 100px;
  padding: 14px 16px;
  resize: vertical;
}
/* Date & Time Input Icons */
.wp-input-with-icon { 
  position: relative; 
  width: 100%; 
}
.wp-input-with-icon input[type="date"],
.wp-input-with-icon input[type="time"] {
  padding-right: 46px !important;
}
.wp-input-with-icon input[type="date"]::-webkit-calendar-picker-indicator,
.wp-input-with-icon input[type="time"]::-webkit-calendar-picker-indicator {
  position: absolute;
  right: 0;
  top: 0;
  width: 48px;
  height: 100%;
  opacity: 0;
  cursor: pointer;
  z-index: 2;
}
.wp-input-icon {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  color: var(--e-global-color-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1;
}
/* Consultation Type Radio Cards */
.wp-consultation-options {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.wp-consult-card {
  position: relative;
  border: 1px solid var(--e-global-color-507e0c2);
  background-color: #f6f3eb;
  border-radius: 14px;
  padding: 18px 20px;
  display: flex;
  align-items: center;
  gap: 16px;
  cursor: pointer;
  transition: all 0.2s ease;
}
.wp-consult-card.selected {
  border: 1px solid var(--e-global-color-secondary);
  background-color: #ffffff;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.05);
}
.wp-consult-card input[type="radio"] {
  position: absolute;
  opacity: 0;
}
.wp-consult-icon-badge {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background-color: #ffffff;
  border: 1px solid var(--e-global-color-507e0c2);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--e-global-color-secondary);
  flex-shrink: 0;
}
.wp-consult-card.selected .wp-consult-icon-badge {
  background-color: #eef3ea;
  border-color: transparent;
}
.wp-consult-info {
  display: flex;
  flex-direction: column;
}
.wp-consult-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--e-global-color-primary);
}
.wp-consult-desc {
  font-size: 13px;
  color: #6e6a60;
  margin-top: 2px;
}
.wp-disclaimer-text {
  font-size: 13px;
  color: #6e6a60;
  margin-bottom: 24px;
}
/* Button Base & Consolidated Styles */
.wp-btn-primary,
.wp-btn-secondary,
.wp-btn-navy {
  height: 50px;
  padding: 0 32px;
  border-radius: 12px;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  transition: all 0.2s ease;
  text-decoration: none;
  box-shadow: none;
}
.wp-btn-primary {
  width: 100%;
  height: 54px;
  background-color: var(--e-global-color-secondary);
  color: #ffffff;
  border: none;
  border-radius: 14px;
  font-size: 16px;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}
.wp-btn-primary:hover {
  background-color: var(--e-global-color-accent);
  transform: translateY(-1px);
}
.wp-btn-secondary {
  background-color: transparent !important;
  color: var(--e-global-color-primary) !important;
  border: 1.5px solid var(--e-global-color-primary) !important;
  box-shadow: none !important;
}
.wp-btn-secondary:hover {
  background-color: rgba(43, 44, 124, 0.06) !important;
}
.wp-btn-navy {
  background-color: var(--e-global-color-primary);
  border: none;
}
.wp-btn-navy a {
	color: #ffffff;
}
/* Step 2 Summary */
.wp-summary-heading {
  font-size: 24px;
  font-weight: 700;
  color: var(--e-global-color-primary);
  margin-bottom: 24px;
}
.wp-summary-table-box {
  border: 1px solid var(--e-global-color-507e0c2);
  border-radius: 16px;
  overflow: hidden;
  margin-bottom: 20px;
}
.wp-summary-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 18px;
  border-bottom: 1px solid var(--e-global-color-507e0c2);
}
.wp-summary-row:last-child { 
  border-bottom: none; 
}
.wp-summary-row.wp-fee-row { 
  background-color: #eef3ea; 
}
.wp-summary-label {
  font-size: 15px;
  color: #6e6a60;
}
.wp-summary-row.wp-fee-row .wp-summary-label {
  color: var(--e-global-color-primary);
  font-weight: 700;
}
.wp-summary-value {
  font-size: 15px;
  color: var(--e-global-color-primary);
  font-weight: 700;
}
.wp-fee-amount { 
  font-size: 18px; 
}
.wp-security-notice {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13.5px;
  color: var(--e-global-color-secondary);
  margin-bottom: 28px;
  font-weight: 500;
}
.wp-security-notice span {
  color: var(--e-global-color-6d76a87);
}
.wp-security-notice svg {
	flex-shrink: 0;
}
.wp-action-buttons {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.wp-action-buttons .wp-btn-primary {
  width: auto;
  padding: 0 40px;
}
/* Step 3 Confirmation */
.wp-confirmation-box {
  text-align: center;
  padding: 20px 0;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.wp-success-icon-circle {
  width: 68px;
  height: 68px;
  border-radius: 50%;
  background-color: #eef3ea;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--e-global-color-secondary);
  margin-bottom: 24px;
}
.wp-confirm-title {
  font-size: 26px;
  font-weight: 700;
  color: var(--e-global-color-primary);
  margin-bottom: 12px;
}
.wp-confirm-desc {
  font-size: 15px;
  color: #6e6a60;
  max-width: 520px;
  line-height: 1.5;
  margin-bottom: 24px;
}
.wp-ref-badge {
  display: inline-block;
  background-color: #eef3ea;
  color: var(--e-global-color-secondary);
  font-weight: 700;
  font-size: 14.5px;
  padding: 10px 24px;
  border-radius: 50px;
  margin-bottom: 32px;
}
.wp-confirm-actions {
  display: flex;
  gap: 16px;
  justify-content: center;
}
/* =========================================================================
   Responsive Media Queries (320px Connecting Lines Visibility Fix)
   ========================================================================= */
@media (max-width: 767px) {
  .wp-booking-card { 
    padding: 24px 20px; 
  }
  
  .wp-consultation-options { 
    grid-template-columns: 1fr; 
  }
  .wp-action-buttons { 
    flex-direction: column-reverse; 
  }
  .wp-action-buttons button { 
    width: 100% !important; 
  }
  .wp-confirm-actions { 
    flex-direction: column; 
    width: 100%; 
  }
  .wp-confirm-actions button { 
    width: 100%; 
  }
}
/* 576px to 767px screen: 2 Grid Columns for Inputs */
@media (min-width: 576px) and (max-width: 767px) {
  .wp-form-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
/* Below 575px Mobile Screens (Ensures 320px Line Visibility & Proportional Scaling) */
@media (max-width: 575px) {
  .wp-booking-card {
    padding: 20px;
  }
  /* Wizard Stepper Fix for Mobile Screens (Line is guaranteed visible) */
  .wp-step-wizard {
    gap: 6px;
    margin-bottom: 20px;
  }
  .wp-step-item {
    gap: 4px;
  }
  .wp-step-item span {
    font-size: 12px;
  }
  .wp-step-number {
    width: 26px;
    height: 26px;
    font-size: 12px;
    flex-shrink: 0;
  }
  .wp-step-line {
    width: 18px;
    min-width: 10px;
    flex-shrink: 0;
  }
  .wp-form-grid {
    grid-template-columns: 1fr !important;
    gap: 14px;
  }
  .wp-summary-heading {
    font-size: 20px;
    margin-bottom: 16px;
  }
  .wp-summary-row {
    padding: 12px 14px;
    align-items: flex-start;
    gap: 10px;
  }
  .wp-summary-label {
    font-size: 14px;
    white-space: nowrap;
    flex-shrink: 0;
  }
  .wp-summary-value {
    font-size: 14px;
    text-align: right;
    word-break: break-word;
  }
  .wp-confirm-title {
    font-size: 22px;
  }
  .wp-confirm-desc {
    font-size: 14px;
  }
  .wp-form-group {
    gap: 2px;
  }
  .wp-ref-badge {
    padding: 5px 16px;
    font-size: 13px;
  }
  .wp-success-icon-circle {
    width: 60px;
    height: 60px;
  }
  .wp-success-icon-circle svg {
    height: 28px;
    width: 28px;
  }
}
/* Extra Small Mobile Screens (320px - 360px Line Fix) */
@media (max-width: 360px) {
  .wp-step-wizard {
    gap: 4px;
  }
  .wp-step-item {
    gap: 3px;
  }
  .wp-step-item span {
    font-size: 11px;
  }
  .wp-step-number {
    width: 28px;
    height: 28px;
    font-size: 11px;
  }
  .wp-step-line {
    width: 14px;
    min-width: 8px;
    flex-shrink: 0;
  }
}
