/** * WP BnB Contact Form 7 Integration Styles * * Styling for CF7 booking forms. * * @package Magdev\WpBnb */ /* Custom Properties */ :root { --wp-bnb-cf7-primary: #2271b1; --wp-bnb-cf7-success: #00a32a; --wp-bnb-cf7-warning: #dba617; --wp-bnb-cf7-error: #d63638; --wp-bnb-cf7-text: #1d2327; --wp-bnb-cf7-text-light: #646970; --wp-bnb-cf7-border: #c3c4c7; --wp-bnb-cf7-bg: #f0f0f1; --wp-bnb-cf7-radius: 4px; --wp-bnb-cf7-spacing: 1rem; } /* Form Layout */ .wp-bnb-booking-form, .wp-bnb-inquiry-form { max-width: 700px; margin: 0 auto; } .wp-bnb-booking-form h3, .wp-bnb-booking-form h4, .wp-bnb-inquiry-form h3, .wp-bnb-inquiry-form h4 { margin-top: 1.5em; margin-bottom: 0.75em; padding-bottom: 0.5em; border-bottom: 1px solid var(--wp-bnb-cf7-border); } .wp-bnb-booking-form h3:first-child, .wp-bnb-inquiry-form h3:first-child { margin-top: 0; } /* Form Rows */ .wp-bnb-form-row { margin-bottom: var(--wp-bnb-cf7-spacing); } .wp-bnb-form-row-2col { display: grid; grid-template-columns: 1fr 1fr; gap: var(--wp-bnb-cf7-spacing); } @media (max-width: 480px) { .wp-bnb-form-row-2col { grid-template-columns: 1fr; } } /* Form Fields */ .wp-bnb-form-field { display: flex; flex-direction: column; } .wp-bnb-form-field label { display: block; margin-bottom: 0.25rem; font-weight: 600; font-size: 0.875rem; color: var(--wp-bnb-cf7-text); } /* Custom CF7 Tags Styling */ .wp-bnb-building-select, .wp-bnb-room-select, .wp-bnb-date-checkin, .wp-bnb-date-checkout, .wp-bnb-guests { width: 100%; padding: 0.5rem 0.75rem; font-size: 1rem; line-height: 1.5; border: 1px solid var(--wp-bnb-cf7-border); border-radius: var(--wp-bnb-cf7-radius); background-color: #fff; transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } .wp-bnb-building-select:focus, .wp-bnb-room-select:focus, .wp-bnb-date-checkin:focus, .wp-bnb-date-checkout:focus, .wp-bnb-guests:focus { outline: none; border-color: var(--wp-bnb-cf7-primary); box-shadow: 0 0 0 2px rgba(34, 113, 177, 0.25); } /* Select dropdown */ .wp-bnb-room-select optgroup { font-weight: 600; font-style: normal; color: var(--wp-bnb-cf7-text); } /* Date inputs */ .wp-bnb-date-checkin, .wp-bnb-date-checkout { cursor: pointer; } /* Number input */ .wp-bnb-guests { max-width: 120px; } /* Availability Status */ .wp-bnb-availability-status { padding: var(--wp-bnb-cf7-spacing); margin: var(--wp-bnb-cf7-spacing) 0; background-color: var(--wp-bnb-cf7-bg); border-radius: var(--wp-bnb-cf7-radius); text-align: center; min-height: 50px; display: flex; align-items: center; justify-content: center; } .wp-bnb-availability-status:empty { display: none; } .wp-bnb-checking { color: var(--wp-bnb-cf7-text-light); font-style: italic; } .wp-bnb-checking::before { content: ""; display: inline-block; width: 16px; height: 16px; margin-right: 8px; border: 2px solid var(--wp-bnb-cf7-border); border-top-color: var(--wp-bnb-cf7-primary); border-radius: 50%; animation: wp-bnb-spin 0.8s linear infinite; vertical-align: middle; } @keyframes wp-bnb-spin { to { transform: rotate(360deg); } } .wp-bnb-available { color: var(--wp-bnb-cf7-success); font-weight: 600; } .wp-bnb-available::before { content: "\2713"; display: inline-block; margin-right: 8px; font-size: 1.25em; } .wp-bnb-unavailable { color: var(--wp-bnb-cf7-error); font-weight: 600; } .wp-bnb-unavailable::before { content: "\2717"; display: inline-block; margin-right: 8px; font-size: 1.25em; } /* Price Display */ .wp-bnb-price-display { padding: var(--wp-bnb-cf7-spacing); margin: var(--wp-bnb-cf7-spacing) 0; background-color: #e7f5ea; border: 1px solid var(--wp-bnb-cf7-success); border-radius: var(--wp-bnb-cf7-radius); text-align: center; } .wp-bnb-price-display:empty { display: none; } .wp-bnb-price-label { color: var(--wp-bnb-cf7-text-light); font-size: 0.875rem; } .wp-bnb-price-amount { font-size: 1.5rem; font-weight: 700; color: var(--wp-bnb-cf7-success); margin: 0 0.5rem; } .wp-bnb-nights { color: var(--wp-bnb-cf7-text-light); font-size: 0.875rem; } /* Capacity Warning */ .wp-bnb-capacity-warning { display: block; margin-top: 0.25rem; padding: 0.25rem 0.5rem; font-size: 0.8125rem; color: var(--wp-bnb-cf7-error); background-color: #fcf0f1; border-radius: var(--wp-bnb-cf7-radius); } /* Validation Errors */ .wpcf7-form-control-wrap .wpcf7-not-valid-tip { color: var(--wp-bnb-cf7-error); font-size: 0.8125rem; margin-top: 0.25rem; } .wpcf7-form-control.wpcf7-not-valid { border-color: var(--wp-bnb-cf7-error); } /* Response Messages */ .wpcf7 form.sent .wpcf7-response-output { border-color: var(--wp-bnb-cf7-success); background-color: #e7f5ea; color: var(--wp-bnb-cf7-success); } .wpcf7 form.failed .wpcf7-response-output, .wpcf7 form.aborted .wpcf7-response-output, .wpcf7 form.spam .wpcf7-response-output, .wpcf7 form.invalid .wpcf7-response-output { border-color: var(--wp-bnb-cf7-error); background-color: #fcf0f1; color: var(--wp-bnb-cf7-error); } /* Submit Button */ .wp-bnb-booking-form .wpcf7-submit, .wp-bnb-inquiry-form .wpcf7-submit { display: inline-block; padding: 0.75rem 1.5rem; font-size: 1rem; font-weight: 600; color: #fff; background-color: var(--wp-bnb-cf7-primary); border: none; border-radius: var(--wp-bnb-cf7-radius); cursor: pointer; transition: background-color 0.15s ease-in-out; } .wp-bnb-booking-form .wpcf7-submit:hover, .wp-bnb-inquiry-form .wpcf7-submit:hover { background-color: #135e96; } .wp-bnb-booking-form .wpcf7-submit:disabled, .wp-bnb-inquiry-form .wpcf7-submit:disabled { opacity: 0.7; cursor: not-allowed; } /* Spinner */ .wpcf7 .wpcf7-spinner { margin-left: 0.5rem; } /* Hidden Room Field (for inquiry forms) */ .wp-bnb-inquiry-form input[type="hidden"] + .wpcf7-form-control-wrap { display: none; } /* Form Section Headers */ .wp-bnb-booking-form hr, .wp-bnb-inquiry-form hr { margin: 1.5rem 0; border: none; border-top: 1px solid var(--wp-bnb-cf7-border); } /* Dark Mode Support */ @media (prefers-color-scheme: dark) { :root { --wp-bnb-cf7-text: #f0f0f1; --wp-bnb-cf7-text-light: #a7aaad; --wp-bnb-cf7-border: #50575e; --wp-bnb-cf7-bg: #2c3338; } .wp-bnb-building-select, .wp-bnb-room-select, .wp-bnb-date-checkin, .wp-bnb-date-checkout, .wp-bnb-guests { background-color: #3c434a; color: var(--wp-bnb-cf7-text); } .wp-bnb-price-display { background-color: #1a3320; border-color: var(--wp-bnb-cf7-success); } .wp-bnb-capacity-warning { background-color: #3c1618; } .wpcf7 form.sent .wpcf7-response-output { background-color: #1a3320; } .wpcf7 form.failed .wpcf7-response-output, .wpcf7 form.aborted .wpcf7-response-output, .wpcf7 form.spam .wpcf7-response-output, .wpcf7 form.invalid .wpcf7-response-output { background-color: #3c1618; } } /* Print Styles */ @media print { .wp-bnb-availability-status, .wp-bnb-price-display, .wpcf7-submit { display: none; } }