.popup-template .modal {
opacity: 0;
-webkit-transition: all 250ms ease;
-o-transition: all 250ms ease;
transition: all 250ms ease;
}
.popup-template .modal.is-open {
opacity: 1;
-webkit-transition: all 250ms ease;
-o-transition: all 250ms ease;
transition: all 250ms ease;
}.wpcf7 .screen-reader-response {
position: absolute;
overflow: hidden;
clip: rect(1px, 1px, 1px, 1px);
clip-path: inset(50%);
height: 1px;
width: 1px;
margin: -1px;
padding: 0;
border: 0;
word-wrap: normal !important;
}
.wpcf7 form .wpcf7-response-output {
margin: 2em 0.5em 1em;
padding: 0.2em 1em;
border: 2px solid #00a0d2; }
.wpcf7 form.init .wpcf7-response-output,
.wpcf7 form.resetting .wpcf7-response-output,
.wpcf7 form.submitting .wpcf7-response-output {
display: none;
}
.wpcf7 form.sent .wpcf7-response-output {
border-color: #46b450; }
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output {
border-color: #dc3232; }
.wpcf7 form.spam .wpcf7-response-output {
border-color: #f56e28; }
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
border-color: #ffb900; }
.wpcf7-form-control-wrap {
position: relative;
}
.wpcf7-not-valid-tip {
color: #dc3232; font-size: 1em;
font-weight: normal;
display: block;
}
.use-floating-validation-tip .wpcf7-not-valid-tip {
position: relative;
top: -2ex;
left: 1em;
z-index: 100;
border: 1px solid #dc3232;
background: #fff;
padding: .2em .8em;
width: 24em;
}
.wpcf7-list-item {
display: inline-block;
margin: 0 0 0 1em;
}
.wpcf7-list-item-label::before,
.wpcf7-list-item-label::after {
content: " ";
}
.wpcf7-spinner {
visibility: hidden;
display: inline-block;
background-color: #23282d; opacity: 0.75;
width: 24px;
height: 24px;
border: none;
border-radius: 100%;
padding: 0;
margin: 0 24px;
position: relative;
}
form.submitting .wpcf7-spinner {
visibility: visible;
}
.wpcf7-spinner::before {
content: '';
position: absolute;
background-color: #fbfbfc; top: 4px;
left: 4px;
width: 6px;
height: 6px;
border: none;
border-radius: 100%;
transform-origin: 8px 8px;
animation-name: spin;
animation-duration: 1000ms;
animation-timing-function: linear;
animation-iteration-count: infinite;
}
@media (prefers-reduced-motion: reduce) {
.wpcf7-spinner::before {
animation-name: blink;
animation-duration: 2000ms;
}
}
@keyframes spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
@keyframes blink {
from {
opacity: 0;
}
50% {
opacity: 1;
}
to {
opacity: 0;
}
}
.wpcf7 input[type="file"] {
cursor: pointer;
}
.wpcf7 input[type="file"]:disabled {
cursor: default;
}
.wpcf7 .wpcf7-submit:disabled {
cursor: not-allowed;
}
.wpcf7 input[type="url"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"] {
direction: ltr;
}.slick-slider
{
position: relative;
display: block;
box-sizing: border-box;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-touch-callout: none;
-khtml-user-select: none;
-ms-touch-action: pan-y;
touch-action: pan-y;
-webkit-tap-highlight-color: transparent;
}
.slick-list
{
position: relative;
display: block;
overflow: hidden;
margin: 0;
padding: 0;
}
.slick-list:focus
{
outline: none;
}
.slick-list.dragging
{
cursor: pointer;
cursor: hand;
}
.slick-slider .slick-track,
.slick-slider .slick-list
{
-webkit-transform: translate3d(0, 0, 0);
-moz-transform: translate3d(0, 0, 0);
-ms-transform: translate3d(0, 0, 0);
-o-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
}
.slick-track
{
position: relative;
top: 0;
left: 0;
display: block;
margin-left: auto;
margin-right: auto;
}
.slick-track:before,
.slick-track:after
{
display: table;
content: '';
}
.slick-track:after
{
clear: both;
}
.slick-loading .slick-track
{
visibility: hidden;
}
.slick-slide
{
display: none;
float: left;
height: 100%;
min-height: 1px;
}
[dir='rtl'] .slick-slide
{
float: right;
}
.slick-slide img
{
display: block;
}
.slick-slide.slick-loading img
{
display: none;
}
.slick-slide.dragging img
{
pointer-events: none;
}
.slick-initialized .slick-slide
{
display: block;
}
.slick-loading .slick-slide
{
visibility: hidden;
}
.slick-vertical .slick-slide
{
display: block;
height: auto;
border: 1px solid transparent;
}
.slick-arrow.slick-hidden {
display: none;
}#pa-booking-container {
max-width: 800px;
margin: 0 auto;
padding: 20px;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
line-height: 1.6;
} .pa-steps-indicator {
display: flex;
justify-content: space-between;
margin-bottom: 30px;
padding: 0 20px;
}
.pa-step {
flex: 1;
text-align: center;
padding: 12px 8px;
background-color: #f5f5f5;
border: 2px solid #e0e0e0;
border-radius: 25px;
margin: 0 5px;
font-size: 14px;
font-weight: 600;
color: #666;
transition: all 0.3s ease;
}
.pa-step.active {
background-color: #007cba;
border-color: #007cba;
color: white;
}
.pa-step:first-child {
margin-left: 0;
}
.pa-step:last-child {
margin-right: 0;
} .pa-step-content {
display: none;
background: white;
border-radius: 10px;
padding: 30px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
margin-bottom: 20px;
}
.pa-step-content.active {
display: block;
}
.pa-step-content h3 {
margin-top: 0;
margin-bottom: 25px;
color: #333;
font-size: 24px;
font-weight: 600;
} .pa-specialty-options {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 15px;
margin-bottom: 20px;
}
.pa-specialty-btn {
padding: 20px;
border: 2px solid #e0e0e0;
border-radius: 10px;
background: white;
color: #333;
font-size: 16px;
font-weight: 500;
cursor: pointer;
transition: all 0.3s ease;
text-align: center;
}
.pa-specialty-btn:hover {
border-color: #007cba;
background-color: #f8fcff;
transform: translateY(-2px);
box-shadow: 0 4px 8px rgba(0, 124, 186, 0.2);
} .pa-locations-list {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 15px;
margin-bottom: 20px;
}
.pa-location-item {
padding: 20px;
border: 2px solid #e0e0e0;
border-radius: 10px;
background: white;
cursor: pointer;
transition: all 0.3s ease;
}
.pa-location-item:hover {
border-color: #007cba;
background-color: #f8fcff;
transform: translateY(-2px);
box-shadow: 0 4px 8px rgba(0, 124, 186, 0.2);
}
.pa-location-item.selected {
border-color: #007cba;
background-color: #007cba;
color: white;
}
.pa-location-item h4 {
margin: 0 0 8px 0;
font-size: 18px;
font-weight: 600;
}
.pa-location-item p {
margin: 0;
color: #666;
font-size: 14px;
}
.pa-location-item.selected p {
color: rgba(255, 255, 255, 0.9);
} .pa-doctors-list {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 15px;
margin-bottom: 20px;
}
.pa-doctor-item {
padding: 20px;
border: 2px solid #e0e0e0;
border-radius: 10px;
background: white;
cursor: pointer;
transition: all 0.3s ease;
text-align: center;
}
.pa-doctor-item:hover {
border-color: #007cba;
background-color: #f8fcff;
transform: translateY(-2px);
box-shadow: 0 4px 8px rgba(0, 124, 186, 0.2);
}
.pa-doctor-item.selected {
border-color: #007cba;
background-color: #007cba;
color: white;
}
.pa-doctor-item h4 {
margin: 0 0 5px 0;
font-size: 18px;
font-weight: 600;
}
.pa-doctor-item p {
margin: 0;
color: #666;
font-size: 14px;
}
.pa-doctor-item.selected p {
color: rgba(255, 255, 255, 0.9);
} .pa-date-picker {
margin-bottom: 25px;
}
.pa-date-picker label {
display: block;
margin-bottom: 15px;
font-weight: 600;
color: #333;
font-size: 16px;
} #pa-custom-calendar {
max-width: 400px;
margin: 0 auto;
border: 2px solid #e0e0e0;
border-radius: 10px;
overflow: hidden;
background: white;
}
.pa-calendar-header {
display: flex;
justify-content: space-between;
align-items: center;
background-color: #007cba;
color: white;
padding: 15px 20px;
}
.pa-calendar-title {
margin: 0;
font-size: 18px;
font-weight: 600;
}
.pa-calendar-nav {
background: rgba(255, 255, 255, 0.2);
border: none;
color: white;
width: 35px;
height: 35px;
border-radius: 50%;
font-size: 18px;
font-weight: bold;
cursor: pointer;
transition: background-color 0.3s ease;
display: flex;
align-items: center;
justify-content: center;
}
.pa-calendar-nav:hover {
background: rgba(255, 255, 255, 0.3);
}
.pa-calendar-weekdays {
display: grid;
grid-template-columns: repeat(7, 1fr);
background-color: #f8fcff;
border-bottom: 1px solid #e0e0e0;
}
.pa-weekday {
padding: 12px 8px;
text-align: center;
font-weight: 600;
font-size: 14px;
color: #007cba;
}
.pa-calendar-days {
display: grid;
grid-template-columns: repeat(7, 1fr);
}
.pa-calendar-day {
aspect-ratio: 1;
display: flex;
align-items: center;
justify-content: center;
border: 1px solid #f0f0f0;
font-size: 14px;
font-weight: 500;
transition: all 0.2s ease;
position: relative;
}
.pa-calendar-day.pa-other-month {
background-color: #fafafa;
}
.pa-calendar-day.pa-past-date {
background-color: #f5f5f5;
color: #ccc;
cursor: not-allowed;
}
.pa-calendar-day.pa-available-date {
background-color: #e8f5e8;
color: #27ae60;
cursor: pointer;
font-weight: 600;
}
.pa-calendar-day.pa-available-date:hover {
background-color: #d4edda;
transform: scale(1.05);
}
.pa-calendar-day.pa-unavailable-date {
background-color: #ffeaea;
color: #e74c3c;
cursor: not-allowed;
}
.pa-calendar-day.pa-selected-date {
background-color: #007cba !important;
color: white !important;
font-weight: bold;
box-shadow: 0 0 10px rgba(0, 124, 186, 0.5);
} .pa-available-dates-info {
background-color: #f8fcff;
border-top: 1px solid #e0e0e0;
padding: 15px 20px;
}
.pa-available-dates-info p {
margin: 0 0 10px 0;
color: #007cba;
font-size: 14px;
font-weight: 600;
}
.pa-date-legend {
display: flex;
gap: 15px;
flex-wrap: wrap;
}
.pa-legend-item {
display: flex;
align-items: center;
gap: 6px;
font-size: 12px;
color: #666;
}
.pa-legend-color {
width: 12px;
height: 12px;
border-radius: 3px;
display: inline-block;
}
.pa-legend-color.pa-available {
background-color: #27ae60;
}
.pa-legend-color.pa-unavailable {
background-color: #e74c3c;
}
.pa-legend-color.pa-past {
background-color: #ccc;
} .pa-time-slots {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
gap: 10px;
margin-bottom: 20px;
}
.pa-time-slot {
padding: 12px;
border: 2px solid #e0e0e0;
border-radius: 8px;
background: white;
color: #333;
font-size: 14px;
font-weight: 500;
cursor: pointer;
transition: all 0.3s ease;
text-align: center;
}
.pa-time-slot.available:hover {
border-color: #007cba;
background-color: #f8fcff;
transform: translateY(-2px);
}
.pa-time-slot.selected {
border-color: #007cba;
background-color: #007cba;
color: white;
}
.pa-time-slot.unavailable {
background-color: #f5f5f5;
color: #999;
cursor: not-allowed;
opacity: 0.6;
} .pa-form-row {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px;
margin-bottom: 20px;
}
.pa-form-group {
display: flex;
flex-direction: column;
}
.pa-form-group label {
margin-bottom: 8px;
font-weight: 600;
color: #333;
}
.pa-form-group input {
padding: 12px;
border: 2px solid #e0e0e0;
border-radius: 8px;
font-size: 16px;
transition: border-color 0.3s ease;
}
.pa-form-group textarea {
padding: 12px;
border: 2px solid #e0e0e0;
border-radius: 8px;
font-size: 16px;
font-family: inherit;
resize: vertical;
min-height: 80px;
transition: border-color 0.3s ease;
}
.pa-form-group input:focus,
.pa-form-group textarea:focus {
outline: none;
border-color: #007cba;
}
.pa-form-group input:invalid {
border-color: #e74c3c;
}
.pa-form-group-full {
grid-column: 1 / -1; } .pa-appointment-summary {
background-color: #f8fcff;
border: 2px solid #007cba;
border-radius: 10px;
padding: 20px;
margin-bottom: 25px;
}
.pa-appointment-summary h4 {
margin: 0 0 15px 0;
color: #007cba;
font-size: 18px;
}
.pa-summary-item {
padding: 8px 0;
border-bottom: 1px solid #e0e0e0;
}
.pa-summary-item:last-child {
border-bottom: none;
} .pa-back-btn, .pa-submit-btn {
padding: 12px 24px;
border: none;
border-radius: 8px;
font-size: 16px;
font-weight: 600;
cursor: pointer;
transition: all 0.3s ease;
text-decoration: none;
display: inline-block;
text-align: center;
}
.pa-back-btn {
background-color: #f5f5f5;
color: #666;
margin-right: 15px;
}
.pa-back-btn:hover {
background-color: #e0e0e0;
color: #333;
}
.pa-submit-btn {
background-color: #007cba;
color: white;
}
.pa-submit-btn:hover {
background-color: #005a87;
transform: translateY(-2px);
box-shadow: 0 4px 8px rgba(0, 124, 186, 0.3);
}
.pa-restart-btn {
background-color: #ff7b2e;
color: white;
padding: 12px 24px;
border: none;
border-radius: 8px;
font-size: 16px;
font-weight: 600;
cursor: pointer;
transition: all 0.3s ease;
text-decoration: none;
display: inline-block;
text-align: center;
margin: 0 10px;
}
.pa-restart-btn:hover {
background-color: #e06624;
transform: translateY(-2px);
box-shadow: 0 4px 8px rgba(255, 123, 46, 0.3);
}
.pa-form-actions {
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 25px;
} .pa-message {
margin: 25px 0;
border-radius: 16px;
box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
overflow: hidden;
animation: slideInUp 0.5s ease-out;
position: relative;
}
.pa-error {
background: linear-gradient(135deg, #ff6b6b 0%, #ee5a52 100%);
border: none;
color: white;
padding: 20px 25px 20px 65px;
font-weight: 500;
font-size: 16px;
line-height: 1.5;
position: relative;
}
.pa-error::before {
content: "⚠";
position: absolute;
left: 22px;
top: 50%;
transform: translateY(-50%);
font-size: 24px;
font-weight: bold;
}
.pa-success {
background: linear-gradient(135deg, #4ecdc4 0%, #44a08d 100%);
border: none;
color: white;
padding: 20px 25px 20px 65px;
font-weight: 500;
font-size: 16px;
line-height: 1.5;
position: relative;
}
.pa-success::before {
content: "✓";
position: absolute;
left: 22px;
top: 50%;
transform: translateY(-50%);
font-size: 24px;
font-weight: bold;
background: rgba(255, 255, 255, 0.2);
width: 32px;
height: 32px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
}
.pa-success::after {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
height: 4px;
background: linear-gradient(90deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.1) 100%);
}
.pa-error::after {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
height: 4px;
background: linear-gradient(90deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.1) 100%);
} .pa-message-close {
position: absolute;
top: 15px;
right: 15px;
background: rgba(255, 255, 255, 0.2);
border: none;
color: white;
border-radius: 50%;
width: 24px;
height: 24px;
cursor: pointer;
font-size: 14px;
display: flex;
align-items: center;
justify-content: center;
transition: all 0.3s ease;
}
.pa-message-close:hover {
background: rgba(255, 255, 255, 0.3);
transform: scale(1.1);
} @keyframes slideInUp {
from {
transform: translateY(30px);
opacity: 0;
}
to {
transform: translateY(0);
opacity: 1;
}
} .pa-loading {
text-align: center;
padding: 40px;
background: rgba(255, 255, 255, 0.9);
border-radius: 10px;
margin: 20px 0;
}
.pa-spinner {
font-size: 24px;
color: #007cba;
animation: spin 1s linear infinite;
margin: 0 auto 15px;
display: inline-block;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
} @media (max-width: 768px) {
#pa-booking-container {
padding: 15px;
}
.pa-steps-indicator {
flex-direction: column;
gap: 10px;
}
.pa-step {
margin: 0;
font-size: 12px;
padding: 10px;
}
.pa-step-content {
padding: 20px;
}
.pa-specialty-options {
grid-template-columns: 1fr;
}
.pa-locations-list {
grid-template-columns: 1fr;
}
.pa-doctors-list {
grid-template-columns: 1fr;
}
.pa-form-row {
grid-template-columns: 1fr;
gap: 15px;
}
.pa-time-slots {
grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
}
.pa-form-actions {
flex-direction: column;
gap: 15px;
}
.pa-back-btn {
margin-right: 0;
width: 100%;
}
.pa-restart-btn {
margin: 0;
width: 100%;
}
.pa-submit-btn {
width: 100%;
}
.pa-date-legend {
flex-direction: column;
gap: 8px;
} .pa-success,
.pa-error {
padding: 18px 20px 18px 55px;
font-size: 15px;
border-radius: 12px;
margin: 20px 0;
}
.pa-success::before,
.pa-error::before {
left: 18px;
font-size: 20px;
}
.pa-success::before {
width: 28px;
height: 28px;
}
.pa-message-close {
top: 12px;
right: 12px;
width: 22px;
height: 22px;
font-size: 12px;
}
}
@media (max-width: 480px) {
.pa-steps-indicator {
padding: 0;
}
.pa-step {
font-size: 11px;
padding: 8px;
}
.pa-step-content h3 {
font-size: 20px;
}
.pa-time-slots {
grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
gap: 8px;
}
.pa-time-slot {
padding: 10px 5px;
font-size: 12px;
} .pa-success,
.pa-error {
padding: 15px 18px 15px 50px;
font-size: 14px;
border-radius: 10px;
margin: 15px 0;
}
.pa-success::before,
.pa-error::before {
left: 15px;
font-size: 18px;
}
.pa-success::before {
width: 26px;
height: 26px;
}
.pa-message-close {
top: 10px;
right: 10px;
width: 20px;
height: 20px;
font-size: 11px;
}
}