.visit-request-page{background:#fffefa;min-height:100vh}
:root[data-theme="dark"] .visit-request-page{background:var(--bg)}
.request-shell{width:min(1180px,calc(100% - 48px));margin-inline:auto}
.request-nav{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--surface) 90%,transparent);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
.request-nav__inner{height:72px;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.request-brand{font-family:var(--font-display);font-size:1.55rem;font-weight:900;display:flex;align-items:center;gap:.55rem;color:#081b3a}
:root[data-theme="dark"] .request-brand{color:var(--ink)}
.request-brand>span{width:39px;height:39px;display:grid;place-items:center;background:#edf7f1;color:#07845b;border-radius:13px;border:1px solid #dcece2}
.request-brand .ic{width:22px;height:22px}
.request-nav__actions{display:flex;align-items:center;gap:.75rem}
.request-map-link{display:inline-flex;align-items:center;gap:.45rem;color:var(--ink-dim);font-weight:650;font-size:.9rem}
.request-map-link:hover{color:var(--brand)}
.request-main{padding-block:52px 76px}
.request-heading{text-align:center;max-width:720px;margin:0 auto 34px}
.request-kicker{display:inline-flex;align-items:center;gap:.45rem;background:#edf7f1;color:#087653;border:1px solid #d9eadf;border-radius:999px;padding:.38rem .85rem;font-weight:750;font-size:.84rem;margin-bottom:14px}
.request-heading h1{font-size:clamp(1.8rem,4vw,2.65rem);color:#081b3a;margin-bottom:.7rem}
:root[data-theme="dark"] .request-heading h1{color:var(--ink)}
.request-heading p{color:var(--muted);font-size:1.02rem}
.request-layout{display:grid;grid-template-columns:minmax(0,1fr) 315px;gap:24px;align-items:start}
.request-card,.request-summary{background:var(--surface);border:1px solid var(--line);border-radius:24px;box-shadow:0 18px 55px -38px rgba(8,27,58,.36)}
.request-card{padding:30px}
.request-steps{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);position:relative;margin-bottom:36px}
.request-steps::before{content:"";position:absolute;top:18px;right:16.6%;left:16.6%;height:2px;background:var(--line);z-index:0}
.request-steps li{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:.45rem;color:var(--muted);font-size:.78rem}
.request-steps li span{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:var(--surface);border:2px solid var(--line);font-family:var(--font-display);font-weight:800}
.request-steps li.is-active,.request-steps li.is-done{color:var(--brand-strong)}
.request-steps li.is-active span{background:var(--brand);color:var(--brand-ink);border-color:var(--brand);box-shadow:0 7px 18px -7px rgba(12,166,120,.65)}
.request-steps li.is-done span{background:var(--brand-soft);border-color:var(--brand);color:var(--brand)}
.request-step{animation:request-in .28s ease both}
@keyframes request-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.request-section-head{display:flex;align-items:flex-start;gap:.85rem;margin-bottom:18px}
.request-section-head>span{width:42px;height:42px;display:grid;place-items:center;flex:none;border-radius:13px;background:#edf7f1;color:#07845b}
.request-section-head h2{font-size:1.18rem;margin-bottom:.25rem}
.request-section-head p{font-size:.84rem;color:var(--muted)}
.choice-grid{display:grid;gap:10px}
.choice-grid--pets{grid-template-columns:repeat(3,1fr)}
.choice-grid--addresses{grid-template-columns:repeat(2,1fr)}
.choice-card,.request-add-choice{font-family:inherit;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:14px;cursor:pointer;text-align:right;transition:.18s;padding:13px}
.choice-card:hover,.request-add-choice:hover{border-color:var(--brand)}
.choice-card.is-selected,.request-add-choice.is-selected{border-color:var(--brand);background:var(--brand-soft);box-shadow:0 0 0 1px var(--brand)}
.choice-card b{display:block;font-size:.9rem}.choice-card small{display:block;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:.15rem}
.choice-card__warning{display:inline-block;margin-top:.45rem;padding:.15rem .45rem;border-radius:999px;background:color-mix(in srgb,var(--danger) 10%,transparent);color:var(--danger);font-size:.64rem;font-style:normal;font-weight:700}
.request-add-choice{display:flex;align-items:center;justify-content:center;gap:.4rem;width:100%;margin-top:10px;color:var(--brand);font-weight:700}
.request-inline-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.request-inline-fields--three{grid-template-columns:repeat(3,1fr)}
.request-inline-fields label,.request-field{display:block;color:var(--ink-dim);font-size:.86rem;font-weight:600}
.request-inline-fields input,.request-inline-fields select,.request-field input,.request-field textarea{display:block;width:100%;margin-top:.4rem;padding:.78rem .85rem;background:var(--surface);border:1px solid var(--line-2);border-radius:12px;color:var(--ink);font-family:inherit;resize:vertical}
.request-field{margin-top:18px}.request-field small{display:block;color:var(--muted);font-size:.72rem;font-weight:400;margin-top:.35rem}
.request-field--large{max-width:440px;margin:28px auto}
.request-field--large input{padding:1rem;text-align:center;font-size:1rem}
.request-field__label{display:block;margin-bottom:.4rem}
.jalali-trigger{display:flex;align-items:center;gap:.75rem;width:100%;min-height:74px;padding:12px 14px;text-align:start;background:var(--surface);border:1px solid var(--line-2);border-radius:16px;color:var(--ink);font-family:inherit;cursor:pointer;transition:.18s}
.jalali-trigger:hover,.jalali-trigger:focus-visible,.jalali-trigger.has-value{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 12%,transparent)}
.jalali-trigger>span:nth-child(2){flex:1;min-width:0}.jalali-trigger b,.jalali-trigger small{display:block}.jalali-trigger b{font-size:.94rem}.jalali-trigger small{margin-top:.15rem;color:var(--muted);font-size:.73rem;font-weight:400}
.jalali-trigger__icon{display:grid;place-items:center;width:44px;height:44px;flex:none;border-radius:13px;background:var(--brand-soft);color:var(--brand)}
.jalali-trigger__icon .ic{width:23px;height:23px}.jalali-trigger>.ic{width:18px;height:18px;color:var(--muted);transform:rotate(180deg)}
.jalali-picker-open{overflow:hidden}.jalali-picker{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;padding:18px;background:rgba(7,25,45,.48);backdrop-filter:blur(5px)}
.jalali-picker__sheet{width:min(100%,500px);max-height:min(760px,calc(100dvh - 36px));overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:26px;padding:22px;box-shadow:0 24px 80px rgba(4,24,42,.26)}
.jalali-picker__head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.jalali-picker__head span{color:var(--brand);font-size:.73rem;font-weight:700}.jalali-picker__head h2{font-family:var(--font-display);font-size:1.25rem;margin:.12rem 0 0}.jalali-picker__head button,.jalali-picker__monthbar button{display:grid;place-items:center;width:42px;height:42px;flex:none;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;color:var(--ink-dim);cursor:pointer}.jalali-picker__head button:hover,.jalali-picker__monthbar button:hover:not(:disabled){border-color:var(--brand);color:var(--brand)}
.jalali-picker__selected{margin:16px 0 12px;padding:12px 14px;border-radius:13px;background:var(--brand-soft);color:var(--brand-strong);font-weight:700;font-size:.84rem;text-align:center}
.jalali-picker__monthbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:4px 0 10px}.jalali-picker__monthbar b{font-family:var(--font-display);font-size:1rem}.jalali-picker__monthbar button:disabled{opacity:.3;cursor:not-allowed}.jalali-picker__monthbar button:last-child .ic{transform:rotate(180deg)}
.jalali-picker__weekdays,.jalali-picker__days{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.jalali-picker__weekdays{padding:0 3px 6px;color:var(--muted);font-size:.7rem;text-align:center}.jalali-picker__days button{position:relative;display:grid;place-items:center;min-height:48px;padding:3px;background:transparent;border:1px solid transparent;border-radius:13px;color:var(--ink);font-family:inherit;cursor:pointer}.jalali-picker__days button:hover,.jalali-picker__days button:focus-visible{background:var(--surface-2);border-color:var(--line-2)}.jalali-picker__days button b{font-size:.84rem}.jalali-picker__days button small{font-size:.52rem;color:var(--brand);line-height:1}.jalali-picker__days button.is-today{border-color:color-mix(in srgb,var(--brand) 35%,var(--line))}.jalali-picker__days button.is-selected{background:var(--brand);border-color:var(--brand);color:var(--brand-ink);box-shadow:var(--shadow-brand)}.jalali-picker__days button.is-selected small{color:inherit}.jalali-picker__blank{min-height:48px}
.jalali-picker__time{display:flex;align-items:center;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.jalali-picker__time>div{display:flex;align-items:center;gap:.55rem;flex:1;min-width:0}.jalali-picker__time>div>.ic{color:var(--brand)}.jalali-picker__time b,.jalali-picker__time small{display:block}.jalali-picker__time b{font-size:.82rem}.jalali-picker__time small{color:var(--muted);font-size:.64rem}.jalali-picker__time select{min-width:64px;padding:.6rem .5rem;background:var(--surface-2);border:1px solid var(--line-2);border-radius:11px;color:var(--ink);font:inherit;text-align:center}.jalali-picker__time>i{font-style:normal;font-weight:800}
.jalali-picker__error{min-height:1.4rem;margin:.5rem 0 0;color:var(--danger);font-size:.75rem;text-align:center}.jalali-picker__confirm{display:flex;align-items:center;justify-content:center;gap:.45rem;width:100%;min-height:50px;margin-top:5px;background:var(--brand);border:1px solid var(--brand);border-radius:14px;color:var(--brand-ink);font-family:var(--font-display);font-weight:750;cursor:pointer;box-shadow:var(--shadow-brand)}
.request-divider{height:1px;background:var(--line);margin:28px 0}
.service-choice-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.service-choice-grid button{font-family:inherit;display:flex;min-width:0;flex-direction:column;align-items:center;justify-content:center;gap:.45rem;min-height:98px;padding:.7rem .4rem;background:var(--surface);border:1px solid var(--line);border-radius:14px;color:var(--ink-dim);cursor:pointer;transition:.18s}
.service-choice-grid button .ic{width:24px;height:24px;color:var(--brand)}
.service-choice-grid button b{font-size:.75rem;line-height:1.45}
.service-choice-grid button:hover,.service-choice-grid button.is-selected{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-strong);box-shadow:0 0 0 1px var(--brand)}
.time-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.time-options button{font-family:inherit;display:flex;align-items:center;gap:.8rem;text-align:right;padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:16px;color:var(--ink);cursor:pointer}
.time-options button>span{width:40px;height:40px;display:grid;place-items:center;flex:none;background:var(--surface-2);color:var(--brand);border-radius:12px}
.time-options button b,.time-options button small{display:block}.time-options button small{color:var(--muted);font-size:.73rem;margin-top:.2rem}
.time-options button.is-selected{border-color:var(--brand);background:var(--brand-soft);box-shadow:0 0 0 1px var(--brand)}
.request-note,.privacy-strip{display:flex;align-items:flex-start;gap:.7rem;border-radius:14px;padding:14px;margin-top:22px;font-size:.82rem}
.request-note{background:#f8f3e8;border:1px solid #ecdfc4;color:#685a3d}.privacy-strip{background:var(--brand-soft);border:1px solid color-mix(in srgb,var(--brand) 28%,var(--line));color:var(--ink-dim);margin:0 0 18px}
:root[data-theme="dark"] .request-note{background:var(--surface-2);border-color:var(--line);color:var(--ink-dim)}
.request-note .ic,.privacy-strip .ic{color:var(--brand);flex:none;margin-top:.15rem}
.selected-address-preview{margin-top:16px;padding:14px;border-radius:14px;background:var(--surface-2);border:1px solid var(--line);color:var(--ink-dim);font-size:.85rem}
.selected-address-preview b{display:block;color:var(--ink);margin-bottom:.25rem}
.request-error{color:var(--danger);min-height:1.7rem;font-size:.82rem;margin-top:14px}
.request-actions{display:flex;justify-content:space-between;gap:10px;margin-top:8px;padding-top:20px;border-top:1px solid var(--line)}
.request-next,.request-submit,.request-back{font-family:var(--font-display);display:inline-flex;align-items:center;justify-content:center;gap:.45rem;border-radius:13px;padding:.8rem 1.4rem;font-weight:750;cursor:pointer;text-decoration:none}
.request-next,.request-submit{margin-inline-start:auto;background:var(--brand);border:1px solid var(--brand);color:var(--brand-ink);box-shadow:var(--shadow-brand)}
.request-back{background:var(--surface);color:var(--ink-dim);border:1px solid var(--line-2)}
.request-summary{position:sticky;top:94px;padding:28px}
.request-summary__icon{width:58px;height:58px;display:grid;place-items:center;border-radius:18px;background:var(--brand-soft);color:var(--brand);margin-bottom:16px}
.request-summary__icon .ic{width:29px;height:29px}
.request-summary h2{font-size:1.2rem;margin-bottom:.55rem}.request-summary>p{font-size:.84rem;color:var(--muted);line-height:1.85}
.request-summary ul{list-style:none;margin:20px 0;display:flex;flex-direction:column;gap:.75rem;font-size:.83rem;color:var(--ink-dim)}
.request-summary li{display:flex;align-items:center;gap:.45rem}.request-summary li .ic{color:var(--brand);width:16px;height:16px}
.request-summary__map{border-top:1px solid var(--line);padding-top:17px}.request-summary__map span{display:block;font-size:.75rem;color:var(--muted);margin-bottom:.35rem}.request-summary__map a{color:var(--brand);font-weight:700;font-size:.85rem}
.request-success{max-width:650px;margin:50px auto;text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:26px;padding:52px 34px;box-shadow:var(--shadow)}
.request-success>span{display:grid;place-items:center;width:74px;height:74px;margin:0 auto 20px;border-radius:50%;background:var(--brand);color:var(--brand-ink);box-shadow:var(--shadow-brand)}
.request-success>span .ic{width:38px;height:38px}.request-success p{color:var(--muted);max-width:520px;margin:12px auto 24px}.request-success>div{display:flex;justify-content:center;gap:10px}
.request-success-flow{list-style:none;display:grid;gap:9px;max-width:540px;margin:0 auto 24px;padding:0;text-align:start}.request-success-flow li{display:flex;align-items:flex-start;gap:.7rem;padding:12px 13px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}.request-success-flow li>i{display:grid;place-items:center;width:28px;height:28px;flex:none;border-radius:9px;background:var(--brand-soft);color:var(--brand);font-style:normal;font-weight:800}.request-success-flow b,.request-success-flow small{display:block}.request-success-flow b{font-size:.82rem}.request-success-flow small{margin-top:.1rem;color:var(--muted);font-size:.7rem;line-height:1.65}
@media(max-width:900px){.request-layout{grid-template-columns:1fr}.request-summary{position:static;order:-1;display:grid;grid-template-columns:auto 1fr;column-gap:16px}.request-summary__icon{grid-row:1/3}.request-summary ul,.request-summary__map{grid-column:1/-1}}
@media(max-width:680px){.request-shell{width:min(100% - 28px,1180px)}.request-nav__inner{height:64px}.request-map-link{font-size:0}.request-map-link .ic{width:22px;height:22px}.request-main{padding-block:28px 34px}.request-heading{margin-bottom:22px}.request-heading p{font-size:.9rem}.request-layout{gap:14px}.request-card{padding:20px 16px;border-radius:20px}.request-summary{display:none}.request-steps{margin-bottom:28px}.request-steps li b{font-size:.7rem}.choice-grid--pets,.choice-grid--addresses{grid-template-columns:1fr 1fr}.service-choice-grid{grid-template-columns:1fr 1fr}.service-choice-grid button:last-child{grid-column:1/-1;min-height:70px}.request-inline-fields,.request-inline-fields--three,.time-options{grid-template-columns:1fr}.request-section-head h2{font-size:1.05rem}.request-actions{position:sticky;bottom:62px;background:var(--surface);z-index:5;padding-bottom:4px}.request-next,.request-submit,.request-back{padding:.8rem 1rem}.request-success{padding:38px 20px;margin:30px auto}.request-success>div{flex-direction:column}.request-success .request-submit{margin-inline-start:0}.jalali-picker{align-items:end;padding:0}.jalali-picker__sheet{max-height:92dvh;border-radius:24px 24px 0 0;padding:18px 15px calc(18px + env(safe-area-inset-bottom))}.jalali-picker__days{gap:3px}.jalali-picker__days button,.jalali-picker__blank{min-height:44px}.jalali-picker__time{flex-wrap:wrap}.jalali-picker__time>div{flex-basis:100%}}
@media(max-width:390px){.request-steps li b{font-size:.64rem}.choice-grid--pets,.choice-grid--addresses{grid-template-columns:1fr}}
