.clinic-booking-form { position: relative; max-width: 46rem; padding: clamp(1.25rem,4vw,2.5rem); overflow: hidden; border: 1px solid #c8d8df; border-radius: 1rem; background: linear-gradient(135deg, #ffffff 0%, #f7fcfc 100%); box-shadow: 0 1.5rem 3.5rem rgba(6,59,92,.1); }
.clinic-booking-form::before { position: absolute; top: 0; right: 0; left: 0; height: .42rem; content: ''; background: linear-gradient(90deg, #007a5e, #72c4d7, #e8d7ba); }
.clinic-booking-form h2 { margin: .25rem 0 .5rem; color: #063b5c; font-size: clamp(1.8rem, 3vw, 2.5rem); letter-spacing: -.04em; }
.clinic-booking-form p { display: grid; gap: .4rem; }
.clinic-booking-form input, .clinic-booking-form select, .clinic-booking-form textarea { box-sizing: border-box; width: 100%; min-height: 46px; padding: .65rem .75rem; border: 1px solid #9bb5bd; border-radius: .45rem; background: #fff; color: #17212b; font: inherit; transition: border-color .18s ease, box-shadow .18s ease; }
.clinic-booking-form input:hover, .clinic-booking-form select:hover, .clinic-booking-form textarea:hover { border-color: #4a8d9d; }
.clinic-booking-form input:focus, .clinic-booking-form select:focus, .clinic-booking-form textarea:focus { border-color: #007a5e; box-shadow: 0 0 0 3px rgba(0,122,94,.14); outline: 0; }
.clinic-booking-form textarea { min-height: 7rem; }
.clinic-booking-form fieldset { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem 1rem; margin: 1.75rem 0; padding: 1.45rem; border: 1px solid #d4e4e5; border-radius: .9rem; background: linear-gradient(135deg, #fbfefd 0%, #f2faf8 100%); }
.clinic-booking-form fieldset legend { padding: 0 .45rem; color: #063b5c; font-size: .8rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.clinic-booking-form fieldset p { min-width: 0; margin: 0; }.clinic-booking-form fieldset p:nth-of-type(3), .clinic-booking-form fieldset p:last-child { grid-column: 1 / -1; }
.clinic-booking-form fieldset input, .clinic-booking-form fieldset textarea { min-height: 3.15rem; border-color: #b9d0d2; border-radius: .6rem; background: rgba(255,255,255,.92); }.clinic-booking-form fieldset textarea { min-height: 6.2rem; resize: vertical; }.clinic-booking-form fieldset input:hover, .clinic-booking-form fieldset textarea:hover { border-color: #6caea7; }.clinic-booking-form fieldset label { color: #164e64; font-size: .84rem; letter-spacing: .01em; }
.clinic-booking-form label { color: #31586a; font-size: .9rem; font-weight: 750; }
.clinic-booking-form select option:disabled { color: #84949a; background: #eef3f3; }
.clinic-booking-form .clinic-honeypot { position: absolute; left: -10000px; overflow: hidden; }
.clinic-booking-error { margin: 1rem 0; padding: .75rem; border-left: 4px solid #b42318; background: #fff1f0; color: #611a15; }
.clinic-booking-form .wp-element-button { min-height: 3.1rem; padding-right: 1.35rem; padding-left: 1.35rem; border-radius: .45rem; box-shadow: 0 .55rem 1.1rem rgba(0,122,94,.18); }
.clinic-booking-result { margin-top: 1rem; padding: .85rem 1rem; border-radius: .45rem; background: #e5f5ee; color: #075239; font-weight: 700; }
.clinic-booking-help, .clinic-booking-notice { color: #52616b; font-size: .9rem; }
.clinic-booking-date { position: relative; display: grid; gap: .4rem; margin: 1rem 0; }.clinic-booking-date__input { position: absolute; width: 1px !important; min-height: 1px !important; padding: 0 !important; border: 0 !important; opacity: 0; pointer-events: none; }
.clinic-booking-date__trigger { display: grid; grid-template-columns: 2.7rem minmax(0, 1fr) auto; gap: .8rem; width: 100%; min-height: 5.15rem; padding: .65rem .9rem; border: 1px solid #aac9c9; border-radius: .8rem; background: linear-gradient(120deg, #fff 0%, #f1faf8 100%); color: #063b5c; font: inherit; text-align: left; cursor: pointer; box-shadow: 0 .5rem 1.15rem rgba(6,59,92,.045); transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }.clinic-booking-date__trigger:hover { border-color: #007a5e; transform: translateY(-1px); }.clinic-booking-date__trigger:focus-visible { border-color: #007a5e; box-shadow: 0 0 0 3px rgba(0,122,94,.14); outline: 0; }
.clinic-booking-date__trigger > br { display: none; }
.clinic-booking-date__trigger strong, .clinic-booking-date__value { display: block; }.clinic-booking-date__trigger strong { margin: .15rem 0 .15rem; font-size: .94rem; }.clinic-booking-date__value { overflow: hidden; color: #607881; font-size: .84rem; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }.clinic-booking-date.is-selected .clinic-booking-date__value { color: #007a5e; }
.clinic-booking-date__icon { position: relative; align-self: center; width: 2.35rem; height: 2.35rem; border-radius: .65rem; background: #007a5e; box-shadow: 0 .35rem .65rem rgba(0,122,94,.2); }.clinic-booking-date__icon::before { position: absolute; inset: .55rem .45rem .42rem; border: 2px solid #fff; border-top-width: 5px; border-radius: .18rem; content: ''; }.clinic-booking-date__icon::after { position: absolute; top: .53rem; left: .76rem; width: .18rem; height: .32rem; border-radius: 99px; background: #fff; box-shadow: .65rem 0 #fff; content: ''; }.clinic-booking-date__chevron { align-self: center; color: #007a5e; font-size: 1.45rem; line-height: 1; transition: transform .18s ease; }.clinic-booking-date__trigger[aria-expanded="true"] .clinic-booking-date__chevron { transform: rotate(180deg); }
.clinic-booking-calendar { position: absolute; z-index: 10; top: calc(100% + .55rem); right: 0; left: 0; padding: 1rem; border: 1px solid #bfd9d8; border-radius: .85rem; background: #fff; box-shadow: 0 1.2rem 2.7rem rgba(6,59,92,.18); }.clinic-booking-calendar[hidden] { display: none; }.clinic-booking-calendar__header { display: grid; grid-template-columns: 2.25rem 1fr 2.25rem; align-items: center; gap: .5rem; margin-bottom: .9rem; text-align: center; }.clinic-booking-calendar__header strong { color: #063b5c; font-size: .95rem; text-transform: capitalize; }.clinic-booking-calendar__move { width: 2.25rem; height: 2.25rem; border: 1px solid #d0e2e1; border-radius: 50%; background: #f4fbfa; color: #007a5e; font-size: 1.05rem; font-weight: 800; cursor: pointer; }.clinic-booking-calendar__move:hover:not(:disabled) { border-color: #007a5e; background: #e1f3ef; }.clinic-booking-calendar__move:disabled { cursor: not-allowed; opacity: .38; }
.clinic-booking-calendar__weekdays, .clinic-booking-calendar__days { display: grid; grid-template-columns: repeat(7, 1fr); gap: .28rem; text-align: center; }.clinic-booking-calendar__weekdays { margin-bottom: .35rem; color: #6c878c; font-size: .7rem; font-weight: 800; letter-spacing: .04em; }.clinic-booking-calendar__days { grid-auto-rows: 2.25rem; }.clinic-booking-calendar__days > span { display: block; }.clinic-booking-calendar__days button { height: 2.25rem; padding: 0; border: 1px solid transparent; border-radius: .48rem; background: transparent; color: #184958; font: inherit; font-size: .83rem; font-weight: 750; cursor: pointer; }.clinic-booking-calendar__days button:hover:not(:disabled) { border-color: #91cabc; background: #e6f6f1; color: #007a5e; }.clinic-booking-calendar__days button.is-today { border-color: #e2bd7d; }.clinic-booking-calendar__days button.is-selected { border-color: #007a5e; background: #007a5e; box-shadow: 0 .25rem .6rem rgba(0,122,94,.2); color: #fff; }.clinic-booking-calendar__days button:disabled { color: #b5c4c7; cursor: not-allowed; }
.clinic-booking-consent { margin: .8rem 0 !important; }.clinic-booking-consent label { display: flex; align-items: center; gap: .75rem; min-height: 3.2rem; padding: .65rem .8rem; border: 1px solid #d4e5e4; border-radius: .65rem; background: #f8fcfb; cursor: pointer; transition: border-color .18s ease, background .18s ease; }.clinic-booking-consent label:hover { border-color: #91cabc; background: #f1faf7; }.clinic-booking-consent input[type="checkbox"] { width: 1.2rem; min-width: 1.2rem; height: 1.2rem; min-height: 1.2rem; margin: 0; padding: 0; accent-color: #007a5e; }.clinic-booking-consent input[type="checkbox"]:focus-visible { outline: 3px solid rgba(0,122,94,.25); outline-offset: 3px; }.clinic-booking-consent input[type="checkbox"]:checked + span { color: #075b48; }
.clinic-booking-captcha { display: grid !important; grid-template-columns: auto minmax(5.25rem, 7rem); column-gap: .8rem; align-items: end; margin: 1.15rem 0 !important; padding: .85rem 1rem; border: 1px dashed #9cc8c3; border-radius: .75rem; background: #f3faf8; }.clinic-booking-captcha label { display: grid; gap: .18rem; }.clinic-booking-captcha label span, .clinic-booking-captcha small { color: #47656c; font-size: .76rem; font-weight: 700; }.clinic-booking-captcha label strong { color: #063b5c; font-size: 1.2rem; letter-spacing: .03em; }.clinic-booking-captcha input { min-width: 0; min-height: 2.8rem; text-align: center; font-weight: 800; }.clinic-booking-captcha small { grid-column: 1 / -1; margin-top: .1rem; font-weight: 500; }
.clinic-booking-recaptcha { display: grid; gap: .55rem; margin: 1.15rem 0; padding: 1rem; border: 1px solid #b9d8d1; border-radius: .75rem; background: #f3faf8; }.clinic-booking-recaptcha p { margin: 0; color: #31586a; font-size: .9rem; font-weight: 750; }.clinic-booking-recaptcha small { color: #52616b; font-size: .8rem; }.clinic-booking-recaptcha .g-recaptcha { min-height: 78px; }
.clinic-booking-modal { position: fixed; z-index: 1000; inset: 0; display: grid; place-items: center; padding: 1.25rem; }.clinic-booking-modal[hidden] { display: none; }.clinic-booking-modal__backdrop { position: absolute; inset: 0; background: rgba(4, 42, 56, .56); backdrop-filter: blur(5px); }.clinic-booking-modal__dialog { position: relative; z-index: 1; width: min(100%, 29rem); padding: clamp(1.7rem, 5vw, 2.5rem); border: 1px solid rgba(255,255,255,.65); border-radius: 1.15rem; background: linear-gradient(145deg, #fff 0%, #edf9f6 100%); box-shadow: 0 1.75rem 4rem rgba(3, 37, 48, .28); text-align: center; animation: clinic-booking-modal-in .26s ease-out both; }.clinic-booking-modal__mark { display: grid; width: 3.8rem; height: 3.8rem; place-items: center; margin: 0 auto 1.1rem; border-radius: 50%; background: #007a5e; box-shadow: 0 .6rem 1.25rem rgba(0,122,94,.24); color: #fff; font-size: 1.75rem; font-weight: 800; }.clinic-booking-modal__eyebrow { margin: 0 0 .55rem !important; color: #007a5e; font-size: .72rem; font-weight: 800; letter-spacing: .12em; }.clinic-booking-modal h3 { margin: 0; color: #063b5c; font-size: clamp(1.65rem, 5vw, 2.25rem); letter-spacing: -.045em; }.clinic-booking-modal__dialog > p:not(.clinic-booking-modal__eyebrow) { display: block; margin: .85rem 0 1.4rem; color: #52616b; line-height: 1.65; }.clinic-booking-modal__close { min-width: 10rem; min-height: 3rem; border: 0; border-radius: 999px !important; }.clinic-booking-modal--error .clinic-booking-modal__dialog { background: linear-gradient(145deg, #fff 0%, #fff5f2 100%); }.clinic-booking-modal--error .clinic-booking-modal__mark { background: #bd3c2d; box-shadow: 0 .6rem 1.25rem rgba(189,60,45,.22); }.clinic-booking-modal--error .clinic-booking-modal__eyebrow { color: #a72d21; }.clinic-booking-modal--error .clinic-booking-modal__close { background: #a72d21; box-shadow: 0 .55rem 1.1rem rgba(167,45,33,.18); }
@keyframes clinic-booking-modal-in { from { opacity: 0; transform: translateY(14px) scale(.97); } to { opacity: 1; transform: translateY(0) scale(1); } }
@media (max-width: 620px) { .clinic-booking-form fieldset { grid-template-columns: 1fr; }.clinic-booking-captcha { grid-template-columns: 1fr; align-items: stretch; }.clinic-booking-captcha input { width: 100%; max-width: 8rem; } }

/* Mai Hiep Law consultation form. */
.clinic-booking-form { max-width: 52rem; margin: 0 auto; border-color: #d5d9d2; border-radius: .45rem; background: #fff; box-shadow: 0 .85rem 2.2rem rgba(24,51,46,.08); }
.clinic-booking-form::before { height: .3rem; background: #a55a28; }
.clinic-booking-form h2 { color: #18332e; font-family: 'Be Vietnam Pro', ui-sans-serif, system-ui, sans-serif; font-size: 2rem; letter-spacing: 0; }
.clinic-booking-form label, .clinic-booking-form fieldset label { color: #31433c; font-family: 'Be Vietnam Pro', ui-sans-serif, system-ui, sans-serif; }
.clinic-booking-form input, .clinic-booking-form select, .clinic-booking-form textarea { border-color: #cdd4cc; border-radius: .3rem; }
.clinic-booking-form input:focus, .clinic-booking-form select:focus, .clinic-booking-form textarea:focus { border-color: #a55a28; box-shadow: 0 0 0 3px rgba(165,90,40,.14); }
.clinic-booking-form fieldset { border-color: #d5d9d2; border-radius: .35rem; background: #f8faf6; }
.clinic-booking-form fieldset legend { color: #8a4d24; }
.clinic-booking-date__trigger { border-color: #cdd4cc; border-radius: .35rem; background: #fff; color: #18332e; }
.clinic-booking-date__trigger:hover { border-color: #a55a28; }
.clinic-booking-date__icon, .clinic-booking-calendar__days button.is-selected { background: #a55a28; }
.clinic-booking-date__chevron, .clinic-booking-date.is-selected .clinic-booking-date__value { color: #a55a28; }
.clinic-booking-form .wp-element-button { border-radius: .3rem; background: #a55a28; box-shadow: 0 .5rem 1rem rgba(165,90,40,.18); }
.clinic-booking-form .wp-element-button:hover { background: #7d3e1c; }
