/* frontend.css */
.zohal-booking,.zohal-testimonials{width:min(calc(100% - 40px),1264px);margin-inline:auto;padding-block:clamp(34px,5vw,70px);font-family:var(--font,Vazirmatn,Tahoma,sans-serif);color:var(--ink,#142a36)}.zohal-booking-shell{padding:clamp(20px,4vw,45px);border:1px solid var(--line,#ded9cf);background:var(--paper,#f7f5f0);box-shadow:0 24px 70px #142a3612;border-radius:14px}.zohal-booking-progress{display:flex;gap:25px;padding-bottom:22px;margin-bottom:25px;border-bottom:1px solid var(--line,#ded9cf);color:var(--muted,#66717a);font-size:12px}.zohal-booking-progress .is-active{color:var(--bronze,#a17c50);font-weight:700}.zohal-booking-plans{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.zohal-booking-plan{display:flex;flex-direction:column;gap:8px;align-items:flex-start;padding:22px;background:transparent;border:1px solid var(--line,#ded9cf);border-radius:9px;text-align:right}.zohal-booking-plan.is-selected{border-color:var(--bronze,#a17c50);background:color-mix(in srgb,var(--bronze,#a17c50) 9%,transparent);box-shadow:inset 0 0 0 1px var(--bronze,#a17c50)}.zohal-booking-plan small,.zohal-booking-plan span{color:var(--muted,#66717a)}.zohal-booking-plan b{font-size:18px}.zohal-calendar{display:grid;grid-template-columns:1fr .72fr;gap:26px;margin-top:30px}.zohal-calendar-days{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.zohal-calendar-days button,.zohal-calendar-times button{padding:14px 10px;background:transparent;border:1px solid var(--line,#ded9cf);border-radius:8px}.zohal-calendar-days button{display:flex;min-height:105px;flex-direction:column;gap:6px;align-items:flex-start}.zohal-calendar-days button.is-selected,.zohal-calendar-times button.is-selected{background:var(--ink,#142a36);border-color:var(--ink,#142a36);color:var(--paper,#f7f5f0)}.zohal-calendar-days small,.zohal-calendar-days span{font-size:10px;color:var(--muted,#66717a)}.zohal-calendar-times{min-height:150px;padding:20px;background:color-mix(in srgb,var(--surface,#ede9e1) 52%,transparent);border-radius:10px}.zohal-calendar-times [data-times-for]:not([hidden]){display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.zohal-calendar-times>p{color:var(--muted,#66717a);font-size:13px}.zohal-booking-submit{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:end;margin-top:25px}.zohal-booking-submit label{display:grid;gap:7px}.zohal-booking-submit textarea{width:100%;padding:10px;border:1px solid var(--line,#ded9cf);border-radius:8px;background:transparent}.zohal-booking-submit>[data-booking-summary],.zohal-form-message{grid-column:1/-1;margin:0;color:var(--muted,#66717a);font-size:12px}.zohal-form-message.is-error{color:#a23f35}.zohal-booking dialog{width:min(calc(100% - 32px),480px);padding:34px;border:1px solid var(--bronze,#a17c50);border-radius:12px;background:var(--paper,#f7f5f0);color:var(--ink,#142a36);box-shadow:0 30px 90px #0005}.zohal-booking dialog::backdrop{background:#071a26a8;backdrop-filter:blur(5px)}.zohal-booking dialog h3{font-size:25px}.zohal-booking dialog p{margin:12px 0 24px;color:var(--muted,#66717a)}.zohal-dialog-close{position:absolute;top:12px;left:14px;background:transparent;font-size:26px}.zohal-testimonial-stage{position:relative;min-height:260px}.zohal-testimonial-stage article{display:none;padding:clamp(28px,5vw,58px);background:var(--ink,#142a36);color:var(--paper,#f7f5f0);border-radius:12px}.zohal-testimonial-stage article.is-active{display:block;animation:zohal-testimonial-in .55s ease}.zohal-testimonial-stage blockquote{margin:0;max-width:880px;font-size:clamp(20px,2.6vw,35px);font-weight:700;line-height:1.9}.zohal-testimonial-stage footer{margin-top:28px}.zohal-testimonial-stage footer b,.zohal-testimonial-stage footer span{display:block}.zohal-testimonial-stage footer span{color:#aebbc1}.zohal-testimonial-nav{display:flex;align-items:center;justify-content:center;gap:20px;margin:17px}.zohal-testimonial-nav button{width:42px;height:42px;background:transparent;border:1px solid var(--line,#ded9cf);border-radius:50%}.zohal-testimonial-nav span{font-size:12px;color:var(--muted,#66717a)}.zohal-testimonial-form{max-width:760px;margin:30px auto 0;border-top:1px solid var(--line,#ded9cf);padding-top:20px}.zohal-testimonial-form summary{cursor:pointer;font-weight:700}.zohal-testimonial-form form{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:20px}.zohal-testimonial-form label{display:grid;gap:6px}.zohal-testimonial-form label:nth-of-type(3),.zohal-testimonial-form form>p{grid-column:1/-1}.zohal-testimonial-form input,.zohal-testimonial-form textarea{padding:11px;border:1px solid var(--line,#ded9cf);border-radius:7px;background:transparent}.zohal-testimonial-form form>p{font-size:11px;color:var(--muted,#66717a)}.zohal-assistant{position:fixed;z-index:90;left:50%;bottom:20px;transform:translateX(-50%);font-family:var(--font,Vazirmatn,Tahoma,sans-serif);direction:rtl}.zohal-assistant-trigger{display:flex;align-items:center;gap:10px;min-width:92px;height:54px;padding:4px 7px 4px 15px;color:#fff;background:#0e2633;border:1px solid #c5a271;border-radius:999px;box-shadow:0 0 0 6px #a17c5014,0 10px 38px #071a2642;animation:zohal-float 3.8s ease-in-out infinite}.zohal-assistant-trigger i{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;font-style:normal;background:radial-gradient(circle,#d8bc91,#9a7042 65%,#73502f);box-shadow:0 0 21px #c49a65}.zohal-assistant-panel{position:absolute;left:50%;bottom:68px;width:min(390px,calc(100vw - 24px));transform:translateX(-50%);overflow:hidden;background:var(--paper,#f7f5f0);color:var(--ink,#142a36);border:1px solid var(--bronze,#a17c50);border-radius:16px;box-shadow:0 28px 90px #071a2666}.zohal-assistant-panel header{display:flex;align-items:center;justify-content:space-between;padding:17px 19px;background:#142a36;color:#fff}.zohal-assistant-panel header small,.zohal-assistant-panel header b{display:block}.zohal-assistant-panel header small{color:#bdc8cc;font-size:9px}.zohal-assistant-panel header button{background:transparent;color:#fff;font-size:24px}.zohal-assistant-log{height:300px;overflow:auto;padding:17px;background:color-mix(in srgb,var(--surface,#ede9e1) 34%,var(--paper,#f7f5f0))}.zohal-assistant-log p{width:88%;margin:0 0 10px;padding:11px 13px;border-radius:12px;line-height:1.85;font-size:13px}.zohal-assistant-log .is-assistant{margin-left:auto;background:var(--paper,#f7f5f0);border:1px solid var(--line,#ded9cf)}.zohal-assistant-log .is-user{margin-right:auto;background:#142a36;color:#fff}.zohal-assistant-panel form{display:flex;padding:10px;border-top:1px solid var(--line,#ded9cf)}.zohal-assistant-panel form input{flex:1;min-width:0;padding:9px;background:transparent;border:0;outline:0}.zohal-assistant-panel form button{width:40px;height:40px;border-radius:50%;background:#142a36;color:#fff}.zohal-assistant-privacy{display:block;padding:0 14px 10px;color:var(--muted,#66717a);font-size:9px}.zohal-payment-result,.zohal-auth{width:min(calc(100% - 40px),760px);margin:50px auto;padding:clamp(25px,5vw,50px);background:var(--paper,#f7f5f0);color:var(--ink,#142a36);border:1px solid var(--line,#ded9cf);border-top:4px solid var(--bronze,#a17c50);border-radius:12px}.zohal-payment-result>span{display:grid;place-items:center;width:62px;height:62px;border-radius:50%;background:var(--ink,#142a36);color:#fff;font-size:30px}.zohal-payment-result h2{margin:20px 0 8px}.zohal-payment-result b{display:block;margin:20px 0}.zohal-auth-tabs{display:flex;gap:8px;margin-bottom:25px;border-bottom:1px solid var(--line,#ded9cf)}.zohal-auth-tabs button{padding:12px;background:transparent;border-bottom:3px solid transparent}.zohal-auth-tabs button.is-active{border-color:var(--bronze,#a17c50);font-weight:700}.zohal-auth section form{display:grid;gap:15px}.zohal-auth label{display:grid;gap:6px}.zohal-auth input{padding:11px;border:1px solid var(--line,#ded9cf);background:transparent;border-radius:7px}.zohal-notice{padding:12px;background:color-mix(in srgb,var(--bronze,#a17c50) 12%,transparent)}
@keyframes zohal-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes zohal-testimonial-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(max-width:700px){.zohal-booking-plans,.zohal-calendar{grid-template-columns:1fr}.zohal-calendar-days{grid-template-columns:repeat(2,1fr)}.zohal-booking-submit{grid-template-columns:1fr}.zohal-testimonial-form form{grid-template-columns:1fr}.zohal-testimonial-form label:nth-of-type(3){grid-column:auto}.zohal-assistant{bottom:12px}.zohal-assistant-panel{bottom:64px}.zohal-booking-progress{gap:10px;justify-content:space-between;font-size:10px}}
@media(prefers-reduced-motion:reduce){.zohal-assistant-trigger{animation:none}.zohal-testimonial-stage article.is-active{animation:none}}

/* Accessible Persian calendar grid, visually aligned with the ZOHAL ORBIT design system. */
.zohal-calendar-card{padding:20px;border:1px solid var(--line,#ded9cf);border-radius:12px;background:color-mix(in srgb,var(--paper,#f7f5f0) 92%,var(--surface,#ede9e1));box-shadow:0 14px 38px color-mix(in srgb,var(--ink,#142a36) 7%,transparent)}
.zohal-calendar-head{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;gap:8px;padding-bottom:12px}
.zohal-calendar-head h3{margin:0;text-align:center;font-size:15px;font-weight:800;line-height:1.7}
.zohal-calendar-head button{display:grid;place-items:center;width:40px;height:40px;padding:0;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--muted,#66717a);font-size:25px;line-height:1;transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .2s ease}
.zohal-calendar-head button:hover:not(:disabled){border-color:var(--line,#ded9cf);background:var(--surface,#ede9e1);color:var(--ink,#142a36);transform:translateY(-1px)}
.zohal-calendar-head button:disabled{cursor:not-allowed;opacity:.28}
.zohal-calendar-week,.zohal-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.zohal-calendar-week{padding-block:7px 8px;border-block:1px solid var(--line,#ded9cf);color:var(--muted,#66717a);font-size:10px;font-weight:700;text-align:center}
.zohal-calendar-grid{padding-top:9px;min-height:264px;align-content:start}
.zohal-calendar-day,.zohal-calendar-blank{aspect-ratio:1;min-width:0}
.zohal-calendar-day{position:relative;display:grid;place-items:center;padding:0;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--ink,#142a36);font:inherit;font-size:12px;outline-offset:2px;transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease}
.zohal-calendar-day:not(:disabled):hover{background:color-mix(in srgb,var(--bronze,#a17c50) 10%,transparent);border-color:color-mix(in srgb,var(--bronze,#a17c50) 42%,var(--line,#ded9cf));transform:translateY(-1px)}
.zohal-calendar-day:focus-visible,.zohal-calendar-head button:focus-visible,.zohal-calendar-times button:focus-visible{outline:2px solid var(--bronze,#a17c50);outline-offset:2px}
.zohal-calendar-day:disabled{cursor:not-allowed;color:color-mix(in srgb,var(--muted,#66717a) 48%,transparent)}
.zohal-calendar-day.is-available{font-weight:800}
.zohal-calendar-day.is-available i{position:absolute;right:50%;bottom:5px;width:4px;height:4px;border-radius:50%;background:var(--bronze,#a17c50);transform:translateX(50%);box-shadow:0 0 0 3px color-mix(in srgb,var(--bronze,#a17c50) 12%,transparent)}
.zohal-calendar-day.is-today{border-color:color-mix(in srgb,var(--bronze,#a17c50) 65%,var(--line,#ded9cf))}
.zohal-calendar-day.is-selected{border-color:var(--ink,#142a36);background:var(--ink,#142a36);color:var(--paper,#f7f5f0);box-shadow:0 8px 18px color-mix(in srgb,var(--ink,#142a36) 22%,transparent)}
.zohal-calendar-day.is-selected i{background:var(--bronze-light,#c7a77c);box-shadow:none}
.zohal-calendar-legend{display:flex;align-items:center;gap:7px;margin:13px 0 0;padding-top:12px;border-top:1px solid var(--line,#ded9cf);color:var(--muted,#66717a);font-size:10px}
.zohal-calendar-legend i{width:6px;height:6px;border-radius:50%;background:var(--bronze,#a17c50)}
.zohal-calendar-legend b{margin-right:auto;color:var(--bronze,#a17c50);font-weight:700}
.zohal-calendar-empty{margin:12px 0 0;color:var(--muted,#66717a);font-size:11px}
.zohal-calendar-times{border:1px solid var(--line,#ded9cf);background:color-mix(in srgb,var(--surface,#ede9e1) 52%,transparent)}
.zohal-calendar-times h3{margin:0 0 8px;font-size:17px}
.zohal-calendar-times [data-times-for]:not([hidden]){margin-top:18px}
.zohal-calendar-times button{cursor:pointer;transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .2s ease}
.zohal-calendar-times button:hover{border-color:var(--bronze,#a17c50);transform:translateY(-1px)}
html[data-theme="dark"] .zohal-calendar-card{background:color-mix(in srgb,var(--surface,#172f3c) 36%,var(--paper,#0d222d));box-shadow:none}
html[data-theme="dark"] .zohal-calendar-day.is-selected{background:var(--bronze,#a17c50);border-color:var(--bronze,#a17c50);color:#071a26}
@media(max-width:700px){.zohal-calendar-card{padding:14px 12px}.zohal-calendar-grid{min-height:238px}.zohal-calendar-day{font-size:11px;border-radius:7px}.zohal-calendar-day.is-available i{bottom:4px}.zohal-calendar-head{grid-template-columns:38px 1fr 38px}.zohal-calendar-head button{width:38px;height:38px}.zohal-calendar-times{min-height:0}}

/* frontend-enhancements.css */
.zohal-booking-horizon{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:22px;padding:20px 22px;border:1px solid color-mix(in srgb,var(--bronze,#a17c50) 48%,var(--line,#ded9cf));border-radius:12px;background:color-mix(in srgb,var(--bronze,#a17c50) 7%,var(--paper,#f7f5f0))}
.zohal-booking-horizon[hidden]{display:none}.zohal-booking-horizon>div:first-child{display:grid;gap:5px}.zohal-booking-horizon small{color:var(--bronze,#a17c50)}.zohal-booking-horizon strong{font-size:17px}.zohal-booking-horizon p{margin:0;color:var(--muted,#66717a);font-size:12px}.zohal-booking-horizon>div:last-child{display:flex;align-items:center;gap:14px;white-space:nowrap}
.zohal-booking-submit{grid-template-columns:1fr;margin-top:30px;padding-top:28px;border-top:1px solid var(--line,#ded9cf)}
.zohal-booking-intake-head{display:grid;gap:5px}.zohal-booking-intake-head small{color:var(--bronze,#a17c50);font-weight:700}.zohal-booking-intake-head h3{margin:0;font-size:clamp(20px,2vw,27px)}.zohal-booking-intake-head p{
margin:0;color:var(--muted,#66717a);font-size:12px}
.zohal-booking-intake-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.zohal-booking-intake-grid label{display:grid;gap:7px;font-size:12px;font-weight:700}.zohal-booking-intake-grid .is-wide{grid-column:1/-1}.zohal-booking-intake-grid select,.zohal-booking-intake-grid textarea{width:100%;min-height:45px;padding:10px 12px;border:1px solid var(--line,#ded9cf);border-radius:8px;background:var(--paper,#f7f5f0);color:var(--ink,#142a36);font:inherit}.zohal-booking-intake-grid textarea{resize:vertical}
.zohal-booking-intake-grid select:focus,.zohal-booking-intake-grid textarea:focus{outline:2px solid var(--bronze,#a17c50);outline-offset:2px}.zohal-booking-submit .zohal-booking-consent{display:flex;align-items:flex-start;gap:10px;font-size:12px}.zohal-booking-consent input{margin-top:4px;accent-color:var(--ink,#142a36)}
.zohal-assistant-disclosure{display:grid;gap:3px;padding:10px 14px;border-bottom:1px solid var(--line,#ded9cf);background:color-mix(in srgb,var(--bronze,#a17c50) 10%,var(--paper,#f7f5f0));font-size:10px;line-height:1.7}.zohal-assistant-disclosure strong{color:var(--ink,#142a36)}.zohal-assistant-disclosure span{color:var(--muted,#66717a)}
.zohal-assistant-contact{display:grid;grid-template-columns:1fr auto;gap:8px;padding:10px 12px;border-top:1px solid var(--line,#ded9cf)}.zohal-assistant-contact a{display:flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:7px 11px;border:1px solid var(--line,#ded9cf);border-radius:8px;color:var(--ink,#142a36);text-decoration:none;font-size:11px}.zohal-assistant-contact a:first-child{justify-content:space-between}.zohal-assistant-contact a:hover{border-color:var(--bronze,#a17c50);background:color-mix(in srgb,var(--bronze,#a17c50) 8%,transparent)}
.zohal-assistant-log{height:250px}
html[data-theme="dark"] .zohal-booking-intake-grid select,html[data-theme="dark"] .zohal-booking-intake-grid textarea{background:var(--paper,#0d222d)}
@media(max-width:700px){.zohal-booking-horizon{align-items:flex-start;flex-direction:column}.zohal-booking-horizon>div:last-child{width:100%;white-space:normal}.zohal-booking-intake-grid{grid-template-columns:1fr}.zohal-booking-intake-grid .is-wide{grid-column:auto}.zohal-assistant-panel{max-height:min(680px,calc(100vh - 88px));overflow:auto}.zohal-assistant-log{height:220px}}

.zohal-booking [hidden],.zohal-auth [hidden]{display:none!important}

/* One booking section; calendar on the right and the concise intake form on the left. */
.zohal-booking-workspace,.zohal-booking-availability{display:contents}
@media(min-width:900px){
  .zohal-booking-workspace{display:grid;grid-template-columns:minmax(340px,.82fr) minmax(0,1.18fr);gap:clamp(28px,3.6vw,50px);align-items:start;direction:rtl;margin-top:30px}
  .zohal-booking-availability{display:block;min-width:0}
  .zohal-booking-availability .zohal-calendar{display:grid;grid-template-columns:1fr;gap:16px;max-width:410px;margin:0 auto}
  .zohal-booking-availability .zohal-calendar-card{padding:16px;border-radius:12px;box-shadow:none;min-height:0}
  .zohal-booking-availability .zohal-calendar-grid{gap:4px}
  .zohal-booking-availability .zohal-calendar-grid button{min-height:38px;height:38px;aspect-ratio:auto;font-size:13px;border-radius:8px}
  .zohal-booking-availability .zohal-calendar-head{margin-bottom:10px;padding-bottom:8px}
  .zohal-booking-availability .zohal-calendar-head h3{font-size:16px}
  .zohal-booking-availability .zohal-calendar-week{margin-bottom:8px;font-size:11px}
  .zohal-booking-availability .zohal-calendar-legend{margin-top:10px;font-size:10px;gap:6px}
  .zohal-booking-availability .zohal-calendar-times{min-height:0;padding:18px;border-radius:12px}
  .zohal-booking-availability .zohal-calendar-times h3{font-size:17px;margin:0 0 6px}
  .zohal-booking-availability .zohal-calendar-times>p{font-size:12px;margin:0 0 10px}
  .zohal-booking-availability .zohal-calendar-times [data-times-for]:not([hidden]){max-height:220px;overflow:auto;overscroll-behavior:contain}
  .zohal-booking-workspace>.zohal-booking-submit{margin:0;padding:0 26px 0 0;border-top:0;border-right:1px solid var(--line);min-width:0;align-self:stretch;align-content:start}
  .zohal-booking-workspace>.zohal-booking-submit .zohal-booking-intake-head h3{font-size:23px}
  .zohal-booking-availability .zohal-booking-horizon{display:flex;flex-direction:column;align-items:stretch;padding:16px;font-size:12px}
  .zohal-booking-availability .zohal-booking-horizon>div:last-child{flex-wrap:wrap;white-space:normal}
}
@media(min-width:900px) and (max-width:1080px){.zohal-booking-workspace{grid-template-columns:minmax(320px,.9fr) minmax(0,1.1fr);gap:24px}.zohal-booking-workspace>.zohal-booking-submit{padding-right:22px}.zohal-booking-intake-grid{grid-template-columns:1fr}.zohal-booking-intake-grid .is-wide{grid-column:auto}}
.zohal-pathfinder-contact{margin-top:24px;padding-top:22px;border-top:1px solid var(--line);display:grid;gap:16px}
.zohal-pathfinder-contact h4{margin:0;font-size:18px;color:var(--ink)}
.zohal-pathfinder-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.zohal-pathfinder-fields label{display:grid;gap:8px;font-size:12px;font-weight:700;color:var(--ink)}
.zohal-pathfinder-fields input{box-sizing:border-box;min-width:0;width:100%;min-height:46px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);padding:10px 12px;font:inherit;font-size:16px}
.zohal-pathfinder-fields input:focus-visible{outline:2px solid var(--bronze);outline-offset:3px}
.zohal-pathfinder-consent{display:flex;align-items:flex-start;gap:10px;font-size:12px;color:var(--muted)}
.zohal-pathfinder-consent input{width:18px;height:18px;flex-shrink:0;accent-color:var(--bronze);margin-top:4px}
.zohal-pathfinder-contact [role="status"]{font-size:13px;color:var(--ink);line-height:1.9;margin:0}
.zohal-form-trap{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
.zohal-pathfinder-contact button:disabled{cursor:default;opacity:.75}
@media(max-width:480px){.zohal-pathfinder-fields{grid-template-columns:1fr}}
