:root{--bg:#ffffff;--ink:#313131;--muted:#707070;--line:#e5e5e5;--accent:#696969;--accent-hover:#4e4e4e;--pale:#f6f6f6;--shadow:0 16px 40px rgba(66,66,66,.06);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}img{max-width:100%}.container{width:min(1180px,calc(100% - 40px));margin:auto}.skip{position:absolute;top:-60px;left:10px;background:#ffffff;z-index:50;padding:10px}.skip:focus{top:10px}:focus-visible{outline:3px solid #969696;outline-offset:3px}.header{position:sticky;top:0;background:#ffffffed;backdrop-filter:blur(16px);z-index:20;border-bottom:1px solid var(--line)}.header-inner{display:flex;align-items:center;gap:24px;min-height:82px}.brand{display:inline-flex;align-items:center;gap:11px;font-size:17px;font-weight:800;white-space:nowrap;letter-spacing:-.04em;line-height:1.05}.brand small{display:block;font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-weight:500;margin-top:5px}.mark{display:grid;place-items:center;border-radius:15px;width:38px;height:38px;background:#eaeaea;color:#565656;font-size:25px}.desktop-nav{display:flex;gap:18px;margin:auto}.desktop-nav a{font-size:15px;color:#555555;white-space:nowrap}.desktop-nav a:hover,.desktop-nav a.selected{color:var(--accent);font-weight:700}.header-actions{display:flex;align-items:center;gap:12px}.phone{font-size:14px;white-space:nowrap;font-weight:700}.mobile-nav,.menu-toggle{display:none}.btn{min-height:44px;padding:11px 18px;border-radius:10px;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;text-align:center;gap:8px;font-weight:700;font-size:13px;white-space:nowrap;transition:.18s}.btn:hover{transform:translateY(-1px)}.primary{background:var(--accent);color:#ffffff}.primary:hover{background:var(--accent-hover)}.secondary,.outline{background:#ffffff;border-color:#d7d7d7;color:var(--accent-hover)}.ghost,.text{color:var(--accent-hover);background:transparent}.white{background:#ffffff;color:var(--accent-hover)}.hero{background:linear-gradient(115deg,#f9f9f9 0%,#f6f6f6 55%,#efefef 100%);overflow:hidden}.hero-grid{display:grid;grid-template-columns:1fr .9fr;align-items:center;min-height:560px;gap:60px;padding-top:64px;padding-bottom:64px}.eyebrow{text-transform:uppercase;letter-spacing:.15em;color:var(--accent);font-weight:800;font-size:11px}.hero h1{font-size:clamp(48px,6vw,82px);letter-spacing:-.07em;line-height:1.04;margin:22px 0}.hero h1 em{font-style:normal;color:var(--accent)}.hero p{font-size:17px;line-height:1.7;color:var(--muted);max-width:500px}.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin:30px 0 52px}.hero-foot{display:flex;gap:24px;flex-wrap:wrap;color:#6b6b6b;font-size:12px}.section{padding-top:80px;padding-bottom:80px}.tinted{background:#fafafa}.section-title{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:28px}.section-title h2,.contact-band h2{font-size:clamp(28px,3vw,42px);letter-spacing:-.055em;margin:8px 0}.section-title .btn{flex:none}.features{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.features>div{border-top:1px solid var(--line);padding-top:24px}.features span{color:var(--accent);font-weight:800}.features h3{font-size:20px;margin-bottom:6px}.features p,.card p{color:var(--muted);line-height:1.6}.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.card{border:1px solid var(--line);border-radius:18px;background:#ffffff;box-shadow:var(--shadow);padding:24px;min-width:0}.card h3{letter-spacing:-.025em;margin:12px 0}.service-card{display:flex;flex-direction:column;min-height:270px}.service-card .icon{display:grid;place-items:center;width:44px;height:44px;color:var(--accent);background:var(--pale);border-radius:12px;font-size:25px;margin-bottom:25px}.small{font-size:12px}.muted{color:var(--muted)}.card-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:20px;flex-wrap:wrap}.card-bottom strong{white-space:nowrap}.doctor-card{padding:0;overflow:hidden}.portrait{background:radial-gradient(circle at 70% 20%,#fdfdfd,#eaeaea 65%,#d5d5d5);height:180px;display:grid;place-items:center;color:#a2a2a2;font-size:72px}.doctor-info{padding:22px}.doctor-info p{font-size:13px;min-height:62px}.doctor-info .card-bottom{justify-content:flex-start}.stars{color:#a2a2a2;letter-spacing:3px}.review footer{color:var(--ink);font-weight:700}.contact-band{border-radius:25px;background:#5f5f5f;padding:45px;display:flex;justify-content:space-between;align-items:center;gap:20px;color:#ffffff}.contact-band .eyebrow{color:#dcdcdc}.contact-band p{color:#ececec}.page-heading{background:#f8f8f8;padding:62px 0}.page-heading h1{font-size:clamp(34px,4vw,56px);letter-spacing:-.06em;margin:12px 0}.page-heading p{color:var(--muted);max-width:620px;line-height:1.6}.filters{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin-bottom:24px}.filters .field{flex:1;min-width:145px;margin:0}.filters>.btn{flex:none;align-self:flex-end;margin:0;min-height:46px}.field{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:700;color:#4e4e4e;margin-bottom:17px}.field input,.field select,.field textarea{border:1px solid #dadada;background:#ffffff;border-radius:10px;min-height:46px;padding:10px 12px;width:100%;min-width:0;color:var(--ink);font-weight:400}.field textarea{min-height:94px;resize:vertical}.form .btn{width:100%}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.form-panel{max-width:670px;margin:34px 0;padding:30px}.narrow{max-width:550px}.narrow .form-panel{margin:0}.detail-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:20px;align-items:start}.detail{line-height:1.75}.detail h2{letter-spacing:-.04em}.booking-aside{position:sticky;top:100px}.booking-aside .btn{width:100%}.profile-top{display:flex;gap:25px;align-items:center}.portrait.large{height:180px;width:150px;border-radius:14px;flex:none}.profile-top h1{letter-spacing:-.05em}.service-list{padding:0;list-style:none}.service-list li,.price-row{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:16px 0}.price-group{margin-bottom:16px}.price-row strong{white-space:nowrap}.booking-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,.8fr);gap:25px;align-items:start}.booking-form{padding:30px}.booking-step{border-bottom:1px solid var(--line);padding:12px 0 25px}.booking-step h2{font-size:21px;margin:8px 0 22px}.step-number{color:var(--accent);font-size:12px;letter-spacing:.1em;font-weight:800}.booking-side{position:sticky;top:100px}.divider{border-top:1px solid var(--line);margin:25px 0}.check{display:flex;align-items:start;gap:10px;color:var(--muted);font-size:13px;line-height:1.5}.check input{width:18px;height:18px;flex:none}.check a{color:var(--accent);text-decoration:underline}.booking-submit{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:22px}.booking-submit p{font-size:13px;color:var(--muted)}.portal-nav{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:30px}.stat{display:flex;flex-direction:column;gap:15px}.stat strong{font-size:34px}.appointment{padding:19px}.appointment-top{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.appointment h3{font-size:17px}.badge{display:inline-flex;border-radius:20px;padding:6px 9px;font-size:11px;background:#f1f1f1;color:#595959}.badge.confirmed,.badge.arrived{background:#f1f1f1;color:#585858}.badge.pending{background:#f4f4f4;color:#676767}.badge.cancelled,.badge.noshow{background:#f1f1f1;color:#5f5f5f}.actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:15px}.mini{border:1px solid var(--line);background:#ffffff;color:var(--accent-hover);border-radius:8px;padding:7px 9px;font-size:12px}.mini.danger{color:#5f5f5f}.empty{padding:45px;color:var(--muted)}.map-note{display:grid;place-items:center;background:#f7f7f7;min-height:230px;text-align:center;color:var(--muted)}footer{background:#323232;color:#ffffff;padding:55px 0 30px}.footer-grid{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:35px}footer p{color:#cccccc;line-height:1.9;font-size:13px}footer .brand{color:#ffffff}footer .mark{background:#5d5d5d;color:#e8e8e8}details{border-top:1px solid var(--line);padding:16px 0}summary{cursor:pointer;color:var(--accent);font-weight:700}
@media(max-width:1200px){.desktop-nav{gap:12px}.desktop-nav a{font-size:13px}.phone,.desktop-profile{display:none}}@media(max-width:980px){.desktop-nav{display:none}.header-inner{min-height:70px}.header-actions{margin-left:auto}.menu-toggle{display:block;background:#ffffff;border:1px solid var(--line);border-radius:10px;min-height:44px;min-width:44px;color:var(--ink);font-size:20px}.mobile-nav:not([hidden]){display:grid;padding:16px max(20px,calc((100% - 1180px)/2));gap:2px;border-top:1px solid var(--line);max-height:calc(100dvh - 70px);overflow:auto}.mobile-nav a{padding:10px}.hero-grid{gap:20px}.grid-4{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:680px){.container{width:min(100% - 32px,1180px)}.header-actions>.btn{font-size:11px;padding:9px 10px}.brand{font-size:13px}.brand small{font-size:8px}.mark{width:32px;height:32px;font-size:20px}.hero-grid{grid-template-columns:1fr;padding-top:48px;padding-bottom:20px;min-height:0}.hero h1{font-size:clamp(43px,12vw,67px)}.hero p{font-size:15px}.hero-actions{margin:23px 0}.section{padding-top:55px;padding-bottom:55px}.section-title{align-items:start}.section-title .btn{font-size:12px}.features,.grid-3,.grid-4,.stats{grid-template-columns:1fr}.features{gap:12px}.service-card{min-height:0}.doctor-card{display:grid;grid-template-columns:90px 1fr}.doctor-card .portrait{height:100%;min-height:180px;font-size:34px}.doctor-info{padding:15px}.doctor-info p{min-height:0}.doctor-info .btn{padding:8px;font-size:11px;min-height:36px}.contact-band{padding:28px;display:block}.contact-band .btn{margin-top:10px}.page-heading{padding:38px 0}.detail-grid,.booking-layout,.form-grid{grid-template-columns:1fr}.booking-aside,.booking-side{position:static}.profile-top{align-items:start}.portrait.large{width:80px;height:100px}.booking-form{padding:20px}.booking-submit{display:block}.booking-submit .btn{width:100%}.footer-grid{grid-template-columns:1fr 1fr;gap:20px}.footer-grid>div:first-child{grid-column:1/-1}.portal-nav{display:grid;grid-template-columns:repeat(2,1fr)}.portal-nav .btn{white-space:normal}.filters{display:grid;grid-template-columns:1fr}.price-row{font-size:13px}.stats{grid-template-columns:repeat(2,1fr)}.stat strong{font-size:27px}}@media(max-width:375px){.header-actions>.btn{font-size:0;padding:9px}.header-actions>.btn:after{content:'Запись';font-size:11px}.doctor-card{grid-template-columns:1fr}.doctor-card .portrait{height:130px}.footer-grid{grid-template-columns:1fr}.footer-grid>div:first-child{grid-column:auto}}@supports(padding:max(0px)){.mobile-nav{padding-bottom:max(16px,env(safe-area-inset-bottom))}footer{padding-bottom:max(30px,env(safe-area-inset-bottom))}}

.hero-photo{margin:0;position:relative}.hero-photo img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:26px;box-shadow:0 22px 65px #50505024}.hero-photo figcaption{position:absolute;bottom:12px;right:16px;background:#fffffff0;border-radius:8px;padding:5px 8px;color:#5d5d5d;font-size:10px}@media(max-width:680px){.hero-photo{max-height:255px;overflow:hidden;border-radius:18px}.hero-photo img{border-radius:18px;aspect-ratio:16/9;object-position:50% 35%}}
.calendar-grid.day .calendar-doctors{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.calendar-column,.calendar-grid.week .calendar-day,.calendar-grid.month .calendar-day{background:#fafafa;border:1px solid var(--line);border-radius:15px;padding:12px;min-width:0}.calendar-column h3{font-size:14px;margin:5px 0 14px}.calendar-grid.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.calendar-grid.month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.calendar-grid.week .appointment,.calendar-grid.month .appointment{padding:10px;margin:5px 0;box-shadow:none}.calendar-grid.week .appointment h3,.calendar-grid.month .appointment h3{font-size:12px;overflow-wrap:anywhere}.calendar-grid.week .appointment p,.calendar-grid.month .appointment p{font-size:11px}@media(max-width:1100px){.calendar-grid.week,.calendar-grid.month{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:680px){.calendar-grid.week,.calendar-grid.month,.calendar-grid.day .calendar-doctors{grid-template-columns:1fr}.calendar-grid.week .appointment .actions,.calendar-grid.month .appointment .actions{display:flex}}

/* Clinic administration */
.admin-page{padding-top:34px;padding-bottom:90px}.admin-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:34px;align-items:start}.admin-nav{position:sticky;top:104px;display:flex;flex-direction:column;gap:4px;padding:16px;background:#f9f9f9;border:1px solid var(--line);border-radius:18px}.admin-nav-title{padding:7px 11px 14px;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.12em}.admin-nav a{display:block;padding:11px 13px;border-radius:10px;color:#5a5a5a;font-size:14px;font-weight:650}.admin-nav a:hover,.admin-nav a.active{background:#ebebeb;color:#4e4e4e}.admin-nav a.active{box-shadow:inset 3px 0 #696969}.admin-nav .admin-site-link{margin-top:12px;border-top:1px solid var(--line);border-radius:0;padding-top:17px}.admin-main{min-width:0}.admin-page-head{border-bottom:1px solid var(--line);margin-bottom:26px;padding:4px 0 24px}.admin-page-head h1{font-size:clamp(29px,3vw,40px);letter-spacing:-.05em;margin:8px 0}.admin-page-head p{color:var(--muted);margin:0}.admin-toolbar,.admin-section-title{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin:0 0 20px}.admin-toolbar h2,.admin-section-title h2{margin:5px 0;font-size:23px;letter-spacing:-.035em}.admin-section-title{margin-top:36px}.admin-main .stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.admin-main .stat{padding:18px;gap:7px}.admin-main .stat strong{font-size:30px}.admin-main .grid-3{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.admin-main .form-panel{max-width:100%}.admin-filters{background:#f9f9f9;padding:16px;border:1px solid var(--line);border-radius:15px}.admin-filters .field{margin-bottom:0}.admin-filters .btn{margin-bottom:1px}.admin-main .appointment .actions form{width:auto}.admin-main .appointment .actions form .btn{width:auto;min-height:35px;padding:6px 10px}.admin-main .card details[open]{margin-top:14px}.admin-main .card summary{list-style:none}.admin-main .card summary:after{content:' ›';font-size:18px}.admin-main .card details[open] summary:after{content:' ⌄'}
@media(max-width:1000px){.admin-layout{grid-template-columns:1fr;gap:18px}.admin-nav{position:static;flex-direction:row;overflow-x:auto;white-space:nowrap;padding:8px;scrollbar-width:thin}.admin-nav-title{display:none}.admin-nav a{flex:none}.admin-nav .admin-site-link{border:0;margin:0;padding:11px 13px}.admin-main .stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.admin-page{padding-top:15px}.admin-main .grid-3{grid-template-columns:1fr}.admin-toolbar{align-items:stretch}.admin-toolbar>.btn{width:100%}.admin-filters{display:grid;grid-template-columns:1fr 1fr}.admin-filters .field{grid-column:1/-1}.admin-filters .btn{white-space:normal}.admin-main .stat strong{font-size:26px}}
.admin-editor{margin:14px 0;padding:0 22px}.admin-editor summary{padding:18px 0;font-size:16px}.admin-editor[open]{padding-bottom:22px}.admin-editor .form{max-width:600px}.admin-editor .form+.form{margin-top:20px}.admin-editor h3{padding-top:12px}

/* Hourly appointment timetable */
.booking-grid-scroll{width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:15px;background:#ffffff;min-height:90px}.booking-grid-scroll>p{padding:18px}.booking-grid{width:100%;border-collapse:separate;border-spacing:0;min-width:600px;text-align:center}.booking-grid th,.booking-grid td{padding:9px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:125px}.booking-grid thead th{background:#f5f5f5;color:#4e4e4e;font-size:13px;font-weight:750;padding:15px 8px}.booking-grid thead th:first-child{position:sticky;left:0;z-index:2;min-width:78px}.booking-grid tbody th{position:sticky;left:0;z-index:1;background:#fafafa;font-weight:750;min-width:78px}.booking-grid tr:last-child>*{border-bottom:0}.booking-grid tr>*:last-child{border-right:0}.slot-free{width:100%;border:1px solid #cecece;background:#f3f3f3;color:#505050;border-radius:10px;padding:11px 7px;font-weight:750;white-space:nowrap;cursor:pointer}.slot-free:hover,.slot-free.selected{background:#707070;border-color:#707070;color:#ffffff}.slot-free:focus-visible{outline:3px solid #494949}.slot-busy,.slot-closed{font-size:12px;color:#6d6d6d;background:#f3f3f3;padding:9px 11px;border-radius:8px;display:inline-block}.slot-closed{background:#f6f6f6;color:#909090}.grid-selection{background:#f4f4f4;border-radius:10px;padding:11px 14px;color:#535353;font-weight:700;font-size:13px;margin:14px 0}.admin-booking{margin-top:32px;scroll-margin-top:100px}.admin-booking-contact{max-width:560px;margin-top:20px;border-top:1px solid var(--line);padding-top:16px}.admin-booking-contact .field{margin-top:8px}@media(max-width:680px){.booking-grid{min-width:520px}.booking-grid th,.booking-grid td{min-width:110px}.slot-free{font-size:11px}}

/* DarDent identity */
.brand-icon{display:block;width:42px;height:42px;object-fit:contain;flex:none;border-radius:50%;background:#ffffff}.hero-logo{margin:0;align-self:center;width:100%;background:#ffffff;border:1px solid #e8e8e8;border-radius:26px;overflow:hidden;box-shadow:0 22px 65px #5050501b}.hero-logo img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:contain}footer .brand-icon{width:38px;height:38px}@media(max-width:680px){.brand-icon{width:34px;height:34px}.hero-logo{max-width:520px;margin:auto;border-radius:18px}}

/* Homepage sections appear as they enter the viewport. Content is visible without JavaScript. */
@media(prefers-reduced-motion:no-preference){
  main > section.reveal-pending{opacity:0;transform:translateY(28px)}
  main > section:not(.hero){transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.2,1)}
}

/* Doctor portraits keep a consistent 3:4 frame across public and staff pages. */
.portrait{position:relative;overflow:hidden;aspect-ratio:3/4;width:100%;height:auto;min-height:0;border-radius:12px;background:#efefef;display:grid;place-items:center}
.portrait img{display:block;width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.portrait-placeholder{display:grid;place-items:center;width:100%;height:100%;font-size:clamp(44px,9vw,92px);color:#a8a8a8;background:radial-gradient(circle at 65% 25%,#ffffff,#efefef 70%,#d8d8d8)}
.doctor-card .portrait{aspect-ratio:3/4;width:100%;height:auto;min-height:0;border-radius:0}
.portrait.large{width:180px;height:240px;aspect-ratio:3/4;flex:none}
.doctor-editor .portrait.large{width:120px;height:160px;margin-bottom:16px}
.doctor-profile{display:flex;gap:24px;align-items:flex-start}
.doctor-profile>div:last-child{flex:1;min-width:0}
.doctor-photo-upload{margin:14px 0;max-width:500px}
.doctor-photo-upload .field input[type=file]{width:100%;max-width:100%;font-size:13px}
.photo-crop-dialog{padding:0;border:0;border-radius:18px;max-width:min(94vw,460px);max-height:94vh;overflow:auto;box-shadow:0 30px 90px #1a1a1a70}
.photo-crop-dialog::backdrop{background:#1a1a1ac9}
.photo-crop-content{padding:22px;display:grid;gap:14px;background:#ffffff;color:#2f2f2f}
.photo-crop-content h2,.photo-crop-content p{margin:0}
.photo-crop-content canvas{display:block;width:min(100%,300px);height:auto;aspect-ratio:3/4;margin:auto;border:2px solid #7a7a7a;border-radius:8px;touch-action:none;cursor:grab}
.photo-crop-content canvas:active{cursor:grabbing}
.photo-crop-content label{display:grid;gap:7px}
.photo-crop-content input[type=range]{width:100%}
.photo-crop-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
@media(max-width:680px){.doctor-card .portrait{width:90px;height:120px;min-height:0}.portrait.large{width:90px;height:120px}.doctor-profile{flex-direction:column}.photo-crop-content{padding:16px}}
@media(max-width:375px){.doctor-card .portrait{width:100%;height:auto;aspect-ratio:3/4}}

/* Longer descriptions in clinic management forms. */
.admin-main .field textarea{min-height:155px;resize:vertical;max-width:100%;line-height:1.5}

/* External and clinic reviews */
.reviews-page{display:grid;gap:26px}.reviews-section-heading h2{margin:4px 0 0}.reviews-grid{align-items:stretch}.review{min-width:0;overflow-wrap:anywhere}.review-author{font-weight:700;margin-top:10px}.reviews-form{margin:0;max-width:720px}.reviews-form textarea{min-height:145px;resize:vertical}
@media(max-width:680px){.reviews-grid{grid-template-columns:1fr}}

.clinic-settings{max-width:900px}.clinic-hours{margin:16px 0 28px}.clinic-hours h2{margin:0 0 8px}.clinic-hours-row{display:grid;grid-template-columns:48px minmax(125px,1fr) minmax(110px,1fr) minmax(110px,1fr);align-items:center;gap:12px;border-bottom:1px solid var(--line);padding:9px 0}.clinic-hours-row .field{margin:0}.clinic-hours-row strong{color:var(--accent-hover)}@media(max-width:680px){.clinic-hours-row{grid-template-columns:44px 1fr 1fr}.clinic-hours-row .field:first-of-type{grid-column:2 / -1}.clinic-hours-row strong{grid-row:1 / 3}}
.booking-date-card:disabled{opacity:.55;cursor:not-allowed;background:#f6f6f6}.booking-date-card:disabled:hover{border-color:#e3e3e3}

.booking-grid-doctors{min-width:0;text-align:left}.booking-grid-doctors tbody th{position:static;width:215px;min-width:160px;max-width:215px;padding:18px 14px;vertical-align:middle;white-space:normal;line-height:1.4}.booking-grid-doctors td{min-width:0;text-align:left;padding:13px;vertical-align:middle}.doctor-slots{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.booking-grid-doctors .slot-free{width:auto;min-width:75px;padding:10px 13px}.doctor-slots .muted{font-size:13px}
@media(max-width:680px){.booking-grid-doctors{min-width:0}.booking-grid-doctors tbody th{min-width:112px;width:35%;padding:12px 9px;font-size:12px}.booking-grid-doctors td{min-width:0;padding:10px}.booking-grid-doctors .slot-free{min-width:66px;padding:9px;font-size:12px}}

/* Booking date cards and compact doctor rows. */
.booking-dates{display:flex;gap:9px;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;padding:3px 2px 12px;max-width:100%;-webkit-overflow-scrolling:touch}
.booking-date-card{appearance:none;flex:0 0 125px;width:125px;min-height:124px;border:1px solid #e3e3e3;border-radius:16px;background:#fdfdfd;color:var(--ink);padding:17px 12px;text-align:left;display:flex;flex-direction:column;justify-content:center;gap:16px;white-space:nowrap;font:inherit;cursor:pointer}
.booking-date-card strong{font-size:16px;line-height:1.2}.booking-date-card span{font-size:14px;color:var(--muted);line-height:1.2}
.booking-date-card:hover{border-color:var(--accent);background:var(--pale)}.booking-date-card.selected{border:2px solid var(--accent);background:var(--pale);padding:16px 11px}.booking-date-card.selected strong{color:var(--accent-hover)}
.booking-grid-doctors{width:100%;table-layout:auto}.booking-grid-doctors tbody tr{display:table-row}.booking-grid-doctors tbody th{width:215px;min-width:180px;max-width:215px}.booking-grid-doctors tbody td{width:auto}.booking-grid-doctors .doctor-slots{min-height:44px}
@media(max-width:680px){.booking-date-card{flex-basis:118px;width:118px;min-height:112px}.booking-grid-doctors tbody th{width:38%;min-width:120px}.booking-grid-doctors tbody td{width:62%}}

/* Administrator calendar cells and action dialog */
.calendar-slots{width:100%;border-collapse:separate;border-spacing:3px;min-width:640px}.calendar-slots th,.calendar-slots td{padding:5px;text-align:center}.calendar-slots th:first-child{position:sticky;left:0;background:var(--bg);z-index:1}.calendar-cell{width:100%;min-height:38px;border:1px solid var(--line);border-radius:9px;cursor:pointer;font:inherit}.calendar-cell.free{background:#eeeeee;color:#404040}.calendar-cell.busy{background:#ececec;color:#454545}.calendar-cell.selected{outline:3px solid var(--accent);outline-offset:1px}.calendar-action-dialog{border:1px solid var(--line);border-radius:18px;padding:24px;max-width:min(480px,90vw);width:100%;color:var(--ink);background:var(--bg);box-shadow:0 24px 70px #00000044}.calendar-action-dialog::backdrop{background:#22222288}.calendar-action-dialog .form{display:none}.calendar-action-dialog #calendar-action-buttons{display:flex;gap:10px;margin:18px 0}
.calendar-action-dialog[open]{position:fixed;top:50%;left:50%;right:auto;bottom:auto;margin:0;z-index:30;transform:translate(-50%,-50%)}@media(max-width:640px){.calendar-action-dialog[open]{width:min(calc(100vw - 24px),480px);max-height:calc(100dvh - 24px);overflow:auto}}

.calendar-slots{min-width:0;border-spacing:0;width:100%}.calendar-slots tbody tr+tr>*{border-top:1px solid var(--line)}.calendar-slots tbody th{width:220px;min-width:170px;text-align:left;vertical-align:top;padding:14px 12px;background:var(--bg)}.calendar-slots tbody td{text-align:left;padding:10px}.calendar-doctor-slots{display:flex;flex-wrap:wrap;gap:8px}.calendar-doctor-slots .calendar-cell{width:auto;min-width:76px;padding:8px 12px;display:inline-flex;align-items:center;justify-content:center}.calendar-doctor-slots .calendar-cell.blocked{background:#eeeeee;color:var(--muted);border-radius:9px}.calendar-slots tbody th:first-child{position:static}@media(max-width:640px){.calendar-slots tbody th{width:120px;min-width:120px}.calendar-doctor-slots .calendar-cell{min-width:68px;padding:7px}}

.admin-calendar-date-navigation{display:flex;align-items:stretch;gap:8px;max-width:100%;min-width:0}.admin-calendar-date-navigation .admin-calendar-dates{flex:1 1 auto;min-width:0;scroll-behavior:smooth}.admin-calendar-date-navigation>.btn{flex:0 0 42px;align-self:stretch;padding:0 10px;font-size:22px}.admin-calendar-date-navigation .booking-date-card{scroll-snap-align:start}.admin-calendar-date-navigation .booking-dates{scroll-snap-type:x proximity}

.booking-date-card{gap:6px;justify-content:center;padding:13px 11px}.booking-date-card.selected{padding:12px 10px}.booking-date-card .booking-date-weekday{font-size:13px;line-height:1.25}.booking-date-card .booking-date-available{font-size:13px;line-height:1.25;color:var(--accent-hover)}

.reschedule-dialog{width:min(900px,calc(100vw - 24px));max-width:900px;max-height:90vh;overflow:auto;border:1px solid var(--line);border-radius:20px;padding:24px;background:var(--bg);color:var(--ink);box-shadow:0 24px 70px #00000044}.reschedule-dialog::backdrop{background:#22222299}.reschedule-dialog-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.reschedule-dialog-head h2{margin:0}.reschedule-dialog .reschedule-dates{margin:16px 0}.reschedule-dialog .reschedule-grid{margin:12px 0;max-height:48vh;overflow:auto}.reschedule-dialog .reschedule-selection{margin:14px 0}.reschedule-dialog form{display:flex;justify-content:flex-end}@media(max-width:680px){.reschedule-dialog{padding:16px}.reschedule-dialog .reschedule-grid{max-height:40vh}}
.admin-tabs{display:flex;gap:8px;overflow-x:auto;white-space:nowrap;margin:0 0 22px;padding-bottom:9px;border-bottom:1px solid var(--line)}.admin-tabs a{padding:10px 14px;border-radius:10px;color:var(--muted);font-weight:700}.admin-tabs a.active{background:#ebebeb;color:#4e4e4e}.admin-doctor-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin-bottom:22px}.admin-doctor-list>a{display:flex;align-items:center;gap:12px;min-width:0}.admin-doctor-list img{width:54px;height:54px;object-fit:cover;border-radius:50%;flex:none}.admin-doctor-list .admin-doctor-info{display:grid;gap:4px;min-width:0;font-size:inherit;color:var(--ink)}.admin-doctor-list .admin-doctor-info strong{display:block;overflow-wrap:anywhere;font-size:15px;line-height:1.35}.admin-doctor-list .admin-doctor-info span{display:block;font-size:12px;line-height:1.35;color:var(--muted);overflow-wrap:anywhere}.admin-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.admin-row form{margin:0}.admin-table-scroll{max-width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:14px}.admin-data-table{width:100%;min-width:650px;border-collapse:collapse}.admin-data-table th,.admin-data-table td{text-align:left;padding:12px;border-bottom:1px solid var(--line)}.admin-data-table th{background:#f5f5f5}.admin-booking{margin:auto;max-height:calc(100vh - 24px)}.admin-booking .booking-dates{margin:14px 0}.admin-booking .booking-grid-scroll{max-height:42vh}.admin-main{min-width:0}.admin-main .grid-3{min-width:0}.admin-main .card{min-width:0;overflow-wrap:anywhere}@media(max-width:680px){.admin-booking{padding:16px}.admin-tabs{gap:2px}.admin-tabs a{padding:10px}}
.reschedule-dialog.admin-booking form{display:block}.admin-booking .booking-date-card{flex:none}.admin-row details{width:100%}

/* Shared appointment grid: public booking, administrator calendar and rescheduling. */
.booking-grid-doctors,
.calendar-slots { width:100%; min-width:0; border-collapse:separate; border-spacing:0; text-align:left }
.booking-grid-doctors tbody th,
.calendar-slots tbody th { position:static; width:215px; min-width:160px; max-width:215px; padding:18px 14px; vertical-align:middle; white-space:normal; line-height:1.4; text-align:left; background:#fafafa }
.booking-grid-doctors tbody td,
.calendar-slots tbody td { min-width:0; padding:13px; vertical-align:middle; text-align:left }
.doctor-slots,
.calendar-doctor-slots { display:flex; flex-wrap:wrap; align-items:center; gap:8px }
.booking-grid-doctors .slot-free,
.calendar-doctor-slots .calendar-cell { box-sizing:border-box; width:auto; min-width:75px; min-height:42px; padding:10px 13px; border-radius:10px; font-size:14px; font-weight:750; line-height:1.2; white-space:nowrap }
.calendar-doctor-slots .calendar-cell.free { border:1px solid #cecece; background:#f3f3f3; color:#505050 }
.calendar-doctor-slots .calendar-cell.free:hover,
.calendar-doctor-slots .calendar-cell.free.selected { border-color:#707070; background:#707070; color:#ffffff }
.calendar-doctor-slots .calendar-cell.busy { border:1px solid #cbcbcb; background:#f3f3f3; color:#454545 }
.calendar-doctor-slots .calendar-cell.blocked { border:1px solid #e3e3e3; background:#f6f6f6; color:#676767 }
.calendar-doctor-slots .calendar-cell:focus-visible { outline:3px solid #494949; outline-offset:2px }
.calendar-doctor-slots .calendar-cell.selected:not(.free) { outline:3px solid var(--accent); outline-offset:2px }
@media(max-width:680px) {
  .booking-grid-doctors tbody th,
  .calendar-slots tbody th { width:120px; min-width:120px; padding:12px 9px; font-size:12px }
  .booking-grid-doctors tbody td,
  .calendar-slots tbody td { padding:10px }
  .booking-grid-doctors .slot-free,
  .calendar-doctor-slots .calendar-cell { min-width:68px; min-height:38px; padding:9px; font-size:12px }
}

/* Home hero: calm, confident headline reveal. */
.hero-headline{position:relative}
.hero-headline .hero-type{display:inline-block;position:relative;white-space:nowrap;transform-origin:left center;opacity:0;filter:blur(7px);transform:translateY(17px) scale(.985)}
.hero-headline .hero-type-first{animation:hero-headline-reveal .74s cubic-bezier(.22,1,.36,1) .06s both}
.hero-headline .hero-type-second{font-size:.78em;letter-spacing:-.065em;animation:hero-headline-reveal .88s cubic-bezier(.22,1,.36,1) .2s both}
@keyframes hero-headline-reveal{to{opacity:1;filter:blur(0);transform:translateY(0) scale(1)}}
.hero-actions .hero-booking-button{position:relative;isolation:isolate;overflow:hidden;min-height:54px;padding:13px 17px 13px 23px;border:1px solid #656565;border-radius:15px;background:linear-gradient(115deg,#585858,#767676 68%,#898989);color:#ffffff;font-size:15px;font-weight:750;box-shadow:0 10px 24px rgba(83,83,83,.19);animation:hero-button-breathe 4.4s ease-in-out 1s infinite;transition:transform .22s ease,box-shadow .22s ease,background .22s ease}
.hero-actions .hero-booking-button::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,transparent 27%,rgba(255,255,255,.2) 49%,transparent 71%);transform:translateX(-130%);transition:transform .65s ease}
.hero-actions .hero-booking-button:hover{transform:translateY(-3px);background:linear-gradient(115deg,#4b4b4b,#6b6b6b 68%,#838383);box-shadow:0 16px 32px rgba(83,83,83,.27)}
.hero-actions .hero-booking-button:hover::before{transform:translateX(130%)}
.hero-actions .hero-booking-button:active{transform:translateY(0) scale(.98);box-shadow:0 5px 12px rgba(83,83,83,.22)}
.hero-booking-arrow{display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.18);font-size:19px;line-height:1;transition:transform .22s ease,background .22s ease}
.hero-booking-button:hover .hero-booking-arrow{transform:translate(2px,-2px);background:rgba(255,255,255,.27)}
@keyframes hero-button-breathe{50%{box-shadow:0 12px 28px rgba(83,83,83,.28)}}
@media(max-width:680px){.hero-headline .hero-type-second{font-size:.72em}.hero-actions .hero-booking-button{min-height:52px;font-size:14px}}
@media(prefers-reduced-motion:reduce){
  .hero-headline .hero-type{opacity:1;filter:none;transform:none;animation:none}
  .hero-actions .hero-booking-button{animation:none}
  .hero-actions .hero-booking-button::before,.hero-booking-arrow{transition:none}
}

.admin-calendar-current{margin:15px 0 10px;color:var(--accent-hover);font-size:15px;font-weight:750;text-transform:capitalize}

/* Keep all appointment actions aligned, including the form submit buttons. */
.admin-main .appointment .actions{align-items:center;gap:8px}
.admin-main .appointment .actions form{width:auto;margin:0;padding:0}
.admin-main .appointment .actions .btn,
.admin-main .appointment .actions form .btn{box-sizing:border-box;width:auto;min-height:44px;padding:11px 18px;line-height:20px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center}


/* Home page map. The iframe stays light until the visitor reaches this final section. */
.clinic-map-section{padding-top:0}
.clinic-map-card{display:grid;grid-template-columns:minmax(230px,.72fr) minmax(360px,1.28fr);overflow:hidden;border:1px solid #dedede;border-radius:24px;background:linear-gradient(135deg,#f6f6f6,#fbfbfb);box-shadow:0 18px 42px rgba(75,75,75,.09)}
.clinic-map-copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:42px 38px}
.clinic-map-copy h2{margin:7px 0 10px;font-size:clamp(28px,3vw,42px)}
.clinic-map-copy p{max-width:24ch;margin:0 0 24px;color:var(--muted);line-height:1.55}
.map-open-link{display:inline-flex;align-items:center;gap:9px;padding:11px 0;border-bottom:1px solid currentColor;color:var(--accent-hover);font-weight:750;transition:gap .2s ease,color .2s ease}
.map-open-link:hover{gap:13px;color:#505050}
.map-open-link span{font-size:20px;line-height:1}
.clinic-map-preview{position:relative;display:block;min-height:295px;overflow:hidden;background:#e9e9e9;color:var(--ink);isolation:isolate}
.clinic-map-preview::before{content:'';position:absolute;inset:-28%;z-index:-2;background:linear-gradient(117deg,transparent 0 44%,#fafafa 44.3% 46.4%,transparent 46.7% 100%),linear-gradient(20deg,transparent 0 38%,#fafafa 38.3% 40.8%,transparent 41.1% 100%),linear-gradient(90deg,#e7e7e7,#dadada);transform:rotate(-4deg)}
.clinic-map-roads{position:absolute;inset:0;z-index:-1;opacity:.9;background:repeating-linear-gradient(31deg,transparent 0 71px,rgba(255,255,255,.72) 72px 76px,transparent 77px 138px),repeating-linear-gradient(119deg,transparent 0 93px,rgba(255,255,255,.58) 94px 97px,transparent 98px 173px)}
.clinic-map-pin{position:absolute;z-index:2;left:50%;top:48%;display:grid;place-items:center;width:52px;height:52px;border:4px solid #ffffff;border-radius:50%;background:var(--accent-hover);color:#ffffff;font-size:30px;line-height:1;box-shadow:0 9px 22px rgba(80,80,80,.34);transform:translate(-50%,-50%);transition:transform .25s ease,box-shadow .25s ease}
.clinic-map-preview:hover .clinic-map-pin{transform:translate(-50%,-58%) scale(1.08);box-shadow:0 14px 28px rgba(80,80,80,.42)}
.clinic-map-preview-label{position:absolute;left:22px;bottom:20px;display:grid;gap:3px;padding:11px 14px;border:1px solid #ffffff88;border-radius:13px;background:#fffffff0;box-shadow:0 8px 20px #4f4f4f17}
.clinic-map-preview-label strong{font-size:15px}.clinic-map-preview-label small{font-size:12px;color:#5c5c5c}
@media(max-width:760px){.clinic-map-card{grid-template-columns:1fr}.clinic-map-copy{padding:30px 24px}.clinic-map-preview{min-height:240px}.clinic-map-copy p{max-width:none}}
@media(prefers-reduced-motion:reduce){.map-open-link{transition:none}}


/* Readable typography baseline */
body{font-size:16px;line-height:1.55}
.btn{font-size:15px}
.eyebrow{font-size:13px;letter-spacing:.12em}
.brand small{font-size:12px}
.hero-foot,.small{font-size:14px}
.field{font-size:15px}.field input,.field select,.field textarea{font-size:16px}
.check,.booking-submit p,footer p{font-size:14px}
.doctor-info p,.price-row{font-size:15px}
.badge,.mini,.step-number{font-size:13px}
.admin-nav-title{font-size:12px}
.booking-grid thead th,.grid-selection,.doctor-slots .muted{font-size:14px}
.slot-busy,.slot-closed,.slot-free{font-size:14px}
.booking-grid-doctors tbody th{font-size:14px}
.booking-grid-doctors .slot-free{font-size:14px}
.booking-date-card .booking-date-weekday,.booking-date-card .booking-date-available{font-size:14px}
.admin-doctor-list .admin-doctor-info span{font-size:14px}
.clinic-map-preview-label small{font-size:13px}
.calendar-grid.week .appointment h3,.calendar-grid.month .appointment h3{font-size:14px}
.calendar-grid.week .appointment p,.calendar-grid.month .appointment p{font-size:13px}
@media(max-width:680px){
  body{font-size:16px}
  .header-actions>.btn,.section-title .btn,.doctor-info .btn{font-size:14px}
  .brand{font-size:15px}.brand small{font-size:10px}
  .booking-grid-doctors tbody th{font-size:13px}
  .booking-grid-doctors .slot-free,.calendar-doctor-slots .calendar-cell{font-size:13px}
}


/* Keep the footer at the viewport bottom when a page has little content. */
html,body{min-height:100%}
body{min-height:100dvh;display:flex;flex-direction:column}
main{flex:1 0 auto}
footer{margin-top:auto}


.booking-phone{display:grid;gap:5px}
.booking-phone>span{font-size:14px;color:var(--muted)}
.booking-phone>a{width:max-content;font-size:19px;font-weight:800;letter-spacing:-.02em;color:var(--accent-hover)}
.booking-phone>small{display:block;margin-top:4px;font-size:14px;line-height:1.55;color:var(--muted)}


.contacts-map-preview{min-height:100%;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}
@media(max-width:760px){.contacts-map-preview{min-height:260px}}


.booking-notice{margin:18px 0;padding:14px 16px;border:1px solid #dcdcdc;border-radius:12px;background:#f7f7f7;color:#555555;line-height:1.55}


/* Staggered reveal for the home page approach and service cards. */
@media(prefers-reduced-motion:no-preference){
  main > section .features>div,
  main > section .grid-4>.service-card{transition:opacity .48s ease,transform .52s cubic-bezier(.2,.8,.2,1)}
  main > section.reveal-pending .features>div,
  main > section.reveal-pending .grid-4>.service-card{opacity:0;transform:translateY(22px)}
  main > section .features>div:nth-child(1),
  main > section .grid-4>.service-card:nth-child(1){transition-delay:.06s}
  main > section .features>div:nth-child(2),
  main > section .grid-4>.service-card:nth-child(2){transition-delay:.16s}
  main > section .features>div:nth-child(3),
  main > section .grid-4>.service-card:nth-child(3){transition-delay:.26s}
  main > section .features>div:nth-child(4),
  main > section .grid-4>.service-card:nth-child(4){transition-delay:.36s}
}

@media(prefers-reduced-motion:no-preference){
  main > section .features>div.reveal-item-pending,
  main > section .grid-4>.service-card.reveal-item-pending{opacity:0;transform:translateY(22px)}
}

@media(prefers-reduced-motion:no-preference){
  main > section .section-title h2{transition:opacity .52s ease .08s,transform .56s cubic-bezier(.2,.8,.2,1) .08s}
  main > section .section-title h2.reveal-item-pending{opacity:0;transform:translateY(18px)}
}

/* Keep later booking steps hidden until their prerequisites are selected. */
#booking-form [hidden]{display:none!important}

.ticket-layout{max-width:820px;margin:auto}
.appointment-ticket{background:var(--surface,#ffffff);border:1px solid var(--line);border-radius:24px;overflow:hidden;box-shadow:0 16px 48px rgba(55,55,55,.09)}
.ticket-top{display:flex;justify-content:space-between;gap:20px;background:var(--primary,#606060);color:#ffffff;padding:22px 30px;font-weight:700}
.ticket-status{margin:26px 30px 0;font-size:14px;font-weight:600}
.ticket-when{display:flex;flex-wrap:wrap;align-items:baseline;gap:12px 24px;padding:16px 30px 28px;border-bottom:2px dashed var(--line)}
.ticket-when strong{font-size:clamp(28px,6vw,42px);letter-spacing:-1px}
.ticket-when>span{font-size:28px;font-weight:600}
.ticket-when small{flex-basis:100%;color:var(--muted)}
.ticket-info{margin:0;padding:28px 30px;display:grid;grid-template-columns:1fr 1fr;gap:24px}
.ticket-info dt{font-size:13px;color:var(--muted);margin-bottom:6px}
.ticket-info dd{margin:0;font-weight:600;font-size:18px;overflow-wrap:anywhere}
.ticket-info dd small{display:block;font-weight:400;font-size:14px;margin-top:5px;color:var(--muted)}
.ticket-notice{margin:0;padding:20px 30px;background:rgba(96,96,96,.06);font-size:14px}
.ticket-actions{margin-top:24px;display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px}
.ticket-change{flex:1 1 250px}
.ticket-change summary{cursor:pointer;list-style:none}
.ticket-change summary::-webkit-details-marker{display:none}
.ticket-change[open]{padding:16px;border:1px solid var(--line);border-radius:16px}
.ticket-change .form{margin-top:14px}
.ticket-cancel .btn.primary{background:#434343}
@media(max-width:560px){.ticket-top,.ticket-when,.ticket-info,.ticket-notice{padding-left:20px;padding-right:20px}.ticket-status{margin-left:20px}.ticket-info{grid-template-columns:1fr}.ticket-actions{display:block}.ticket-change{margin-bottom:12px}}

.ticket-file-dialog{max-width:520px;width:calc(100% - 32px);border:1px solid var(--line);border-radius:20px;padding:28px;color:var(--text);background:var(--surface,#ffffff)}
.ticket-file-dialog::backdrop{background:rgba(0,0,0,.45)}
.ticket-file-actions{display:flex;flex-wrap:wrap;gap:10px}.ticket-file-actions [hidden]{display:none!important}

#booking-form{overflow:hidden}
#booking-form .booking-step{border-bottom:0}
.booking-calendar{max-width:560px;margin:auto}
.booking-calendar-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}
.booking-calendar-nav h3{margin:0;text-transform:capitalize;text-align:center}
.booking-calendar-nav button{padding:10px 16px}
.booking-calendar-week,.booking-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}
.booking-calendar-week{margin-bottom:10px;text-align:center;font-size:13px;color:var(--muted)}
.calendar-day{min-height:68px;padding:10px 3px;border-radius:12px;border:1px solid transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;cursor:pointer}
.calendar-day strong{font-size:20px}.calendar-day small{font-size:10px;white-space:nowrap}
.calendar-day.available{background:#f4f4f4;color:#515151;border-color:#e7e7e7}
.calendar-day.available:hover,.calendar-day.available.selected{background:#7f7f7f;color:#ffffff;border-color:#646464}
.calendar-day.unavailable{background:#f4f4f4;color:#a1a1a1;cursor:default;opacity:1}
.calendar-day:focus-visible{outline:3px solid #767676;outline-offset:2px}
.calendar-legend{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;margin-top:15px}
.calendar-legend span:first-child{color:#646464}.calendar-legend span:last-child{color:#727272}
.booking-time-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:12px;margin:20px 0}
.booking-time-tile{font-size:20px;padding:18px 12px;border-radius:12px;text-align:center}
#booking-back{align-self:flex-start}
@media(max-width:480px){.booking-calendar-week,.booking-calendar-days{gap:4px}.calendar-day{min-height:56px;border-radius:8px}.calendar-day strong{font-size:17px}.calendar-day small{font-size:8px}.booking-calendar-nav h3{font-size:17px}}

.document-toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:8px;padding:14px;background:#f4f4f4;border:1px solid var(--line);border-radius:12px 12px 0 0}
.document-toolbar label{display:flex;flex-direction:column;gap:4px;font-size:12px}
.document-toolbar select,.document-toolbar button{padding:8px;border:1px solid #d4d4d4;border-radius:6px;background:white;color:#343434;font-size:13px}
.document-toolbar button{cursor:pointer;min-height:36px}
.document-toolbar input[type=color]{width:40px;height:36px;padding:3px;border:1px solid #d4d4d4}
.document-editor{min-height:420px;padding:24px;border:1px solid var(--line);border-top:0;border-radius:0 0 12px 12px;outline:none;background:white;color:#343434;overflow-wrap:anywhere}
.document-editor:focus{box-shadow:0 0 0 2px #767676}
.legal-document{line-height:1.7;overflow-wrap:anywhere}
.legal-document h1,.legal-document h2,.legal-document h3{line-height:1.3;margin:1em 0 .5em}
.legal-document ul,.legal-document ol{padding-left:28px}
.legal-document blockquote{border-left:3px solid #767676;padding-left:18px;margin:16px 0}
@media(max-width:600px){.document-editor{padding:16px}.document-toolbar{gap:6px}}

/* Stable button navigation: active and hover states keep identical text metrics. */
.header-inner{gap:18px}
.desktop-nav{gap:3px;padding:5px;border:1px solid #e5e5e5;border-radius:16px;background:#f6f6f6;box-shadow:inset 0 1px 0 #ffffff;flex-shrink:0}
.desktop-nav a,.desktop-nav a:hover,.desktop-nav a.selected{display:inline-flex;align-items:center;justify-content:center;padding:10px 11px;border-radius:11px;font-size:14px;font-weight:600;line-height:1.3;white-space:nowrap;transition:background-color .22s ease,color .22s ease,box-shadow .22s ease,transform .22s ease}
.desktop-nav a{color:#5d5d5d}
.desktop-nav a:hover{background:#ededed;color:#5a5a5a}
.desktop-nav a.selected{background:#ffffff;color:#5a5a5a;box-shadow:0 2px 8px #42424212,inset 0 0 0 1px #e3e3e3}
.desktop-nav a:active{transform:scale(.97)}
.mobile-nav a,.mobile-nav a:hover,.mobile-nav a.selected{font-weight:600;border-radius:11px;transition:background-color .22s ease,color .22s ease,transform .22s ease}
.mobile-nav a:hover{background:#ededed;color:#5a5a5a}
.mobile-nav a.selected{background:#ebebeb;color:#5a5a5a;box-shadow:inset 0 0 0 1px #dfdfdf}
.mobile-nav:not([hidden]){gap:6px;background:#f9f9f9}
@media(min-width:981px) and (max-width:1200px){.header-inner{gap:12px}.desktop-nav{gap:2px;padding:4px}.desktop-nav a,.desktop-nav a:hover,.desktop-nav a.selected{font-size:13px;padding:9px 8px}}
@media(max-width:980px){.desktop-nav{display:none}}
@media(prefers-reduced-motion:reduce){.desktop-nav a,.mobile-nav a{transition:none}.desktop-nav a:active{transform:none}}

.service-image{aspect-ratio:16/9;width:100%;height:auto;margin-bottom:16px;border-radius:12px}
.service-image img{object-fit:cover}
.service-detail-image{aspect-ratio:16/9;max-width:640px;margin-bottom:24px}
.service-editor-image{max-width:240px;margin:16px 0}
.service-admin-grid{margin-top:24px}
.service-delete{margin-top:24px;border-top:1px solid var(--line);padding-top:20px}
.service-delete summary{color:#434343;cursor:pointer}
.service-delete .btn.primary{background:#434343}

.booking-progress{padding:20px;border:1px solid #e6e6e6;border-radius:16px;background:linear-gradient(135deg,#f9f9f9,#ffffff);margin-bottom:12px}
.booking-progress-header{display:flex;justify-content:space-between;gap:12px;font-size:13px;font-weight:600;color:#626262;margin-bottom:12px}
.booking-progress-track{height:7px;border-radius:99px;background:#eaeaea;overflow:hidden}
#booking-progress-fill{display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,#6b6b6b,#969696);transition:width .35s ease}
.booking-progress-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding:0;margin:18px 0 0;list-style:none}
.booking-progress-steps li{display:flex;flex-direction:column;align-items:center;gap:7px;color:#8f8f8f;font-size:12px}
.booking-progress-steps li>span{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#f0f0f0;border:1px solid #e2e2e2;font-weight:700;transition:background .25s ease,color .25s ease,box-shadow .25s ease}
.booking-progress-steps small{font-size:12px}
.booking-progress-steps .complete{color:#6a6a6a}
.booking-progress-steps .complete>span{background:#ececec;color:#646464;border-color:#dcdcdc}
.booking-progress-steps .current{color:#656565;font-weight:700}
.booking-progress-steps .current>span{background:#737373;color:#ffffff;border-color:#737373;box-shadow:0 0 0 4px #73737318}
.portal-logout{margin-left:auto;display:inline-flex}
.portal-logout .btn{white-space:nowrap}
@media(max-width:480px){.booking-progress{padding:15px 10px}.booking-progress-steps{gap:3px}.booking-progress-steps small{font-size:10px}.portal-logout{margin-left:0}}
@media(prefers-reduced-motion:reduce){#booking-progress-fill,.booking-progress-steps li>span{transition:none}}

/* Compact staff cards need fixed portrait dimensions rather than 100% flex width. */
.admin-doctor-list .portrait{width:64px;height:86px;aspect-ratio:3/4;flex:0 0 64px;border-radius:10px}
.admin-doctor-list .portrait img{width:100%;height:100%;border-radius:0;object-fit:cover}
.admin-doctor-list .admin-doctor-info{flex:1;min-width:0}
.admin-doctor-list .admin-doctor-info strong{overflow-wrap:break-word;word-break:normal}
.portrait img[src^="/images/nologo.png"]{object-fit:contain;padding:8px}
@media(max-width:480px){.admin-doctor-list{grid-template-columns:1fr}.admin-doctor-list .portrait{width:60px;height:80px;flex-basis:60px}}

.document-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;margin:20px 0}
.document-card{display:flex;flex-direction:column;gap:14px;padding:24px;border:1px solid #e2e2e2;border-radius:16px;background:linear-gradient(145deg,#ffffff,#f7f7f7);transition:box-shadow .2s,transform .2s}
.document-card:hover{transform:translateY(-3px);box-shadow:0 10px 24px #34343412}
.document-card-icon{font-size:34px;color:#727272}.document-card>span:last-child{font-size:13px;color:#727272}
.document-modal-open{overflow:hidden}
.word-document-modal{width:min(1200px,calc(100vw - 24px));max-width:none;height:calc(100dvh - 32px);max-height:none;padding:0;border:1px solid #d6d6d6;border-radius:18px;background:#f1f1f1;color:#343434;overflow:auto}
.word-document-modal::backdrop{background:#22222280;backdrop-filter:blur(4px)}
.word-modal-header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 24px;background:white;border-bottom:1px solid #dcdcdc}
.word-modal-header h2{font-size:20px;margin:4px 0}.word-modal-header small{font-size:12px;color:#707070}
.word-document-modal>.form{display:block;margin:0}
.word-document-modal .document-toolbar{position:sticky;top:0;z-index:2;border:0;border-bottom:1px solid #d4d4d4;border-radius:0;background:#fafafa;padding:14px 24px;box-shadow:0 3px 10px #00000008}
.word-document-modal .document-toolbar button{min-width:36px;transition:background .15s;border-color:#dfdfdf}
.word-document-modal .document-toolbar button:hover{background:#ebebeb;border-color:#afafaf}
.word-page-stage{padding:30px;overflow-x:auto;background:#ececec}
.word-document-modal .document-editor{width:210mm;min-height:297mm;margin:0 auto;padding:20mm;background:white;color:#343434;border:0;border-radius:0;box-shadow:0 5px 24px #28282820;font-family:Arial,sans-serif;font-size:16px;line-height:1.5}
.word-document-modal>.form>button[type=submit]{position:sticky;bottom:0;margin:0;width:100%;border-radius:0;padding:16px;z-index:3}
@media(max-width:900px){.word-page-stage{padding:16px}.word-document-modal .document-editor{width:100%;min-height:70vh;padding:24px}.word-modal-header{padding:12px 16px}.word-document-modal .document-toolbar{padding:10px}.word-document-modal{height:calc(100dvh - 16px)}}
@media(prefers-reduced-motion:reduce){.document-card{transition:none}.document-card:hover{transform:none}}

.admin-month-calendar{margin:0 0 24px;max-width:560px;padding:22px;border:1px solid #e4e4e4;border-radius:18px;background:linear-gradient(145deg,#ffffff,#fafafa)}
.admin-month-calendar .calendar-day.unavailable:not(:disabled){cursor:pointer}
.admin-month-calendar .calendar-day.unavailable:not(:disabled):hover{background:#e7e7e7;color:#535353}
.admin-month-calendar .calendar-day.selected{box-shadow:0 0 0 3px #74747455;outline:2px solid #747474;outline-offset:1px}
.admin-month-calendar .calendar-day:disabled{opacity:.5}
@media(max-width:480px){.admin-month-calendar{padding:14px 10px}}

.calendar-action-dialog{padding:0;background:#ffffff;border:1px solid #e0e0e0;border-radius:22px;box-shadow:0 24px 90px #33333340}
.calendar-modal-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 24px;background:linear-gradient(120deg,#f7f7f7,#ffffff);border-bottom:1px solid #eaeaea}
.calendar-modal-header h3{margin:6px 0 0;font-size:22px}
.calendar-modal-x{display:grid;place-items:center;width:36px;height:36px;flex:none;border:1px solid #e4e4e4;border-radius:50%;background:#ffffff;color:#5d5d5d;font-size:18px}
#calendar-action-summary{margin:18px 24px;font-size:14px;color:#696969}
#calendar-action-details{margin:0 24px;display:grid;gap:8px;max-height:220px;overflow:auto}
.calendar-modal-slot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 15px;background:#f8f8f8;border:1px solid #eaeaea;border-radius:12px;font-size:13px}
.calendar-modal-slot strong{max-width:60%}.calendar-modal-slot span{white-space:nowrap;color:#6c6c6c}
#calendar-action-feedback{margin:12px 24px;font-size:13px;color:#4f4f4f}
.calendar-action-dialog #calendar-action-buttons{padding:0 24px;margin:20px 0 12px;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.calendar-action-dialog #calendar-action-buttons .btn{width:100%;transition:opacity .2s,transform .2s}
.calendar-action-dialog #calendar-action-buttons .btn:active{transform:scale(.98)}
#calendar-action-close{margin:0 24px 20px;border:1px solid #e2e2e2;width:calc(100% - 48px);border-radius:12px;background:#ffffff}
#calendar-local-status{padding:12px 16px;border-radius:12px;background:#f1f1f1;color:#545454}
@media(max-width:480px){.calendar-modal-slot{align-items:flex-start;flex-direction:column}.calendar-modal-slot strong{max-width:100%}}

/* Consistent appointment ticket controls and contact footer. */
.ticket-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:start;gap:12px}
.ticket-actions>.btn,.ticket-actions>.ticket-change>summary{width:100%;min-height:48px;margin:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:12px 10px}
.ticket-actions>.ticket-change{min-width:0;margin:0;padding:0;border:0;border-radius:0;background:transparent}
.ticket-actions>.ticket-change[open]{grid-column:span 2;padding:0 0 16px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--surface,#ffffff)}
.ticket-change[open]>p,.ticket-change[open]>div,.ticket-change[open]>.form{margin-left:16px;margin-right:16px}
.ticket-actions>.ticket-cancel>summary{color:#434343;background:#f3f3f3;border:1px solid #c0c0c0}
.ticket-actions>.ticket-cancel>summary:hover{color:#ffffff;background:#434343;border-color:#434343}
.ticket-footer{background:rgba(96,96,96,.06);padding:22px 30px}
.ticket-footer .ticket-notice{padding:0;background:transparent}
.ticket-contacts{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;margin-top:18px}
.ticket-contacts>span{flex-basis:100%;font-size:13px;color:var(--muted)}
.ticket-contacts a{font-weight:600;overflow-wrap:anywhere}
.ticket-wish{margin:18px 0 0;color:var(--primary,#606060);font-weight:600}
@media(max-width:700px){.ticket-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.ticket-footer{padding:20px}}
@media(max-width:380px){.ticket-actions{grid-template-columns:1fr}.ticket-actions>.ticket-change[open]{grid-column:span 1}}

.service-image,.service-editor-image{aspect-ratio:16/9;height:auto;width:100%;overflow:hidden}
.service-image img,.service-editor-image img{width:100%;height:100%;object-fit:cover}
.service-image img[src*="nologo"],.service-editor-image img[src*="nologo"]{object-fit:contain;padding:12px}
.service-edit-page{padding-top:28px;padding-bottom:48px}
.service-edit-heading{margin-bottom:18px}
.service-edit-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:22px;align-items:start}
.service-edit-main,.service-edit-media{padding:24px}
.service-edit-main h2,.service-edit-media h2{font-size:20px;margin:0 0 18px}
.service-edit-main .form h2{margin:22px 0 12px;font-size:17px}
.service-fields-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px}
.service-fields-grid .field{margin:0}
.service-fields-grid .field:first-child{grid-column:1/-1}
.service-doctor-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.service-doctor-options .check{border:1px solid var(--line);border-radius:10px;padding:10px;align-items:center;background:#fafafa}
.service-edit-main .field:has(textarea){margin-top:20px}
.service-edit-main textarea{min-height:130px}
.service-edit-main .form>button{margin-top:4px}
.service-edit-media .service-editor-image{max-width:none;margin:0 0 18px;border-radius:14px}
.service-edit-media .form+.form{margin-top:10px}
.service-edit-media input[type=file]{font-size:12px;padding:10px;white-space:normal}
.service-edit-media .service-delete{margin-top:22px}
.service-edit-media .service-delete summary,.service-edit-media .service-delete .btn{color:#434343}
.service-edit-media .service-delete .btn{background:#f3f3f3;border-color:#c0c0c0}
.photo-crop-dialog canvas{height:auto;max-width:100%}
@media(max-width:850px){.service-edit-layout{grid-template-columns:1fr}.service-edit-media{max-width:none}.service-edit-media .service-editor-image{max-width:400px}}
@media(max-width:560px){.service-fields-grid,.service-doctor-options{grid-template-columns:1fr}.service-edit-main,.service-edit-media{padding:18px}}


/* DarDent: light monochrome identity shared by every page. */
:root{--bg:#ffffff;--surface:#ffffff;--ink:#262626;--muted:#626262;--line:#e4e4e4;--accent:#303030;--accent-hover:#151515;--primary:var(--accent);--pale:#f5f5f5;--shadow:0 8px 28px rgba(0,0,0,.045);color-scheme:light}
body{background:var(--bg);-webkit-font-smoothing:antialiased}
::selection{background:#dddddd;color:#151515}
:focus-visible{outline:2px solid #555555;outline-offset:4px}
.header{background:rgba(255,255,255,.96);border-color:var(--line);box-shadow:0 3px 20px rgba(0,0,0,.025)}
.header-inner{gap:20px}
.brand{letter-spacing:-.025em}.brand small{letter-spacing:.02em;text-transform:none;font-weight:400}
.desktop-nav a{color:#565656;transition:color .2s}.desktop-nav a:hover{color:#171717}
.btn{border-radius:14px;transition:background .2s,border-color .2s,box-shadow .2s,transform .2s}
.primary{background:var(--accent);color:#ffffff;border-color:var(--accent);box-shadow:0 4px 12px rgba(0,0,0,.06)}
.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.secondary,.outline{background:#ffffff;border-color:#d6d6d6;color:#303030}
.secondary:hover,.outline:hover{background:#f5f5f5;border-color:#aaaaaa}
.ghost,.text{background:transparent;color:#404040}.text:hover{text-decoration:underline;text-underline-offset:5px}
.white{background:#303030;color:#ffffff}.white:hover{background:#151515}
.hero{background:linear-gradient(120deg,#ffffff 25%,#f6f6f6 100%);border-bottom:1px solid #eeeeee}
.hero-grid{gap:48px;min-height:560px;padding-top:72px;padding-bottom:72px}
.hero h1{letter-spacing:-.055em;font-weight:650}.hero h1 em{color:#666666;font-weight:450}
.hero p{color:#626262;line-height:1.8}.hero-foot{color:#626262}
.hero-headline .hero-type{opacity:1;filter:none;transform:none;animation:none}
.eyebrow{color:#626262;font-size:12px;letter-spacing:.1em}
.hero-logo{background:#ffffff;border:1px solid #e8e8e8;border-radius:32px;box-shadow:0 18px 50px rgba(0,0,0,.045)}
.hero-logo img{object-fit:contain;border-radius:inherit}
.hero-actions .hero-booking-button{background:#303030;border-color:#303030;box-shadow:0 6px 18px rgba(0,0,0,.1);animation:none;border-radius:16px}
.hero-actions .hero-booking-button:hover{background:#151515;transform:translateY(-2px);box-shadow:0 10px 22px rgba(0,0,0,.12)}
.hero-actions .hero-booking-button:active{box-shadow:none}
.hero-actions .hero-booking-button::before{display:none}
.section{padding-top:76px;padding-bottom:76px}.tinted{background:#f7f7f7;border-block:1px solid #eeeeee}
.section-title h2,.contact-band h2{font-weight:600;letter-spacing:-.035em}
.features{gap:20px}.features>div{padding:28px;border:1px solid var(--line);border-radius:22px;background:#fafafa}
.features span{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#ffffff;border:1px solid #e5e5e5;color:#555555;font-size:13px}
.features h3{font-weight:600;margin-top:20px}.features p{margin-bottom:0}
.card{border-color:var(--line);background:#ffffff;border-radius:22px;box-shadow:var(--shadow)}
.service-card,.doctor-card{transition:box-shadow .25s,border-color .25s}
.service-card:hover,.doctor-card:hover{border-color:#c9c9c9;box-shadow:0 12px 32px rgba(0,0,0,.07)}
.service-image,.service-editor-image,.portrait,.portrait-placeholder{background:#f3f3f3;color:#888888}
.portrait-placeholder{background:radial-gradient(circle at 65% 25%,#ffffff,#f1f1f1);color:#8a8a8a}
.contact-band{background:#f5f5f5;color:var(--ink);border:1px solid #e1e1e1;border-radius:28px;padding:40px}
.contact-band .eyebrow,.contact-band p{color:var(--muted)}
.page-heading{background:linear-gradient(120deg,#fafafa,#f3f3f3);border-bottom:1px solid var(--line)}
.page-heading h1{font-weight:600;letter-spacing:-.04em}
.field{color:#414141}.field input,.field select,.field textarea{border-color:#d6d6d6;border-radius:12px;background:#ffffff}
.field input:focus,.field select:focus,.field textarea:focus{border-color:#555555;outline:2px solid #dddddd;outline-offset:2px}
input[type=checkbox],input[type=radio],input[type=range]{accent-color:#303030}
.booking-notice,.booking-progress,.booking-date-card,.grid-selection{background:#f7f7f7;border-color:var(--line);color:#454545}
.booking-progress-header,.booking-progress-steps .complete,.booking-progress-steps .current{color:#404040}
#booking-progress-fill{background:#404040}
.booking-progress-steps .current>span{background:#303030;border-color:#303030;box-shadow:0 0 0 4px #e9e9e9}
.booking-progress-steps .complete>span{background:#eaeaea;color:#303030;border-color:#d6d6d6}
.calendar-day.available,.slot-free,.calendar-cell.free{background:#f5f5f5;border-color:#c7c7c7;color:#303030}
.calendar-day.available:hover,.calendar-day.available.selected,.slot-free:hover,.slot-free.selected,.calendar-doctor-slots .calendar-cell.free:hover,.calendar-doctor-slots .calendar-cell.free.selected{background:#303030;border-color:#303030;color:#ffffff}
.calendar-day.unavailable{background:#fafafa;color:#aaaaaa}.calendar-day.available small{font-weight:600}
.booking-time-tile{border:1px solid #c7c7c7}.booking-date-card.selected{background:#ededed;border-color:#303030}
.booking-grid thead th,.booking-grid-doctors tbody th,.calendar-slots tbody th,.admin-data-table th{background:#f5f5f5;color:#414141}
.ticket-top{background:#f1f1f1;color:#303030;border-bottom:1px solid var(--line)}
.ticket-footer{background:#fafafa}.ticket-wish{color:#404040}
.admin-nav,.admin-filters,.calendar-modal-header{background:#f7f7f7;border-color:var(--line)}
.admin-nav a{color:#555555}.admin-nav a:hover,.admin-nav a.active,.admin-tabs a.active{background:#e9e9e9;color:#222222}
.admin-nav a.active{box-shadow:inset 3px 0 #303030}
.clinic-map-card{background:#fafafa;border-color:var(--line);box-shadow:var(--shadow)}
.clinic-map-preview{background:#ececec}.clinic-map-pin{background:#404040}.map-open-link{color:#404040}
footer{background:#f6f6f6;color:#303030;border-top:1px solid var(--line);padding-top:48px}
footer .brand{color:#303030}footer p{color:#626262}footer a:hover{text-decoration:underline;text-underline-offset:4px}
.footer-notice{margin:18px auto 0;padding-top:18px;border-top:1px solid #e1e1e1;text-align:center;font-size:12px;line-height:1.5;color:#666666}
/* Restrained semantic colours only for clinical workflow status and destructive actions. */
.badge.confirmed,.badge.arrived,#calendar-local-status{background:#f3f3f3;color:#545454}
.badge.pending{background:#f3f3f3;color:#616161}
.badge.cancelled,.badge.noshow{background:#f2f2f2;color:#505050}
.mini.danger,.ticket-actions>.ticket-cancel>summary,.service-edit-media .service-delete summary,.service-edit-media .service-delete .btn{color:#545454}
.ticket-actions>.ticket-cancel>summary,.service-edit-media .service-delete .btn{background:#f7f7f7;border-color:#d1d1d1}
.ticket-actions>.ticket-cancel>summary:hover{background:#545454;color:#ffffff;border-color:#545454}
@media(max-width:980px){.header-inner{gap:12px}}
@media(max-width:680px){.hero-grid{gap:32px;padding-top:40px;padding-bottom:40px;min-height:0}.hero h1{font-size:clamp(38px,10.8vw,64px)}.hero-headline .hero-type-second{font-size:.75em;letter-spacing:-.04em}.hero-logo{border-radius:22px}.section{padding-top:48px;padding-bottom:48px}.features>div{padding:24px}.contact-band{padding:26px}.hero-actions{gap:12px}.hero-actions .btn{min-height:48px}.header-actions>.btn{min-height:44px}.footer-notice{font-size:11px}.clinic-map-section{padding-top:0}}
@media(max-width:380px){.hero-actions{flex-direction:column;align-items:stretch}.hero-actions .btn{width:100%}.header-inner{gap:8px}.header-actions{gap:7px}.brand small{font-size:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn,.service-card,.doctor-card,.hero-booking-arrow,.clinic-map-pin{transition:none}.btn:hover{transform:none}}

/* Dardent identity — luminous white edge inspired by the clinic's reference sign. */
.brand-icon{border-radius:0;background:transparent;overflow:visible;filter:drop-shadow(0 0 2px rgba(255,255,255,.95)) drop-shadow(0 0 9px rgba(195,195,195,.55))}
.hero-logo{position:relative;isolation:isolate;overflow:visible;background:radial-gradient(ellipse at 50% 42%,#494949 0%,#2b2b2b 49%,#191919 100%);border:1px solid #575757;box-shadow:0 20px 55px rgba(0,0,0,.13),inset 0 0 45px rgba(255,255,255,.04)}
.hero-logo:before{content:"";position:absolute;z-index:-1;inset:8% 11%;border-radius:50%;background:radial-gradient(ellipse,rgba(255,255,255,.35),rgba(230,230,230,.18) 34%,transparent 72%);filter:blur(17px);pointer-events:none}
.hero-logo img{position:relative;width:100%;height:auto;object-fit:contain;filter:drop-shadow(0 0 2px rgba(255,255,255,.95)) drop-shadow(0 0 10px rgba(239,239,239,.78)) drop-shadow(0 0 26px rgba(230,230,230,.42));border-radius:inherit}
@media(max-width:680px){.hero-logo:before{filter:blur(12px)}.hero-logo img{filter:drop-shadow(0 0 2px rgba(255,255,255,.9)) drop-shadow(0 0 9px rgba(239,239,239,.72)) drop-shadow(0 0 17px rgba(230,230,230,.35))}}

/* Shared clinic phone list: each number remains a separate call link. */
.clinic-phones{display:flex;flex-direction:column;align-items:flex-start;gap:4px;font-variant-numeric:tabular-nums}
.clinic-phones a{white-space:nowrap;font-size:14px;line-height:1.35;text-decoration:none}
.header-phones{align-items:flex-end;gap:2px}
.header-phones a{font-size:12px}
.phone-editor{border:0;padding:0;margin:0 0 16px;min-width:0}
.phone-editor legend{font-weight:500;margin-bottom:8px}
.phone-editor-row{display:flex;gap:8px;margin-bottom:8px}
.phone-editor-row input{min-width:0;flex:1}
.phone-editor-row button{padding:8px 14px}
@media(max-width:700px){.header-actions .header-phones{display:none}.mobile-nav .clinic-phones{padding:10px 0}.clinic-phones a{font-size:14px}}

.phone-editor-row input{border:1px solid var(--line);border-radius:10px;padding:10px 12px;min-height:46px}
.phone-editor .phone-editor-row button{width:auto;flex:none}
@media(min-width:981px) and (max-width:1200px){.header-actions .header-phones{display:none}}
.mobile-nav .clinic-phones a{padding:4px 0}

/* Main hero honeycomb: connected large hexagons, muted bronze outlines, warm ivory junctions, marble depth. */
.hero {
  position:relative;
  isolation:isolate;
  color:#f7f7f7;
  overflow:hidden;
  background:
    radial-gradient(ellipse at 75% 37%,rgba(65,65,65,.28),transparent 47%),
    radial-gradient(ellipse at 13% 75%,rgba(62,62,62,.19),transparent 43%),
    linear-gradient(120deg,#0d0d0d 0%,#1c1c1c 47%,#0f0f0f 100%);
}
.hero::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22720%22%20height%3D%22624%22%20viewBox%3D%220%200%20720%20624%22%3E%3Cdefs%3E%3CradialGradient%20id%3D%22halo%22%3E%3Cstop%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%22.93%22%2F%3E%3Cstop%20offset%3D%22.13%22%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%22.65%22%2F%3E%3Cstop%20offset%3D%22.46%22%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%22.2%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%220%22%2F%3E%3C%2FradialGradient%3E%3Cfilter%20id%3D%22soft%22%20x%3D%22-40%25%22%20y%3D%22-40%25%22%20width%3D%22180%25%22%20height%3D%22180%25%22%3E%3CfeGaussianBlur%20stdDeviation%3D%223.2%22%2F%3E%3C%2Ffilter%3E%3ClinearGradient%20id%3D%22b0_0%22%20gradientUnits%3D%22userSpaceOnUse%22%20x1%3D%22180%22%20y1%3D%22156%22%20x2%3D%22180%22%20y2%3D%2281.12%22%3E%3Cstop%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%22.96%22%2F%3E%3Cstop%20offset%3D%22.3%22%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%22.68%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%220%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22b0_1%22%20gradientUnits%3D%22userSpaceOnUse%22%20x1%3D%22180%22%20y1%3D%22156%22%20x2%3D%22115.2%22%20y2%3D%22193.44%22%3E%3Cstop%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%22.96%22%2F%3E%3Cstop%20offset%3D%22.3%22%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%22.68%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%220%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22b0_2%22%20gradientUnits%3D%22userSpaceOnUse%22%20x1%3D%22180%22%20y1%3D%22156%22%20x2%3D%22244.8%22%20y2%3D%22193.44%22%3E%3Cstop%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%22.96%22%2F%3E%3Cstop%20offset%3D%22.3%22%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%22.68%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%220%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22b1_0%22%20gradientUnits%3D%22userSpaceOnUse%22%20x1%3D%22450%22%20y1%3D%22312%22%20x2%3D%22450%22%20y2%3D%22237.12%22%3E%3Cstop%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%22.96%22%2F%3E%3Cstop%20offset%3D%22.3%22%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%22.68%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%220%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22b1_1%22%20gradientUnits%3D%22userSpaceOnUse%22%20x1%3D%22450%22%20y1%3D%22312%22%20x2%3D%22385.2%22%20y2%3D%22349.44%22%3E%3Cstop%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%22.96%22%2F%3E%3Cstop%20offset%3D%22.3%22%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%22.68%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%220%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22b1_2%22%20gradientUnits%3D%22userSpaceOnUse%22%20x1%3D%22450%22%20y1%3D%22312%22%20x2%3D%22514.8%22%20y2%3D%22349.44%22%3E%3Cstop%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%22.96%22%2F%3E%3Cstop%20offset%3D%22.3%22%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%22.68%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%220%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22b2_0%22%20gradientUnits%3D%22userSpaceOnUse%22%20x1%3D%22630%22%20y1%3D%22520%22%20x2%3D%22694.8%22%20y2%3D%22482.56%22%3E%3Cstop%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%22.96%22%2F%3E%3Cstop%20offset%3D%22.3%22%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%22.68%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%220%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22b2_1%22%20gradientUnits%3D%22userSpaceOnUse%22%20x1%3D%22630%22%20y1%3D%22520%22%20x2%3D%22565.2%22%20y2%3D%22482.56%22%3E%3Cstop%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%22.96%22%2F%3E%3Cstop%20offset%3D%22.3%22%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%22.68%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%220%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22b2_2%22%20gradientUnits%3D%22userSpaceOnUse%22%20x1%3D%22630%22%20y1%3D%22520%22%20x2%3D%22630%22%20y2%3D%22594.88%22%3E%3Cstop%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%22.96%22%2F%3E%3Cstop%20offset%3D%22.3%22%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%22.68%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%220%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22b3_0%22%20gradientUnits%3D%22userSpaceOnUse%22%20x1%3D%2290%22%20y1%3D%22520%22%20x2%3D%22154.8%22%20y2%3D%22482.56%22%3E%3Cstop%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%22.96%22%2F%3E%3Cstop%20offset%3D%22.3%22%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%22.68%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%220%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22b3_1%22%20gradientUnits%3D%22userSpaceOnUse%22%20x1%3D%2290%22%20y1%3D%22520%22%20x2%3D%2225.2%22%20y2%3D%22482.56%22%3E%3Cstop%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%22.96%22%2F%3E%3Cstop%20offset%3D%22.3%22%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%22.68%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%220%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22b3_2%22%20gradientUnits%3D%22userSpaceOnUse%22%20x1%3D%2290%22%20y1%3D%22520%22%20x2%3D%2290%22%20y2%3D%22594.88%22%3E%3Cstop%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%22.96%22%2F%3E%3Cstop%20offset%3D%22.3%22%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%22.68%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%220%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22b4_0%22%20gradientUnits%3D%22userSpaceOnUse%22%20x1%3D%22540%22%20y1%3D%22156%22%20x2%3D%22540%22%20y2%3D%2281.12%22%3E%3Cstop%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%22.96%22%2F%3E%3Cstop%20offset%3D%22.3%22%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%22.68%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%220%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22b4_1%22%20gradientUnits%3D%22userSpaceOnUse%22%20x1%3D%22540%22%20y1%3D%22156%22%20x2%3D%22475.2%22%20y2%3D%22193.44%22%3E%3Cstop%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%22.96%22%2F%3E%3Cstop%20offset%3D%22.3%22%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%22.68%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%220%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22b4_2%22%20gradientUnits%3D%22userSpaceOnUse%22%20x1%3D%22540%22%20y1%3D%22156%22%20x2%3D%22604.8%22%20y2%3D%22193.44%22%3E%3Cstop%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%22.96%22%2F%3E%3Cstop%20offset%3D%22.3%22%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%22.68%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23f3dfc5%22%20stop-opacity%3D%220%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22honey-bronze%22%20x1%3D%220%22%20y1%3D%220%22%20x2%3D%221%22%20y2%3D%221%22%3E%3Cstop%20stop-color%3D%22%23e1c6a5%22%2F%3E%3Cstop%20offset%3D%22.38%22%20stop-color%3D%22%23bd9268%22%2F%3E%3Cstop%20offset%3D%22.68%22%20stop-color%3D%22%2394704d%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23d4af83%22%2F%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22url(%23honey-bronze)%22%20stroke-width%3D%221.55%22%20stroke-opacity%3D%22.8%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M90%2C0L90%2C-104M0%2C52L90%2C0M-90%2C0L0%2C52M270%2C0L270%2C-104M180%2C52L270%2C0M90%2C0L180%2C52M450%2C0L450%2C-104M360%2C52L450%2C0M270%2C0L360%2C52M630%2C0L630%2C-104M540%2C52L630%2C0M450%2C0L540%2C52M720%2C52L810%2C0M630%2C0L720%2C52M0%2C156L0%2C52M-90%2C208L0%2C156M180%2C156L180%2C52M90%2C208L180%2C156M0%2C156L90%2C208M360%2C156L360%2C52M270%2C208L360%2C156M180%2C156L270%2C208M540%2C156L540%2C52M450%2C208L540%2C156M360%2C156L450%2C208M720%2C156L720%2C52M630%2C208L720%2C156M540%2C156L630%2C208M720%2C156L810%2C208M90%2C312L90%2C208M0%2C364L90%2C312M-90%2C312L0%2C364M270%2C312L270%2C208M180%2C364L270%2C312M90%2C312L180%2C364M450%2C312L450%2C208M360%2C364L450%2C312M270%2C312L360%2C364M630%2C312L630%2C208M540%2C364L630%2C312M450%2C312L540%2C364M720%2C364L810%2C312M630%2C312L720%2C364M0%2C468L0%2C364M-90%2C520L0%2C468M180%2C468L180%2C364M90%2C520L180%2C468M0%2C468L90%2C520M360%2C468L360%2C364M270%2C520L360%2C468M180%2C468L270%2C520M540%2C468L540%2C364M450%2C520L540%2C468M360%2C468L450%2C520M720%2C468L720%2C364M630%2C520L720%2C468M540%2C468L630%2C520M720%2C468L810%2C520M90%2C624L90%2C520M0%2C676L90%2C624M-90%2C624L0%2C676M270%2C624L270%2C520M180%2C676L270%2C624M90%2C624L180%2C676M450%2C624L450%2C520M360%2C676L450%2C624M270%2C624L360%2C676M630%2C624L630%2C520M540%2C676L630%2C624M450%2C624L540%2C676M720%2C676L810%2C624M630%2C624L720%2C676%22%2F%3E%3C%2Fg%3E%3Cg%20fill%3D%22none%22%20filter%3D%22url(%23soft)%22%3E%3Cpath%20d%3D%22M180%2C156L180%2C81.12%22%20stroke%3D%22url(%23b0_0)%22%20stroke-width%3D%222.60%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M180%2C156L115.2%2C193.44%22%20stroke%3D%22url(%23b0_1)%22%20stroke-width%3D%222.60%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M180%2C156L244.8%2C193.44%22%20stroke%3D%22url(%23b0_2)%22%20stroke-width%3D%222.60%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M450%2C312L450%2C237.12%22%20stroke%3D%22url(%23b1_0)%22%20stroke-width%3D%221.77%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M450%2C312L385.2%2C349.44%22%20stroke%3D%22url(%23b1_1)%22%20stroke-width%3D%221.77%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M450%2C312L514.8%2C349.44%22%20stroke%3D%22url(%23b1_2)%22%20stroke-width%3D%221.77%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M630%2C520L694.8%2C482.56%22%20stroke%3D%22url(%23b2_0)%22%20stroke-width%3D%222.21%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M630%2C520L565.2%2C482.56%22%20stroke%3D%22url(%23b2_1)%22%20stroke-width%3D%222.21%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M630%2C520L630%2C594.88%22%20stroke%3D%22url(%23b2_2)%22%20stroke-width%3D%222.21%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M90%2C520L154.8%2C482.56%22%20stroke%3D%22url(%23b3_0)%22%20stroke-width%3D%222.13%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M90%2C520L25.2%2C482.56%22%20stroke%3D%22url(%23b3_1)%22%20stroke-width%3D%222.13%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M90%2C520L90%2C594.88%22%20stroke%3D%22url(%23b3_2)%22%20stroke-width%3D%222.13%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M540%2C156L540%2C81.12%22%20stroke%3D%22url(%23b4_0)%22%20stroke-width%3D%221.51%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M540%2C156L475.2%2C193.44%22%20stroke%3D%22url(%23b4_1)%22%20stroke-width%3D%221.51%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M540%2C156L604.8%2C193.44%22%20stroke%3D%22url(%23b4_2)%22%20stroke-width%3D%221.51%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fg%3E%3Cg%3E%3Ccircle%20cx%3D%22180%22%20cy%3D%22156%22%20r%3D%2239%22%20fill%3D%22url(%23halo)%22%20opacity%3D%221%22%2F%3E%3Ccircle%20cx%3D%22180%22%20cy%3D%22156%22%20r%3D%222.5%22%20fill%3D%22%23f6eee5%22%20opacity%3D%221%22%2F%3E%3Ccircle%20cx%3D%22450%22%20cy%3D%22312%22%20r%3D%2239%22%20fill%3D%22url(%23halo)%22%20opacity%3D%220.68%22%2F%3E%3Ccircle%20cx%3D%22450%22%20cy%3D%22312%22%20r%3D%222.5%22%20fill%3D%22%23f6eee5%22%20opacity%3D%220.68%22%2F%3E%3Ccircle%20cx%3D%22630%22%20cy%3D%22520%22%20r%3D%2239%22%20fill%3D%22url(%23halo)%22%20opacity%3D%220.85%22%2F%3E%3Ccircle%20cx%3D%22630%22%20cy%3D%22520%22%20r%3D%222.5%22%20fill%3D%22%23f6eee5%22%20opacity%3D%220.85%22%2F%3E%3Ccircle%20cx%3D%2290%22%20cy%3D%22520%22%20r%3D%2239%22%20fill%3D%22url(%23halo)%22%20opacity%3D%220.82%22%2F%3E%3Ccircle%20cx%3D%2290%22%20cy%3D%22520%22%20r%3D%222.5%22%20fill%3D%22%23f6eee5%22%20opacity%3D%220.82%22%2F%3E%3Ccircle%20cx%3D%22540%22%20cy%3D%22156%22%20r%3D%2239%22%20fill%3D%22url(%23halo)%22%20opacity%3D%220.58%22%2F%3E%3Ccircle%20cx%3D%22540%22%20cy%3D%22156%22%20r%3D%222.5%22%20fill%3D%22%23f6eee5%22%20opacity%3D%220.58%22%2F%3E%3C%2Fg%3E%3Cg%20fill%3D%22none%22%3E%3Cpath%20d%3D%22M180%2C156L180%2C81.12%22%20stroke%3D%22url(%23b0_0)%22%20stroke-width%3D%222.60%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M180%2C156L115.2%2C193.44%22%20stroke%3D%22url(%23b0_1)%22%20stroke-width%3D%222.60%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M180%2C156L244.8%2C193.44%22%20stroke%3D%22url(%23b0_2)%22%20stroke-width%3D%222.60%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M450%2C312L450%2C237.12%22%20stroke%3D%22url(%23b1_0)%22%20stroke-width%3D%221.77%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M450%2C312L385.2%2C349.44%22%20stroke%3D%22url(%23b1_1)%22%20stroke-width%3D%221.77%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M450%2C312L514.8%2C349.44%22%20stroke%3D%22url(%23b1_2)%22%20stroke-width%3D%221.77%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M630%2C520L694.8%2C482.56%22%20stroke%3D%22url(%23b2_0)%22%20stroke-width%3D%222.21%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M630%2C520L565.2%2C482.56%22%20stroke%3D%22url(%23b2_1)%22%20stroke-width%3D%222.21%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M630%2C520L630%2C594.88%22%20stroke%3D%22url(%23b2_2)%22%20stroke-width%3D%222.21%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M90%2C520L154.8%2C482.56%22%20stroke%3D%22url(%23b3_0)%22%20stroke-width%3D%222.13%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M90%2C520L25.2%2C482.56%22%20stroke%3D%22url(%23b3_1)%22%20stroke-width%3D%222.13%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M90%2C520L90%2C594.88%22%20stroke%3D%22url(%23b3_2)%22%20stroke-width%3D%222.13%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M540%2C156L540%2C81.12%22%20stroke%3D%22url(%23b4_0)%22%20stroke-width%3D%221.51%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M540%2C156L475.2%2C193.44%22%20stroke%3D%22url(%23b4_1)%22%20stroke-width%3D%221.51%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M540%2C156L604.8%2C193.44%22%20stroke%3D%22url(%23b4_2)%22%20stroke-width%3D%221.51%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  background-size:720px 624px;
  background-position:center top;
  background-repeat:repeat;
  opacity:.95;
  -webkit-mask-image:linear-gradient(90deg,#000000 0%,rgba(0,0,0,.90) 19%,transparent 43%,transparent 60%,rgba(0,0,0,.90) 83%,#000000 100%);
  mask-image:linear-gradient(90deg,#000000 0%,rgba(0,0,0,.90) 19%,transparent 43%,transparent 60%,rgba(0,0,0,.90) 83%,#000000 100%);
}
.hero::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221060%22%20height%3D%22700%22%20viewBox%3D%220%200%201060%20700%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23c2c2c2%22%20stroke-width%3D%221.4%22%20opacity%3D%22.21%22%3E%3Cpath%20d%3D%22M-45%20398%20Q118%20318%20160%20337%20T304%20265%20Q365%20206%20442%20224%20T597%20107%20Q648%2068%20742%2082%20T918%20-30%22%2F%3E%3Cpath%20d%3D%22M465%20725%20Q523%20597%20595%20563%20T730%20431%20Q763%20376%20858%20339%20T1090%20221%22%2F%3E%3Cpath%20d%3D%22M-25%20119%20Q104%20172%20146%20147%20T276%20195%20Q348%20217%20383%20195%22%2F%3E%3C%2Fg%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23a5a5a5%22%20stroke-width%3D%22.7%22%20opacity%3D%22.3%22%3E%3Cpath%20d%3D%22M150%20337%20Q175%20360%20198%20357%20T264%20381%22%2F%3E%3Cpath%20d%3D%22M438%20224%20Q417%20177%20444%20154%20T471%2088%22%2F%3E%3Cpath%20d%3D%22M739%20432%20Q728%20482%20744%20518%20L776%20556%22%2F%3E%3Cpath%20d%3D%22M848%20339%20Q873%20309%20911%20319%20L963%20289%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"),linear-gradient(118deg,transparent 26%,rgba(255,255,255,.04) 44%,transparent 65%);
  background-size:1060px 700px,cover;
  background-repeat:repeat,no-repeat;
  opacity:.48;
}
.hero .eyebrow{color:#bcbcbc}
.hero h1,.hero .hero-headline{color:#ffffff}
.hero h1 em,.hero .hero-type-second{color:#d3d3d3}
.hero p,.hero .hero-foot{color:#d0d0d0}
.hero .btn.primary,.hero .primary{background:linear-gradient(115deg,#dbdbdb,#ababab);color:#161616;border-color:#c8c8c8}
.hero .btn.primary:hover,.hero .primary:hover{background:#dadada}
.hero .btn.secondary,.hero .btn.outline{background:rgba(15,15,15,.48);color:#ffffff;border-color:#a8a8a8}
.hero .btn.secondary:hover,.hero .btn.outline:hover{background:rgba(255,255,255,.13)}
@media(max-width:680px){
  .hero::before{opacity:.72; -webkit-mask-image:linear-gradient(90deg,#000000,rgba(0,0,0,.45) 60%,transparent 95%);mask-image:linear-gradient(90deg,#000000,rgba(0,0,0,.45) 60%,transparent 95%)}
}
/* Keep the logo itself unframed; only its own pixels can glow. */
.hero .hero-logo{background:transparent;border:0;border-radius:0;box-shadow:none;overflow:visible;isolation:auto}
.hero .hero-logo::before{content:none;display:none}
.hero .hero-logo img{border:0;border-radius:0;box-shadow:none;filter:none}


/* Subtle enamel glints. Positioned over the tooth/hands, never over the lettering. */
.hero .hero-logo{position:relative}
.hero-logo-spark{
  position:absolute;
  z-index:2;
  display:block;
  width:1em;
  height:1em;
  color:#ffffff;
  font-family:Georgia,'Times New Roman',serif;
  font-weight:400;
  font-size:clamp(15px,2.4vw,25px);
  line-height:1;
  text-align:center;
  pointer-events:none;
  user-select:none;
  opacity:0;
  transform:translate(-50%,-50%) scale(.3) rotate(-18deg);
  text-shadow:0 0 5px rgba(255,255,255,.95),0 0 14px rgba(255,255,255,.8),0 0 24px rgba(233,233,233,.38);
  animation:dardent-tooth-twinkle 7.2s ease-in-out infinite;
}
.hero-logo-spark.spark-one{top:14%;left:33%;animation-delay:0s}
.hero-logo-spark.spark-two{top:9%;left:64%;font-size:clamp(13px,2vw,21px);animation-delay:1.2s}
.hero-logo-spark.spark-three{top:32%;left:27%;font-size:clamp(12px,1.8vw,19px);animation-delay:2.4s}
.hero-logo-spark.spark-four{top:39%;left:71%;font-size:clamp(14px,2.2vw,23px);animation-delay:3.6s}
.hero-logo-spark.spark-five{top:52%;left:37%;font-size:clamp(12px,1.7vw,18px);animation-delay:4.8s}
.hero-logo-spark.spark-six{top:49%;left:67%;font-size:clamp(12px,1.9vw,20px);animation-delay:6s}
@keyframes dardent-tooth-twinkle{
  0%,7%,46%,100%{opacity:0;transform:translate(-50%,-50%) scale(.3) rotate(-18deg)}
  12%{opacity:.95;transform:translate(-50%,-50%) scale(1) rotate(0deg)}
  21%,29%{opacity:.95;transform:translate(-50%,-50%) scale(1.08) rotate(8deg)}
  37%{opacity:.4;transform:translate(-50%,-50%) scale(.8) rotate(17deg)}
  45%{opacity:0;transform:translate(-50%,-50%) scale(.5) rotate(26deg)}
}
@media(prefers-reduced-motion:reduce){.hero-logo-spark{animation:none;display:none}}


/* Premium DarDent top navigation and restrained fade at both hero edges. */
.header{
  background:rgba(255,255,255,.96);
  -webkit-backdrop-filter:blur(18px) saturate(1.15);
  backdrop-filter:blur(18px) saturate(1.15);
  border-bottom:1px solid rgba(219,219,219,.85);
  box-shadow:0 6px 26px rgba(25,25,25,.055);
}
.header .header-inner{
  width:min(1480px,calc(100% - 48px));
  min-height:92px;
  gap:clamp(12px,1.5vw,24px);
}
.header .brand{
  flex-shrink:0;
  gap:12px;
  color:#262626;
  font-size:19px;
  font-weight:780;
  letter-spacing:-.035em;
}
.header .brand-icon{width:48px;height:48px;object-fit:contain}
.header .brand small{
  font-size:12px;
  font-weight:500;
  letter-spacing:.015em;
  color:#717171;
  margin-top:4px;
}
.header .desktop-nav{
  display:flex;
  align-items:center;
  flex-shrink:0;
  gap:4px;
  margin:auto;
  padding:6px;
  border:1px solid #e3e3e3;
  border-radius:20px;
  background:linear-gradient(130deg,#f6f6f6,#efefef);
  box-shadow:inset 0 1px 1px #ffffff,0 4px 18px rgba(30,30,30,.045);
}
.header .desktop-nav a,
.header .desktop-nav a:hover,
.header .desktop-nav a.selected{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:11px 15px;
  border-radius:14px;
  font-size:16px;
  font-weight:650;
  line-height:1.25;
  letter-spacing:-.012em;
  white-space:nowrap;
  transition:background-color .25s ease,color .25s ease,box-shadow .25s ease,transform .25s ease;
}
.header .desktop-nav a{color:#404040;background:transparent;box-shadow:none}
.header .desktop-nav a:hover{
  color:#191919;
  background:#ffffff;
  box-shadow:0 4px 14px rgba(39,39,39,.09);
  transform:translateY(-1px);
}
.header .desktop-nav a.selected,
.header .desktop-nav a.selected:hover{
  color:#ffffff;
  background:linear-gradient(135deg,#303030,#434343);
  box-shadow:0 5px 15px rgba(28,28,28,.18);
  transform:none;
}
.header .desktop-nav a:focus-visible,
.header .mobile-nav a:focus-visible{
  outline:2px solid #979797;
  outline-offset:3px;
}
.header .header-actions{flex-shrink:0;gap:10px}
.header .header-actions>.btn{
  min-height:46px;
  padding:11px 16px;
  font-size:15px;
  font-weight:700;
  border-radius:13px;
}
.header .header-actions>.btn.primary{
  background:#313131;
  color:#ffffff;
  border-color:#313131;
  box-shadow:0 5px 14px rgba(28,28,28,.14);
}
.header .header-actions>.btn.primary:hover{background:#1e1e1e;box-shadow:0 8px 18px rgba(28,28,28,.2)}
.header .header-phones a{font-size:13px;font-weight:650;color:#454545}
.header .desktop-profile .btn{min-height:46px;padding:11px 15px;font-size:15px;border-radius:13px}
@media(max-width:1450px){.header .header-actions .header-phones{display:none}}
@media(min-width:981px) and (max-width:1250px){
  .header .header-inner{width:calc(100% - 36px);min-height:82px;gap:12px}
  .header .brand{font-size:16px;gap:8px}
  .header .brand-icon{width:40px;height:40px}
  .header .brand small{font-size:10px}
  .header .desktop-nav{gap:2px;padding:4px;border-radius:16px}
  .header .desktop-nav a,.header .desktop-nav a:hover,.header .desktop-nav a.selected{
    font-size:14px;
    min-height:42px;
    padding:9px 9px;
    border-radius:11px;
  }
  .header .header-actions>.btn,.header .desktop-profile .btn{
    min-height:42px;
    padding:9px 12px;
    font-size:14px;
  }
}
@media(max-width:980px){
  .header .header-inner{min-height:76px;width:calc(100% - 36px);gap:12px}
  .header .desktop-nav{display:none}
  .header .brand{font-size:17px;gap:9px}
  .header .brand-icon{width:40px;height:40px}
  .header .brand small{font-size:10px}
  .header .menu-toggle{
    display:grid;
    place-items:center;
    min-width:46px;
    min-height:46px;
    border:1px solid #dcdcdc;
    border-radius:13px;
    background:#f3f3f3;
    color:#292929;
    font-size:23px;
    line-height:1;
  }
  .header .mobile-nav:not([hidden]){
    display:grid;
    gap:6px;
    padding:14px max(18px,calc((100% - 1360px)/2)) 20px;
    background:rgba(255,255,255,.98);
    border-top:1px solid #ebebeb;
    box-shadow:0 14px 28px rgba(35,35,35,.065);
  }
  .header .mobile-nav>a:not(.btn){
    padding:13px 16px;
    font-size:16px;
    font-weight:650;
    color:#353535;
    border-radius:12px;
  }
  .header .mobile-nav>a:not(.btn):hover{background:#eeeeee;color:#222222}
  .header .mobile-nav>a.selected,
  .header .mobile-nav>a.selected:hover{
    background:#303030;
    color:#ffffff;
    box-shadow:none;
  }
}
@media(max-width:680px){
  .header .header-inner{width:calc(100% - 32px);gap:9px}
  .header .brand{font-size:16px}
  .header .brand small{font-size:10px}
  .header .header-actions>.btn{font-size:13px;min-height:44px;padding:10px 12px}
  .header .menu-toggle{min-width:44px;min-height:44px}
}
@media(max-width:380px){
  .header .brand{font-size:14px}
  .header .brand-icon{width:34px;height:34px}
  .header .header-inner{gap:7px}
}

@media(prefers-reduced-motion:reduce){
  .header .desktop-nav a,.header .desktop-nav a:hover,.header .desktop-nav a.selected,
  .header .mobile-nav a{transition:none}
}


/* Coloured, illustrative street-map preview; the entire card opens the real 2GIS map. */
.clinic-map-preview{
  background:linear-gradient(135deg,#e7f0df 0%,#f3efdc 48%,#dce9df 100%);
  color:#25362c;
}
.clinic-map-preview::before{
  inset:-25%;
  background:
    radial-gradient(ellipse at 21% 29%,#bbdcae 0 14%,transparent 14.5%),
    radial-gradient(ellipse at 84% 67%,#b9dbb0 0 15%,transparent 15.5%),
    radial-gradient(ellipse at 73% 16%,#cce4bc 0 12%,transparent 12.5%),
    linear-gradient(118deg,transparent 0 55%,#b6dce6 55.5% 60.5%,transparent 61%),
    repeating-linear-gradient(31deg,#f4ecdc 0 80px,#ece2ce 81px 150px,#e9f0df 151px 220px);
  transform:rotate(-3deg);
}
.clinic-map-roads{
  opacity:1;
  background:
    linear-gradient(119deg,transparent 0 39%,#e4d7c3 39.3% 39.8%,#fffefa 40% 46.2%,#e4d7c3 46.5% 47%,transparent 47.3%),
    linear-gradient(21deg,transparent 0 40%,#ded4c2 40.3% 40.7%,#fffefa 41% 46.2%,#ded4c2 46.5% 46.8%,transparent 47%),
    repeating-linear-gradient(119deg,transparent 0 84px,rgba(255,255,255,.88) 85px 91px,transparent 92px 170px),
    repeating-linear-gradient(27deg,transparent 0 86px,rgba(255,255,255,.86) 87px 92px,transparent 93px 165px);
}
.clinic-map-preview::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:
    radial-gradient(ellipse at 18% 77%,rgba(92,158,87,.18),transparent 24%),
    radial-gradient(ellipse at 82% 29%,rgba(75,139,190,.15),transparent 30%),
    linear-gradient(to bottom,rgba(255,255,255,.18),transparent 52%);
}
.clinic-map-preview .clinic-map-pin{
  z-index:2;
  background:#c05a45;
  border-color:#fff;
  color:#fff;
  box-shadow:0 8px 22px rgba(121,59,37,.28),0 0 0 6px rgba(255,255,255,.18);
}
.clinic-map-preview .clinic-map-preview-label{
  z-index:3;
  border-color:rgba(255,255,255,.9);
  background:rgba(255,255,255,.96);
  box-shadow:0 8px 24px rgba(46,75,51,.14);
}

/* Compact staff calendars with appointment totals, not availability. */
.admin-month-calendar,.doctor-month-calendar{
  max-width:500px;
  margin:0 0 20px;
  padding:18px 16px;
  border-radius:17px;
}
.admin-month-calendar .booking-calendar-nav{margin-bottom:14px}
.admin-month-calendar .booking-calendar-nav h3{font-size:18px}
.admin-month-calendar .booking-calendar-nav .btn{
  min-height:40px;
  min-width:42px;
  padding:7px 11px;
}
.admin-month-calendar .booking-calendar-week{margin-bottom:8px}
.admin-month-calendar .booking-calendar-week,
.admin-month-calendar .booking-calendar-days{gap:5px}
.admin-month-calendar .calendar-day{
  min-height:56px;
  padding:7px 2px;
  gap:3px;
  border-radius:10px;
  background:#fafafa;
  border:1px solid #eeeeee;
}
.admin-month-calendar .calendar-day strong{font-size:18px;line-height:1.2}
.admin-month-calendar .calendar-day small{
  font-size:10px;
  line-height:1.15;
  font-weight:600;
  color:#656565;
  white-space:nowrap;
}
.admin-month-calendar .calendar-day.available{
  background:#f2f2f2;
  border-color:#d7d7d7;
  color:#343434;
}
.admin-month-calendar .calendar-day.unavailable:not(:disabled){
  background:#fafafa;
  border-color:#ededed;
  color:#666666;
}
.admin-month-calendar .calendar-day.selected:not(:disabled),
.admin-month-calendar .calendar-day.selected:not(:disabled):hover{
  background:#313131;
  color:#ffffff;
  border-color:#313131;
  box-shadow:0 0 0 2px rgba(75,75,75,.25);
}
.admin-month-calendar .calendar-day.selected small{color:#ffffff}
@media(max-width:480px){
  .admin-month-calendar,.doctor-month-calendar{max-width:100%;padding:14px 10px}
  .admin-month-calendar .booking-calendar-days,
  .admin-month-calendar .booking-calendar-week{gap:3px}
  .admin-month-calendar .calendar-day{min-height:56px}
  .admin-month-calendar .calendar-day strong{font-size:16px}
  .admin-month-calendar .calendar-day small{font-size:9px;white-space:normal;overflow-wrap:normal}
}

/* Protected receipt links remembered on this device, with an explicit clear control. */
.saved-tickets-panel[hidden]{display:none!important}
.saved-tickets-panel{
  width:min(1180px,calc(100% - 40px));
  margin:20px auto 0;
  display:flex;
  gap:14px;
  align-items:center;
  flex-wrap:wrap;
  padding:16px 19px;
  border:1px solid #dcdcdc;
  border-radius:16px;
  background:#f7f7f7;
  box-shadow:0 5px 22px rgba(28,28,28,.055);
}
.saved-tickets-copy{flex:1 1 185px;display:grid;gap:3px;min-width:0}
.saved-tickets-copy strong{font-size:15px;line-height:1.25}
.saved-tickets-copy small{font-size:12px;color:#666666;line-height:1.45}
.saved-tickets-links{display:flex;flex-wrap:wrap;gap:8px}
.saved-tickets-links .saved-ticket-open{min-height:39px;padding:9px 13px;font-size:13px}
.saved-tickets-clear{
  border:0;
  background:transparent;
  color:#5b5b5b;
  font-size:12px;
  cursor:pointer;
  padding:8px 4px;
  text-decoration:underline;
  text-underline-offset:3px;
}
.saved-tickets-clear:hover{color:#222222}
.hero .saved-tickets-panel{
  width:100%;
  margin:16px 0 0;
  padding:13px 15px;
  background:rgba(255,255,255,.95);
  color:#252525;
  border-color:rgba(255,255,255,.64);
}
.hero .saved-tickets-panel .saved-ticket-open{
  background:#343434;
  color:#ffffff;
  border-color:#343434;
}
.hero .saved-tickets-copy small{color:#666666}
.ticket-saved-notice{
  margin:12px 0 0;
  padding:10px 15px;
  border-radius:11px;
  background:#f4f4f4;
  color:#4f4f4f;
  font-size:13px;
  line-height:1.5;
}
@media(max-width:680px){
  .saved-tickets-panel{width:calc(100% - 32px);padding:13px 14px}
  .saved-tickets-links{width:100%}
}


/* Compact, shared honeycomb mastheads. */
.hero-grid{min-height:440px;padding-top:40px;padding-bottom:40px;gap:36px}
.hero h1{font-size:clamp(42px,5vw,62px)}
.hero .hero-logo{margin:0}
.hero .hero-logo img{max-height:330px;object-fit:contain}
.hero.page-heading{padding:0;border-bottom:1px solid #343434}
.page-heading .page-hero-grid{min-height:230px;padding-top:32px;padding-bottom:32px;grid-template-columns:1.5fr 1fr}
.page-heading h1{font-size:clamp(30px,4vw,48px);margin:14px 0 12px;line-height:1.15;overflow-wrap:anywhere}
.page-heading p{max-width:720px;margin:0;font-size:16px;line-height:1.6}
.page-heading p:empty{display:none}
.page-heading .hero-logo img{max-height:190px}
.local-feedback{position:fixed;z-index:60;right:24px;bottom:24px;max-width:min(460px,calc(100vw - 32px));padding:14px 20px;border:1px solid #c8c8c8;border-radius:14px;background:#f6f6f6;color:#474747;box-shadow:0 10px 30px #00000022;font-size:15px}
.local-feedback.is-error{color:#404040;background:#f5f5f5;border-color:#d0d0d0}
.patient-requests-dialog{width:min(760px,calc(100vw - 32px));max-height:85dvh;padding:28px;border:1px solid #d7d7d7;border-radius:24px;color:var(--ink);background:#ffffff;box-shadow:0 30px 90px #00000033;overflow:auto;overscroll-behavior:contain}
.patient-requests-dialog::backdrop{background:#11111199;backdrop-filter:blur(4px)}
.patient-requests-head{display:flex;align-items:center;justify-content:space-between;gap:16px}
.patient-requests-head h2{margin:8px 0;font-size:clamp(22px,4vw,28px)}
.patient-requests-head .badge{flex:none;background:#e8e8e8;color:#4d4d4d}
.patient-requests-list{display:grid;gap:14px;margin-top:20px}
.patient-request-card{padding:20px;border:1px solid var(--line);border-radius:16px;background:#fafafa;overflow-wrap:anywhere}
.patient-request-card h3{margin:8px 0 10px;font-size:20px}
.patient-request-card p{margin:8px 0;font-size:15px;line-height:1.5}
.patient-request-card .actions{margin-top:16px;display:flex;flex-wrap:wrap;gap:10px}
.patient-request-card form{margin:0}
[data-request-feedback]{margin-bottom:0;color:#404040}
@media(max-width:680px){
  .hero-grid{min-height:0;padding-top:28px;padding-bottom:28px;gap:20px}
  .hero h1{font-size:clamp(36px,9vw,48px)}
  .hero .hero-logo img{max-height:240px}
  .page-heading .page-hero-grid{grid-template-columns:1fr auto;min-height:180px;gap:12px;padding-top:24px;padding-bottom:24px}
  .page-heading h1{font-size:clamp(26px,6vw,36px)}
  .page-heading .hero-logo{width:110px}
  .page-heading .hero-logo img{max-height:110px}
  .page-heading p{font-size:14px}
  .patient-requests-dialog{padding:20px;border-radius:18px}
  .patient-requests-head{align-items:flex-start;flex-direction:column;gap:8px}
  .patient-request-card{padding:16px}
  .local-feedback{right:16px;bottom:16px}
}
@media(max-width:400px){.page-heading .page-hero-grid{grid-template-columns:1fr}.page-heading .hero-logo{display:none}}

/* Monochrome mastheads and readable saved-ticket controls in every state. */
.hero .eyebrow,.hero h1 em,.hero .hero-type-second{color:#eeeeee}
.hero .btn.primary,.hero .primary{background:#ffffff;color:#171717;border-color:#ffffff}
.hero .btn.primary:hover,.hero .primary:hover{background:#e5e5e5;color:#111111;border-color:#e5e5e5}
.hero .btn.secondary,.hero .btn.outline{border-color:#cccccc}
.saved-tickets-panel .saved-ticket-open,
.hero .saved-tickets-panel .saved-ticket-open{background:#303030;color:#ffffff;border:1px solid #303030;text-decoration:none}
.saved-tickets-panel .saved-ticket-open:hover,
.hero .saved-tickets-panel .saved-ticket-open:hover{background:#111111;color:#ffffff;border-color:#111111;box-shadow:0 5px 14px rgba(0,0,0,.16)}
.saved-tickets-panel .saved-ticket-open:active,
.hero .saved-tickets-panel .saved-ticket-open:active{background:#222222;color:#ffffff;border-color:#222222;transform:translateY(0);box-shadow:none}
.saved-tickets-panel .saved-ticket-open:focus-visible,
.hero .saved-tickets-panel .saved-ticket-open:focus-visible{background:#111111;color:#ffffff;border-color:#111111;outline:2px solid #111111;outline-offset:3px}

/* Appointment summaries sit alongside their saved ticket links. */
.saved-tickets-panel .saved-tickets-copy{flex:0 0 auto}
.saved-tickets-links{flex:1 1 320px;display:grid;gap:10px}
.saved-ticket-item{display:flex;align-items:center;justify-content:space-between;gap:16px;min-width:0}
.saved-ticket-item+.saved-ticket-item{padding-top:10px;border-top:1px solid #dddddd}
.saved-ticket-description{display:grid;gap:4px;min-width:0;text-align:left;color:#252525}
.saved-ticket-description strong{font-size:14px;line-height:1.35;overflow-wrap:anywhere}
.saved-ticket-description span{font-size:13px;line-height:1.4;color:#555555}
.saved-ticket-item .saved-ticket-open{flex:none}
@media(max-width:680px){.saved-tickets-panel .saved-tickets-copy{width:100%}.saved-ticket-item{align-items:flex-start;gap:10px;flex-wrap:wrap}.saved-tickets-links{flex-basis:100%}}

/* Clinic workspace: compact tools and dense, readable appointment views. */
.staff-heading.page-heading{background:#fafafa;color:#252525;padding:0;border-bottom:1px solid #e5e5e5}
.staff-heading .hero-grid{display:block;min-height:0;padding-top:20px;padding-bottom:20px}
.staff-heading .hero-logo{display:none}
.staff-heading h1{font-size:28px;margin:8px 0}.staff-heading p{color:#666}
.workspace-summary,.appointment-dialog-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}
.workspace-summary h2{margin:0}.next-patient{padding:22px;margin-bottom:24px}.next-patient h2{margin:8px 0;font-size:24px}
.table-actions,.quick-filters,.pagination,.weekday-selection{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.table-actions .form{margin:0;display:block}.table-actions .btn{min-height:34px;padding:7px 11px;font-size:12px;white-space:nowrap}
.appointment-table td{vertical-align:middle;padding:12px}.appointment-table th{white-space:nowrap}.pagination{justify-content:space-between;margin-top:18px;font-size:14px}.quick-filters{margin:14px 0}
.work-calendar-controls{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin:18px 0}
.work-calendar-controls .field{min-width:140px;margin:0}.work-calendar-controls .field span{font-size:12px}
.work-month-picker{margin:10px 0;border:0}.work-month-picker summary{font-size:14px;margin-bottom:10px}
.work-calendar{width:100%;border-collapse:separate;border-spacing:0;table-layout:auto;min-width:620px}
.work-calendar thead th{position:sticky;top:0;z-index:2;background:#f4f4f4;min-width:180px;padding:12px;border-bottom:1px solid #ddd;white-space:normal;font-size:13px}
.work-calendar thead th:first-child{min-width:65px}
.work-calendar tbody th{position:sticky;left:0;z-index:1;background:#fff;width:65px;font-size:13px;border-right:1px solid #ddd}
.work-calendar td{padding:5px;border-bottom:1px solid #eee;min-width:180px;vertical-align:top}
.work-calendar .calendar-cell{width:100%;min-height:54px;padding:10px;white-space:normal;text-align:left;border-radius:9px;font-size:12px;line-height:1.5}
.work-calendar .calendar-cell.busy{background:#303030;color:#fff;border:1px solid #303030}
.work-calendar .calendar-cell.free{background:#fafafa;color:#333;border:1px dashed #ccc}
.work-calendar .calendar-cell.blocked{background:repeating-linear-gradient(135deg,#ededed 0 6px,#f7f7f7 6px 12px);color:#666;border:1px solid #ddd}
.work-calendar .calendar-cell:hover{outline:2px solid #888;outline-offset:1px}.work-calendar .calendar-cell.selected{outline:3px solid #777}
.appointment-details-dialog{width:min(780px,calc(100vw - 32px));max-height:88dvh;overflow:auto;border:1px solid #ddd;border-radius:20px;padding:24px;background:#fff;color:#252525;box-shadow:0 20px 70px #0003}
.appointment-details-dialog::backdrop{background:#1118;backdrop-filter:blur(3px)}
.appointment-details-dialog .appointment{box-shadow:none;border:0;padding:0}.appointment-dialog-head h2{margin:0;font-size:24px}
.appointment-history{list-style:none;padding:0;margin:0}.appointment-history li{padding:12px 0;border-top:1px solid #eee;display:grid;gap:4px;font-size:14px}.appointment-history span{color:#666;font-size:12px}
.patient-picker{padding:14px;background:#f7f7f7;border-radius:12px;margin-bottom:14px}.patient-result{display:block;width:100%;border:1px solid #ddd;background:#fff;border-radius:8px;padding:10px;text-align:left;margin:6px 0;color:#252525}.patient-result:hover{background:#eee}
.patient-edit,.schedule-tools{margin-top:18px}.patient-edit .form{margin-top:14px}.weekday-selection label{padding:8px;border:1px solid #ddd;border-radius:8px;font-size:14px}
.timeoff-conflict-warning{padding:12px;border:1px solid #777;border-radius:10px;background:#f0f0f0;line-height:1.5}.timeoff-conflict-warning[hidden]{display:none}
.request-launcher{position:fixed;right:20px;bottom:20px;z-index:40;box-shadow:0 8px 25px #0003}.request-launcher[hidden]{display:none}
.local-feedback{bottom:82px}.patient-requests-head{flex-wrap:wrap}
@media(max-width:680px){.workspace-summary{align-items:flex-start;flex-direction:column}.work-calendar-controls{gap:8px}.work-calendar-controls .field{flex:1 1 130px}.appointment-details-dialog{padding:18px}.pagination{justify-content:flex-start}.admin-page-head h1{font-size:26px}.request-launcher{right:16px;bottom:16px}}
@media(max-width:680px){.work-calendar{min-width:100%}.admin-main .stat{padding:15px}.admin-main .stat span{font-size:13px;line-height:1.4;overflow-wrap:normal;word-break:normal}}

/* Open appointments from the whole row/card while keeping action buttons independent. */
.appointment-clickable-row,.next-patient[data-open-appointment]{cursor:pointer}
.appointment-clickable-row:hover td{background:#f6f6f6}
.appointment-clickable-row:focus-visible{outline:2px solid #444;outline-offset:-2px}
.next-patient[data-open-appointment]:hover{border-color:#777;background:#fafafa}
.next-patient[data-open-appointment]:focus-visible{outline:2px solid #444;outline-offset:3px}
.booking-step-navigation{display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:12px;margin-top:20px}
.booking-step-navigation .btn{flex:1 1 0;width:auto;min-width:0;margin:0;align-self:stretch}
.booking-step-navigation #booking-back{align-self:stretch}
.booking-step-navigation .btn[hidden]{display:none!important}
@media(max-width:680px){.booking-step-navigation{gap:10px}.booking-step-navigation .btn{font-size:13px;padding:11px 8px;white-space:normal}.booking-step-navigation #booking-back{font-size:0}.booking-step-navigation #booking-back::after{content:'← Назад';font-size:13px}}

/* Compact public headings and booking review. */
.hero.page-heading .page-hero-grid{min-height:180px;padding-top:22px;padding-bottom:22px}
.page-heading .hero-logo img{max-height:140px}
.hero.booking-heading .page-hero-grid{min-height:140px;padding-top:16px;padding-bottom:16px;gap:24px}
.booking-heading .hero-logo img{max-height:108px}
.booking-heading h1{font-size:clamp(26px,3vw,38px);margin:8px 0}
.booking-heading~.booking-layout{padding-top:28px}
.booking-summary{padding:16px 18px;margin-bottom:20px;border:1px solid var(--line);border-radius:14px;background:#fafafa}
.booking-summary h3{margin:0 0 10px;font-size:16px}.booking-summary dl{margin:0}
.booking-summary-row{display:grid;grid-template-columns:65px minmax(0,1fr) auto;align-items:center;gap:12px;padding:8px 0}
.booking-summary-row+.booking-summary-row{border-top:1px solid var(--line)}
.booking-summary dt{font-size:12px;color:var(--muted)}.booking-summary dd{margin:0;font-size:14px;overflow-wrap:anywhere}
.booking-summary .btn{min-height:36px;padding:6px 8px;font-size:12px;text-decoration:underline}
.booking-calendar #calendar-nearest{margin:8px 0 16px;width:auto;white-space:normal}
.booking-calendar .calendar-day.past,.booking-calendar .calendar-day.outside{background:#fafafa;border-color:#eee;color:#aaa;opacity:.55;cursor:default}
.booking-complete{padding-top:24px}.booking-complete strong{display:block;margin-bottom:10px;font-size:14px}
.contact-email{text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
@media(max-width:680px){
 .hero.page-heading .page-hero-grid{min-height:135px;padding-top:18px;padding-bottom:18px;grid-template-columns:minmax(0,1fr) 80px;gap:12px}
 .page-heading .hero-logo,.booking-heading .hero-logo{display:block;width:80px;margin:0}
 .page-heading .hero-logo img,.booking-heading .hero-logo img{max-height:80px}
 .hero.booking-heading .page-hero-grid{min-height:112px;padding-top:14px;padding-bottom:14px}
 .booking-summary{padding:12px}.booking-summary-row{grid-template-columns:52px minmax(0,1fr);gap:6px 10px}
 .booking-summary-row .btn{grid-column:2;justify-self:start;padding:2px 0;min-height:32px}
}

/* Doctor profile and scheduling workspace. */
.doctor-state{font-size:.8rem;color:var(--muted);margin-top:4px}
.doctor-notice{padding:14px 18px;background:#eaf6ef;border-radius:14px;color:#216442}
.doctor-danger{margin-top:20px;border:1px solid #e7cccc}
.doctor-danger summary{font-weight:700;cursor:pointer;color:#963c3c}
.doctor-danger .btn.primary{background:#963c3c;color:#fff}
.doctor-week-grid{display:grid;gap:10px;margin-top:12px}
.doctor-week-day{display:grid;grid-template-columns:180px 1fr;gap:8px 20px;padding:16px;border:1px solid #dce6e4;border-radius:14px}
.doctor-week-label{font-weight:700;display:flex;gap:10px;align-items:center}
.doctor-week-label input{width:20px;height:20px;accent-color:#42897a}
.doctor-shifts{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.doctor-shifts .field{margin:0}
.doctor-shifts input:disabled{opacity:.4}
.doctor-planner-nav,.doctor-planner-actions{display:flex;gap:10px;align-items:end;flex-wrap:wrap}
.doctor-planner-nav .field{max-width:220px;margin:0}
.doctor-day-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:10px;margin:18px 0}
.doctor-day-slots .calendar-cell{display:flex;flex-direction:column;gap:6px;min-height:80px;padding:12px;border-radius:12px;width:100%}
.doctor-day-slots .calendar-cell span{font-size:.85rem}
.doctor-day-slots .calendar-cell.closed{background:#f0f2f2;color:#8b9592}
.doctor-day-slots .calendar-cell.selected{outline:3px solid #287766;outline-offset:1px}
.doctor-slot-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:16px;font-size:.85rem;color:#64736f}
.doctor-slot-legend span:before{content:'';display:inline-block;width:10px;height:10px;border-radius:50%;background:#d5eee3;margin-right:6px}
.doctor-slot-legend span:nth-child(2):before{background:#e6c1b9}
.doctor-slot-legend span:nth-child(3):before{background:#cfdded}
@media(max-width:640px){.doctor-week-day{grid-template-columns:1fr}.doctor-shifts{grid-template-columns:repeat(2,minmax(0,1fr))}.doctor-day-slots{grid-template-columns:repeat(3,minmax(0,1fr))}.doctor-planner-actions .btn{flex:1 1 45%;font-size:.85rem}.doctor-day-slots .calendar-cell{padding:8px}.doctor-editor .form{min-width:0}}

/* Compact, separated doctor account controls. */
.doctor-access .form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-top:18px}
.doctor-access .form+.form{padding-top:18px;border-top:1px solid var(--line)}
.doctor-access .field{flex:0 1 440px;min-width:0;margin:0}
.doctor-access .field span{font-size:14px}
.doctor-access .field input{min-height:40px;height:40px;padding:8px 12px;border-radius:10px}
.doctor-access .form>.btn{flex:0 0 auto;width:auto;min-width:0;min-height:40px;padding:8px 15px;font-size:14px;line-height:1.3;border-radius:10px;box-shadow:none;align-self:flex-end}
.doctor-access .form:has(input[name="action"][value="disable"])>.btn{background:#fff;color:#943a3a;border:1px solid #d9baba}
.doctor-access .form:has(input[name="action"][value="enable"])>.btn{background:#fff;color:#28715e;border:1px solid #b4d0c5}
@media(max-width:600px){.doctor-access .field{flex-basis:100%}.doctor-access .form{gap:10px}.doctor-access .form>.btn{max-width:100%;white-space:normal}}

/* Staff date and time selection. */
.doctor-timeoff-panel{margin-top:24px}
.time-range-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;max-width:760px}
.time-range-row .field{min-width:0;margin:0}
.doctor-timeoff-panel .form{gap:16px;align-items:start}
.doctor-timeoff-panel .form>.btn{width:auto;justify-self:start;min-height:40px;padding:9px 16px;font-size:14px;box-shadow:none}
.staff-datetime-field{position:relative;min-width:0}
.staff-datetime-field input{cursor:pointer;width:100%;min-height:44px;padding-right:40px;background:#fafafa;border:1px solid #d7d7d7;border-radius:11px;color:#303030}
.staff-datetime-field input::-webkit-calendar-picker-indicator{display:none}
.staff-datetime-field input:focus{outline:2px solid #777;outline-offset:2px}
.datetime-trigger{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:32px;height:32px;min-height:0;border:0;border-radius:8px;background:#eeeeee;color:#333;cursor:pointer;font-size:22px;line-height:1}
.datetime-trigger:hover{background:#ddd}
.staff-datetime-picker{width:min(360px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto;border:1px solid #dedede;border-radius:18px;padding:20px;background:#fff;color:#303030;box-shadow:0 20px 80px #0003;margin:auto}
.staff-datetime-picker::backdrop{background:#0005}
.datetime-picker-head,.datetime-month-nav,.datetime-picker-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}
.datetime-picker-head h3{font-size:18px;margin:0}
.datetime-picker-head .btn,.datetime-month-nav .btn{min-height:34px;padding:6px 10px;font-size:14px;border-radius:9px;box-shadow:none}
.datetime-month-nav{margin:18px 0 14px}.datetime-month-nav strong{font-size:15px;text-transform:capitalize}
.datetime-weekdays,.datetime-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;text-align:center}
.datetime-weekdays{font-size:12px;color:#777;margin-bottom:8px}
.datetime-days button{min-height:36px;padding:4px;border:1px solid transparent;border-radius:9px;background:#f6f6f6;color:#333;font:inherit;font-size:14px;cursor:pointer}
.datetime-days button:hover{border-color:#999;background:#eee}
.datetime-days button.selected{background:#303030;color:#fff;border-color:#303030}
.datetime-clock{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:end;margin:18px 0;padding-top:16px;border-top:1px solid #eee}
.datetime-clock>.field{margin:0}.datetime-clock>.field>span{font-size:12px;color:#666}
.datetime-clock>span{align-self:center;padding-top:18px;font-weight:700}
.datetime-clock select{height:42px;min-height:42px;border-radius:10px;background:#fafafa;font-size:16px;padding:8px 12px}
.datetime-picker-actions .btn{width:auto;min-height:38px;padding:8px 14px;font-size:14px;border-radius:10px;box-shadow:none}
@media(max-width:480px){.time-range-row{gap:10px}.time-range-row .staff-datetime-field input{font-size:12px;padding-left:8px;padding-right:30px}.time-range-row .datetime-trigger{width:24px;right:4px;font-size:18px}}

/* The doctor's hourly tickets and time-off table. */
.doctor-hour-section{margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}
.doctor-hour-section h3{margin:0 0 10px;font-size:18px}
.doctor-hours-scroll{overflow-x:auto;margin-top:16px;border:1px solid #e2e2e2;border-radius:13px}
.doctor-hours-table{width:100%;border-collapse:collapse;text-align:left;font-size:14px}
.doctor-hours-table th{background:#f5f5f5;padding:12px 14px;font-size:13px;color:#666}
.doctor-hours-table td{padding:12px 14px;vertical-align:middle;border-top:1px solid #ececec}
.doctor-hours-table td:first-child{white-space:nowrap;width:140px}
.doctor-hours-table td:last-child{width:180px}
.doctor-hours-table td:nth-child(2) span{display:block;margin-top:4px}
.doctor-hours-table .blocked{background:#f3f3f3}
.doctor-hours-table .busy{background:#fafafa}
.doctor-hours-table .outside{color:#888}
.doctor-hours-table .form{margin:0;display:block}
.doctor-hours-table .form>.btn{width:auto;min-height:34px;padding:6px 11px;font-size:12px;white-space:nowrap;border-radius:8px;box-shadow:none}
.doctor-hours-table .blocked .form>.btn{background:#fff;color:#333;border:1px solid #bbb}
.doctor-hour-time{border:1px solid #ddd;background:#fff;color:#303030;font:inherit;font-weight:700;padding:8px 10px;border-radius:9px;cursor:pointer;white-space:nowrap}
.doctor-hour-time:hover{border-color:#555;background:#eee}
.doctor-hour-time:focus-visible{outline:2px solid #555;outline-offset:2px}
.doctor-hour-block-label{font-size:12px;font-weight:600;color:#6b5555}
@media(max-width:600px){.doctor-hours-table th,.doctor-hours-table td{padding:10px 8px}.doctor-hours-table{font-size:12px;min-width:450px}.doctor-hours-table .form>.btn{font-size:11px}.doctor-hour-time{padding:7px}}

/* Compact doctor profile; photo actions share one row. */
.doctor-profile-compact{display:grid;grid-template-columns:100px minmax(0,1fr);gap:24px;max-width:760px;padding:24px;align-items:start}
.doctor-profile-compact .portrait.large{width:100px;height:134px;padding:0;margin:0;border-radius:12px;overflow:hidden}
.doctor-profile-compact .portrait.large img{width:100%;height:100%;object-fit:cover}
.doctor-profile-content{min-width:0}
.doctor-profile-content h2{font-size:22px;line-height:1.3;margin:0 0 6px}
.doctor-profile-specialty{margin:0 0 18px;color:var(--muted);font-size:14px}
.doctor-profile-bio{font-size:14px;line-height:1.5;margin:0 0 16px}
.doctor-photo-controls{display:grid;grid-template-columns:max-content max-content;gap:10px 12px;max-width:100%;align-items:start}
.doctor-photo-controls>.doctor-photo-upload{display:contents}
.doctor-photo-controls>.doctor-photo-upload>.field{grid-column:1/-1;margin:0;min-width:0}
.doctor-photo-controls>.doctor-photo-upload>p{grid-column:1/-1;margin:0;font-size:12px;line-height:1.4}
.doctor-photo-controls>.doctor-photo-upload>.btn{grid-column:1;grid-row:3}
.doctor-photo-controls>.form:not(.doctor-photo-upload){grid-column:2;grid-row:3;display:block;margin:0}
.doctor-photo-controls .btn{width:auto;min-width:0;min-height:38px;padding:8px 13px;font-size:13px;line-height:1.3;border-radius:9px;box-shadow:none;white-space:nowrap}
.doctor-photo-controls>.form:not(.doctor-photo-upload) .btn{background:#fff;color:#783f3f;border:1px solid #d4bcbc}
.doctor-photo-controls input[type=file]{width:100%;max-width:420px;padding:8px;border-radius:10px;font-size:12px;background:#fafafa}
.doctor-photo-controls input[type=file]::file-selector-button{border:1px solid #d8d8d8;background:#fff;color:#333;border-radius:7px;padding:6px 9px;margin-right:10px;font:inherit;cursor:pointer}
@media(max-width:560px){.doctor-profile-compact{grid-template-columns:72px minmax(0,1fr);gap:16px;padding:18px}.doctor-profile-compact .portrait.large{width:72px;height:96px}.doctor-profile-content h2{font-size:19px}.doctor-photo-controls{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.doctor-photo-controls .btn{font-size:12px;padding:8px;white-space:normal}.doctor-profile-specialty{margin-bottom:14px}}

.auth-notice{padding:14px 16px;border:1px solid;border-radius:12px;margin:0 0 20px;font-size:14px;line-height:1.5}
.auth-notice strong{display:block;font-size:15px;margin-bottom:4px}
.auth-notice p{margin:0}
.auth-notice.is-error{background:#fff3f2;border-color:#edc5c0;color:#8a3028}
.auth-notice.is-success{background:#edf7f0;border-color:#bcd9c5;color:#245e38}
.auth-panel .auth-footer{margin:18px 0 0;font-size:14px;text-align:center}

.account-profile{margin-top:20px}.account-credentials{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.account-credentials h3{font-size:17px;margin:0 0 12px}.account-credentials .form{gap:12px;margin:16px 0 0;max-width:480px}
.account-credentials .form+.form{padding-top:18px;border-top:1px solid var(--line)}
.account-credentials .btn,.account-profile .form>.btn{width:auto;justify-self:start;min-height:38px;padding:8px 13px;font-size:13px;box-shadow:none}
.account-profile .form{max-width:480px}.account-profile p{font-size:14px;line-height:1.6}

/* User administration workspace. */
.users-toolbar,.users-toolbar>div{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.users-toolbar{justify-content:space-between;margin-bottom:20px}
.users-page .btn{min-height:36px;padding:8px 12px;font-size:13px;line-height:1.3;border-radius:9px;box-shadow:none;width:auto}
.users-workspace{padding:22px}.users-filters{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.users-filters>.field:first-child{flex:1 1 260px}.users-filters>.field:nth-child(2){flex:0 1 240px}.users-filters .field{margin:0}
.users-page input,.users-page select{min-height:40px;padding:9px 11px;font-size:14px;border-radius:10px}
.users-table{min-width:740px}.users-table th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;padding:13px 16px}
.users-table td{padding:16px;vertical-align:middle}.users-table td:first-child{max-width:260px;overflow-wrap:anywhere}
.user-email{display:block;font-size:12px;color:var(--muted);margin-top:5px}
.user-role-badge,.user-self-badge{display:inline-block;padding:6px 9px;background:#f1f1f1;border:1px solid #e0e0e0;border-radius:8px;font-size:12px;font-weight:600;line-height:1.4}
.user-row-controls{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.user-row-controls>.form{display:flex;align-items:center;gap:8px;margin:0;min-width:0}
.user-row-controls .field{margin:0;width:200px}.user-row-controls .field>span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.user-row-controls .btn{white-space:nowrap}.user-delete-form>.btn{background:#fff;color:#963b35;border:1px solid #ddbdb9}
.user-delete-form>.btn:hover{background:#fff1ef;border-color:#b97068}.user-self-badge{background:#edf4ef;color:#395b44;border-color:#d1dfd5}
.users-empty{text-align:center;color:var(--muted);padding:30px!important}.users-pagination{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:16px;font-size:13px}
.users-permissions{margin-top:20px}.users-permissions>summary{cursor:pointer;font-weight:700;font-size:15px}
.users-role-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:18px}.users-role-grid p{margin:0;font-size:13px;line-height:1.5}
.users-role-grid b,.users-role-grid span{display:block}.users-role-grid b{margin-bottom:6px}.users-role-grid span{color:var(--muted)}
.users-create{margin-top:20px;scroll-margin-top:90px}.users-create h3{margin:0;font-size:18px}
.users-create>.form{display:grid;grid-template-columns:1fr 1fr 1fr auto;align-items:end;gap:12px;margin-top:18px}.users-create .field{margin:0;min-width:0}
@media(max-width:900px){.users-role-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.users-create>.form{grid-template-columns:repeat(2,minmax(0,1fr))}.users-create>.form>.btn{justify-self:start}}
@media(max-width:600px){.users-workspace{padding:16px}.users-filters>.field{flex:1 1 100%!important}.users-toolbar{gap:14px}.users-create>.form{grid-template-columns:1fr}.users-role-grid{gap:14px}.users-page .admin-table-scroll{margin-top:10px}}

/* Homepage services: two landscape cards, one service per carousel step. */
.home-services .section-title h2{font-size:clamp(23px,2.4vw,32px);letter-spacing:-.025em}
.services-carousel{--services-gap:28px;--services-visible:2}
.services-carousel-viewport{overflow-x:auto;scroll-snap-type:x mandatory}
.services-carousel-track{display:flex;gap:var(--services-gap);align-items:stretch}
.services-carousel-track>.home-service-card{flex:0 0 calc((100% - var(--services-gap)*(var(--services-visible) - 1))/var(--services-visible));scroll-snap-align:start;min-width:0;transform:none;opacity:1;transition:none}
.services-carousel.is-ready .services-carousel-viewport{overflow:hidden;scroll-snap-type:none}
.home-service-card{padding:32px;border:0;border-radius:32px;box-shadow:none;display:flex;flex-direction:column}
.home-service-top{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:30px}
.home-service-top>small{padding:10px 16px;border-radius:999px;background:#eeeeed;color:#555;font-size:11px;line-height:1.4;max-width:34%;overflow-wrap:anywhere}
.home-service-card .service-image{flex:1 1 65%;width:65%;aspect-ratio:16/9;height:auto;margin:0;border-radius:22px;overflow:hidden;min-width:0}
.home-service-card .service-image img{display:block;width:100%;height:100%;object-fit:cover}
.home-service-card .service-image img[src*="nologo"]{object-fit:contain;padding:12px}
.home-service-card h3{font-size:20px;line-height:1.35;text-transform:uppercase;margin:0 0 12px;overflow-wrap:anywhere}
.home-service-card p{font-size:14px;line-height:1.6;margin:0 0 20px}
.home-service-card .card-bottom{padding-top:0;margin-top:auto}
.home-service-card .card-bottom .btn{width:min(225px,100%);border-radius:999px;background:#fff;border:1px solid #747474;color:#444;font-weight:500}
.services-carousel-controls:not([hidden]){display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:20px}
.services-carousel-arrow{display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:50%;background:#ededed;color:#444;font-size:26px;line-height:1}
.services-carousel-arrow:hover{background:#dedede}
.services-carousel-pause{border:0;background:transparent;color:#626262;font-size:12px;padding:10px}
@media(max-width:900px){.services-carousel{--services-gap:18px}.home-service-card{padding:24px}.home-service-top{flex-direction:column;gap:16px;margin-bottom:24px}.home-service-top>small{max-width:100%}.home-service-card .service-image{flex:auto;width:100%}}
@media(max-width:600px){.services-carousel{--services-visible:1}.home-services .section-title{flex-wrap:wrap;gap:8px}.home-service-card{border-radius:24px}.home-service-card h3{font-size:18px}}
@media(prefers-reduced-motion:reduce){.services-carousel-track{transition:none!important}}

/* Keep booking day labels inside narrow phone calendar cells. */
.booking-calendar .calendar-day{min-width:0;max-width:100%;box-sizing:border-box}
.booking-calendar .calendar-day small{max-width:100%;white-space:normal;text-align:center;line-height:1.2;overflow-wrap:anywhere}
@media(max-width:600px){
  .booking-calendar .booking-calendar-days,.booking-calendar .booking-calendar-week{gap:4px}
  .booking-calendar .calendar-day{padding:7px 2px;min-height:66px;gap:4px;border-radius:8px}
  .booking-calendar .calendar-day strong{font-size:16px;line-height:1.15}
  .booking-calendar .calendar-day small{font-size:9px}
  .booking-calendar .booking-day-label,.booking-calendar .booking-day-count{display:block}
  .booking-calendar .booking-calendar-week{font-size:11px}
  .booking-calendar .booking-calendar-nav{display:grid;grid-template-columns:38px minmax(0,1fr) 38px;gap:8px;align-items:center;margin-bottom:14px}
  .booking-calendar .booking-calendar-nav button{width:38px;min-width:0;min-height:38px;padding:6px;font-size:18px}
  .booking-calendar .booking-calendar-nav h3{font-size:16px;line-height:1.3;min-width:0}
  .booking-calendar #calendar-nearest{max-width:100%;min-height:38px;padding:8px 12px;font-size:12px;line-height:1.35}
}

/* Service photos retain landscape proportions independently of doctor portraits. */
.service-image,.service-detail-image,.service-editor-image{aspect-ratio:16/9;height:auto;min-height:0;flex-shrink:0}
.home-service-card .service-image{flex-grow:0;flex-shrink:0;align-self:flex-start;min-height:0;aspect-ratio:16/9}
.service-image img,.service-detail-image img,.service-editor-image img{display:block;object-fit:contain;object-position:center}
.home-service-card .service-image img{object-fit:contain}

/* Two ways to request a consultation. */
.contact-band.contact-options{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;gap:32px}
.contact-options .online-option{display:flex;flex-direction:column;align-items:flex-start}
.contact-options .online-option>.btn{margin-top:auto}
.contact-options .callback-option{border-left:1px solid #ffffff40;padding-left:32px}
.contact-options p{line-height:1.65;margin-bottom:22px}
.booking-side .callback-option h2{font-size:23px;letter-spacing:-.04em}
.booking-side .callback-option .btn{background:var(--accent);color:white;width:100%}
@media(max-width:680px){.contact-band.contact-options{grid-template-columns:1fr;gap:24px}.contact-options .callback-option{border-left:0;border-top:1px solid #ffffff40;padding:24px 0 0}.contact-options .btn{white-space:normal}}

/* Categorized services catalog. */
.services-catalog{padding-top:36px}
.services-contents{padding:24px;border:1px solid var(--line);border-radius:20px;background:var(--pale);margin-bottom:44px}
.services-category-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.services-category-links a{display:inline-flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 16px;font-size:14px;font-weight:650;transition:border-color .2s,background .2s}
.services-category-links a:hover{border-color:#a39383;background:#fcfaf7}
.services-category-links a span,.services-category-count{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;border-radius:50%;background:#eeeae5;color:#766b5f;font-size:12px;font-weight:650}
.services-category{scroll-margin-top:120px;margin-bottom:52px}
.services-category:last-child{margin-bottom:0}
.services-category-heading{display:flex;align-items:center;gap:14px;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:24px}
.services-category-heading h2{margin:0;font-size:clamp(26px,3vw,36px);letter-spacing:-.045em}
.services-catalog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.services-catalog .catalog-service-card{padding:24px;min-height:0;transition:opacity .65s ease,transform .65s cubic-bezier(.22,.68,.25,1),box-shadow .25s ease}
.services-catalog .catalog-service-card h3{font-size:23px;line-height:1.3;margin:12px 0 6px}
.services-catalog .catalog-service-card .service-image{width:100%;aspect-ratio:16/9;height:auto;margin-bottom:20px;overflow:hidden;border-radius:12px}
.services-catalog .catalog-service-card .card-bottom{justify-content:flex-start;gap:10px}
.services-catalog .catalog-service-card.service-reveal-pending{opacity:0;transform:translateY(24px)}
@media(max-width:680px){.services-catalog-grid{grid-template-columns:1fr;gap:18px}.services-contents{padding:18px;margin-bottom:32px}.services-category-links a{padding:10px 12px;font-size:13px}.services-catalog .catalog-service-card{padding:18px}.services-category{scroll-margin-top:95px;margin-bottom:36px}.services-category-heading{margin-bottom:18px}.services-catalog .catalog-service-card h3{font-size:21px}.services-catalog .card-bottom .btn{flex:1}}
@media(prefers-reduced-motion:reduce){.services-catalog .catalog-service-card{transition:none}.services-catalog .catalog-service-card.service-reveal-pending{opacity:1;transform:none}.services-category{scroll-behavior:auto}}

/* Embedded callback form in the site's neutral theme. */
.contact-band.contact-options{background:#f6f6f6;color:var(--ink);border:1px solid var(--line);padding:38px;gap:36px;border-radius:28px;box-shadow:var(--shadow)}
.contact-options .eyebrow{color:var(--muted)}
.contact-options h2{color:var(--ink)}
.contact-options p{color:var(--muted)}
.contact-options .online-option{justify-content:center;padding:8px 0}
.contact-options .online-option>.btn{margin-top:12px;min-height:48px;padding:13px 25px;border-radius:999px;background:#707070;color:#fff}
.contact-options .online-option>.btn:hover{background:#606060}
.contact-options .callback-option{padding-left:36px;border-left-color:var(--line)}
.contact-options .callback-option h2{font-size:clamp(25px,2.5vw,34px);margin:0 0 12px}
.contact-options .callback-option>p{font-size:15px;margin:0 0 22px;color:var(--muted)}
.callback-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.callback-inline-form{display:flex;flex-direction:column;gap:16px}
.callback-inline-form .field{margin:0;color:var(--ink)}
.callback-inline-form .field input{border-radius:16px;min-height:48px;border:1px solid #dadada;background:#fff;color:var(--ink)}
.callback-inline-form .field input::placeholder{color:#929292}
.callback-consent{font-size:12px;line-height:1.55;color:var(--muted)}
.contact-options .callback-consent{color:var(--muted)}
.contact-options .callback-consent a{color:var(--ink);text-decoration:underline}
.callback-consent input{accent-color:#707070;margin-top:2px}
.callback-inline-form>.btn{border-radius:999px;min-height:48px;background:#707070;color:#fff;border:1px solid #707070;font-size:14px}
.callback-inline-form>.btn:hover{background:#606060;border-color:#606060}
.callback-inline-form>.btn:disabled{opacity:.65;cursor:wait;transform:none}
.callback-inline-form .callback-feedback{font-size:13px;line-height:1.5;margin:0;color:var(--ink)}
.callback-feedback[hidden]{display:none}
.booking-side .callback-fields{grid-template-columns:1fr}
.booking-side .callback-option .btn{background:#707070;border-radius:999px}
.booking-side .callback-option .btn:hover{background:#606060}
.contact-options .btn{border-radius:999px}
@media(max-width:680px){.contact-band.contact-options{padding:24px;gap:26px}.contact-options .callback-option{padding:24px 0 0;border-top-color:var(--line)}.callback-fields{grid-template-columns:1fr}.contact-options .online-option>.btn{width:100%;margin-top:8px}}

/* Patient cabinet: compact navigation and readable cards on phones. */
.patient-navigation{display:grid;gap:16px;margin-bottom:26px}
.patient-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:5px;background:#f2f1ef;border:1px solid #e8e5e1;border-radius:16px}
.patient-tab{display:flex;align-items:center;justify-content:center;min-height:44px;padding:10px 8px;border-radius:11px;text-decoration:none;color:#68635d;font-size:14px;font-weight:650;transition:background .2s,color .2s}
.patient-tab.is-active{background:#fff;color:#292724;box-shadow:0 2px 8px #30291d0b}
.patient-tab:hover{background:#ffffffb3;color:#292724}
.patient-tab:focus-visible{outline:2px solid #8a7660;outline-offset:2px}
.patient-tools{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.patient-tools .btn{min-height:44px;padding:11px 18px;font-size:14px;border-radius:13px}
.patient-tools .patient-profile-link{margin-right:auto}
.patient-profile-link.is-active{border-color:#a49078;background:#f5f1eb}
.patient-tools .portal-logout{margin-left:0}
.patient-appointments .appointment{padding:24px;border-radius:22px;border:1px solid #e9e5df;box-shadow:0 8px 28px #30291d06;min-width:0}
.patient-appointments .appointment-top{align-items:flex-start;flex-wrap:wrap;gap:10px}
.patient-appointments .appointment-top strong{font-size:17px}
.patient-appointments .badge{font-size:12px;padding:6px 10px;white-space:normal}
.patient-appointments .appointment h3{margin:18px 0 8px;font-size:19px;line-height:1.35;overflow-wrap:anywhere}
.patient-appointments .appointment p{font-size:14px;line-height:1.5;margin:8px 0;color:#716c65;overflow-wrap:anywhere}
.patient-appointments .actions:empty{display:none}
.patient-appointments .empty{grid-column:1/-1;padding:32px;text-align:center;background:#faf9f7;border:1px dashed #d9d1c6;border-radius:20px;color:#777068}
.patient-page .account-profile{margin-top:0;border-radius:22px;padding:26px;border-color:#e9e5df;box-shadow:0 8px 28px #30291d06}
.patient-identity{display:flex;align-items:center;gap:14px;margin-bottom:22px;min-width:0}
.patient-avatar{display:grid;place-items:center;flex:none;width:56px;height:56px;border-radius:18px;background:linear-gradient(135deg,#f4efe7,#e6dacc);color:#79634b;font-size:25px;font-weight:700}
.patient-identity>div{min-width:0}
.patient-identity-label{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:#8a7966}
.patient-identity h2{font-size:21px;line-height:1.3;margin:4px 0;overflow-wrap:anywhere}
.patient-identity p{font-size:14px;color:#716c65;margin:4px 0}
.patient-page .account-credentials{margin-top:24px;padding-top:22px;border-top:1px solid #e9e5df}
.patient-page .account-credentials h3{font-size:18px}
.patient-page .account-credentials .form+.form{margin-top:22px;padding-top:22px;border-top:1px solid #eeeae5}
@media(max-width:640px){
 .patient-page .page-heading .page-hero-grid{min-height:0;padding-top:24px;padding-bottom:24px;gap:12px}
 .patient-page .page-heading h1{font-size:28px;line-height:1.15;margin:10px 0 0}
 .patient-page .page-heading .eyebrow{font-size:10px;letter-spacing:.15em}
 .patient-page .page-heading p:empty{display:none}
 .patient-page .page-heading .hero-logo{width:90px;max-width:90px;margin:0;justify-self:end}
 .patient-page .patient-cabinet{padding-top:22px;padding-bottom:32px}
 .patient-page .patient-navigation{gap:12px;margin-bottom:20px}
 .patient-page .patient-tabs{border-radius:14px}
 .patient-page .patient-tab{font-size:12px;padding:9px 3px;min-height:42px}
 .patient-page .patient-tools{gap:8px}
 .patient-page .patient-tools>.btn.primary{flex:1}
 .patient-page .patient-tools .btn{font-size:13px;padding:11px 14px}
 .patient-page .patient-tools .portal-logout{width:100%;justify-content:flex-end}
 .patient-page .patient-tools .portal-logout .btn{min-height:40px;border:0;background:transparent;color:#79736c;padding:8px 2px;box-shadow:none}
 .patient-page .patient-appointments{grid-template-columns:1fr;gap:14px}
 .patient-page .patient-appointments .appointment{padding:18px;border-radius:18px}
 .patient-page .patient-appointments .appointment-top strong{font-size:15px}
 .patient-page .patient-appointments .badge{font-size:11px;padding:5px 8px}
 .patient-page .patient-appointments .appointment h3{font-size:18px;margin-top:16px}
 .patient-page .account-profile{padding:20px;border-radius:18px}
 .patient-page .patient-identity h2{font-size:18px}
 .patient-page .account-credentials .field input{min-width:0;width:100%;font-size:16px}
 .patient-page .account-credentials .btn{width:100%;min-height:44px;font-size:14px}
}

/* Service administration directly from public service cards. */
.service-card-admin{margin-top:16px;padding-top:12px;border-top:1px solid #e9e3da}
.service-card-admin .btn{min-height:38px;padding:8px 12px;font-size:12px;border-color:#c8b69d;color:#705e48;background:#faf7f2;box-shadow:none}
.service-editor-dialog{width:min(1100px,calc(100vw - 32px));max-height:90dvh;border:1px solid #ded7ce;border-radius:24px;padding:0;color:var(--ink);background:white;box-shadow:0 24px 100px #0004;overflow:auto;overscroll-behavior:contain}
.service-editor-dialog::backdrop{background:#17130fa6;backdrop-filter:blur(4px)}
.service-editor-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 24px;background:#fff;border-bottom:1px solid #ece7e1}
.service-editor-head h2{margin:0;font-size:22px;line-height:1.25}
.service-editor-head button{flex:none;min-width:42px;font-size:24px;line-height:1;padding:8px}
.service-editor-dialog [data-editor-status]{margin:0;padding:12px 24px;color:#6f6559;font-size:14px}
.service-editor-dialog [data-editor-status]:empty{display:none}
.service-editor-dialog [data-editor-status].is-error{color:#a12727;background:#fff4f3}
.service-editor-dialog [data-editor-content]{padding:20px 24px 24px}
.service-editor-dialog .service-edit-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}
.service-editor-dialog .service-edit-main,.service-editor-dialog .service-edit-media{min-width:0;padding:20px;box-shadow:none}
.service-editor-dialog .service-edit-main h2,.service-editor-dialog .service-edit-media h2{font-size:18px;margin-top:0}
.service-editor-dialog input,.service-editor-dialog select,.service-editor-dialog textarea{max-width:100%;min-width:0}
.service-editor-dialog textarea{min-height:160px}
.service-editor-dialog .service-fields-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.service-editor-dialog .service-fields-grid>.field:first-child{grid-column:1/-1}
.service-editor-dialog .service-doctor-options{display:grid;gap:10px}
.service-editor-dialog .service-editor-image{width:100%;aspect-ratio:16/9;object-fit:cover}
.service-editor-dialog .service-delete{margin-top:20px}
@media(max-width:760px){
 .service-editor-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);border-radius:18px}
 .service-editor-head{padding:14px 16px}
 .service-editor-head h2{font-size:18px}
 .service-editor-dialog [data-editor-content]{padding:14px}
 .service-editor-dialog [data-editor-status]{padding:10px 16px}
 .service-editor-dialog .service-edit-layout{grid-template-columns:minmax(0,1fr);gap:14px}
 .service-editor-dialog .service-edit-main,.service-editor-dialog .service-edit-media{padding:16px}
 .service-editor-dialog input,.service-editor-dialog select,.service-editor-dialog textarea{font-size:16px}
 .service-editor-dialog .service-fields-grid{grid-template-columns:minmax(0,1fr)}
 .service-editor-dialog .form>.btn{width:100%}
}

.service-card-admin{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.service-card-delete{display:inline-flex;margin:0}
.service-card-admin .service-delete-button{color:#a33b34;border-color:#e2bfb9;background:#fff8f7}
.service-card-admin .service-delete-button:hover{color:#852720;background:#fbece9}
.service-card-admin [data-service-delete-status]{flex-basis:100%;margin:0;font-size:12px;color:#a33b34}

.services-category-heading{flex-wrap:wrap}
.category-photo-button{margin-left:auto;min-height:38px;padding:8px 12px;font-size:12px;border-color:#c8b69d;color:#705e48;background:#faf7f2}
.category-photo-dialog{width:min(560px,calc(100vw - 24px));max-height:90dvh;padding:0;overflow:auto;border:1px solid #ded7ce;border-radius:22px;color:var(--ink);background:#fff;box-shadow:0 24px 100px #0004}
.category-photo-dialog::backdrop{background:#17130fa6;backdrop-filter:blur(4px)}
.category-photo-form{padding:20px 24px;margin:0}
.category-photo-form p{margin:0;font-size:14px;line-height:1.5}
.category-photo-preview{aspect-ratio:16/9;overflow:hidden;border-radius:14px;background:#f4f2ef}
.category-photo-preview img{width:100%;height:100%;object-fit:contain;display:block}
.category-photo-form [data-category-status].is-error{color:#a12727}
.category-photo-form input[type=file]{max-width:100%;font-size:14px}
@media(max-width:640px){.category-photo-button{margin-left:0;flex-basis:100%}.category-photo-form{padding:16px}.category-photo-dialog{border-radius:18px}.category-photo-dialog .service-editor-head h2{font-size:17px}}

/* Four service cards per row on desktop. */
@media(min-width:1024px){
 .services-catalog .services-catalog-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
 .services-catalog .catalog-service-card{padding:18px}
 .services-catalog .catalog-service-card h3{font-size:18px;line-height:1.35;overflow-wrap:anywhere}
 .services-catalog .catalog-service-card .service-image{margin-bottom:14px}
 .services-catalog .catalog-service-card .card-bottom{gap:8px;flex-wrap:wrap}
}
