:root{--black:#070707;--coal:#101113;--ivory:#f4f1eb;--white:#fff;--red:#dc1733;--gold:#b99a6a;--gold-light:#e2c69c;--muted:#70777c;--line:rgba(17,18,19,.14);--max:1200px}
*{box-sizing:border-box}html{background:#050505}body{margin:0;color:var(--coal);font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:16px;line-height:1.6;background:#050505 url('clinic-background.png') center calc(50% - 120px)/cover fixed no-repeat}a{color:inherit;text-decoration:none}button{font:inherit}.wrap{width:min(calc(100% - 48px),var(--max));margin:auto}
header{position:sticky;top:0;z-index:30;color:#fff;background:rgba(5,6,7,.86);border-bottom:1px solid rgba(255,255,255,.12);backdrop-filter:blur(14px)}.nav{height:96px;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{display:flex;align-items:center;min-width:0}.header-logo{display:block;width:300px;height:auto;aspect-ratio:1507/287;object-fit:contain}.navcta{flex:0 0 auto}
.booking-hero{position:relative;overflow:hidden;color:#fff;background:#030303 url('clinic-background.png') center calc(50% - 120px)/cover no-repeat}.booking-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.88),rgba(0,0,0,.43) 62%,rgba(0,0,0,.64)),linear-gradient(0deg,rgba(0,0,0,.78),transparent 70%)}.booking-intro{position:relative;z-index:1;padding:76px 0 82px}.back{display:inline-flex;gap:10px;align-items:center;margin-bottom:37px;color:var(--gold-light);font-size:.78rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.back:before{content:"←"}.eyebrow{display:flex;align-items:center;gap:14px;color:#ffb5bd;font-size:.75rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase}.eyebrow:before{content:"";width:44px;height:1px;background:var(--red)}h1{max-width:820px;margin:20px 0 21px;font:400 clamp(3.3rem,6.4vw,6.7rem)/.92 "Iowan Old Style",Baskerville,Georgia,serif;letter-spacing:-.055em;text-shadow:0 3px 28px rgba(0,0,0,.65)}.booking-intro p{max-width:690px;margin:0;color:#e2e5e7;font-size:1.04rem}
.booking-section{padding:86px 0 104px;background:linear-gradient(90deg,rgba(255,255,255,.95) 0%,rgba(255,255,255,.91) 28%,rgba(255,255,255,.78) 46%,rgba(255,255,255,.46) 68%,rgba(255,255,255,.16) 100%);backdrop-filter:blur(5px)}.booking-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(330px,.65fr);gap:30px;align-items:stretch}.calendar-card,.summary-card{position:relative;background:rgba(255,255,255,.72);border:1px solid rgba(114,87,43,.22);box-shadow:0 26px 70px rgba(42,32,17,.12)}.calendar-card{padding:46px 48px 44px;background:linear-gradient(90deg,rgba(255,255,255,.97) 0%,rgba(255,255,255,.82) 40%,rgba(255,255,255,.66) 100%)}.calendar-card:before,.summary-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(var(--red),#7f0718)}.calendar-top{display:flex;justify-content:space-between;gap:24px;align-items:start}.step-label{display:block;margin-bottom:10px;color:var(--red);font-size:.7rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase}.calendar-card h2,.summary-card h2{margin:0;font:400 clamp(2rem,3.3vw,3rem)/1.03 "Iowan Old Style",Baskerville,Georgia,serif;letter-spacing:-.04em}.calendar-nav{display:flex;gap:8px}.calendar-nav button{width:44px;height:44px;border:1px solid rgba(117,84,27,.35);border-radius:50%;color:#6e5118;background:rgba(255,255,255,.64);cursor:pointer;transition:.2s ease}.calendar-nav button:hover:not(:disabled){color:#111;background:#fff;border-color:#c3942c;box-shadow:0 0 18px rgba(185,145,48,.25)}.calendar-nav button:disabled{opacity:.28;cursor:not-allowed}.month-title{margin:36px 0 19px;font:400 1.32rem/1.2 "Iowan Old Style",Baskerville,Georgia,serif;text-transform:capitalize}.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.weekdays{margin-bottom:8px;color:#8b8f92;font-size:.72rem;font-weight:800;text-align:center;text-transform:uppercase}.weekdays span{padding:8px 0}.day{aspect-ratio:1;min-height:48px;border:1px solid transparent;border-radius:50%;color:#252729;background:transparent;cursor:pointer;transition:transform .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease}.day:hover:not(:disabled){transform:translateY(-2px);background:#fff;border-color:rgba(185,154,106,.62);box-shadow:0 8px 18px rgba(85,60,20,.12)}.day.is-selected{color:#fff;background:linear-gradient(145deg,#34322d,#090909);border-color:#d8ae47;box-shadow:0 0 0 2px rgba(120,82,12,.38),0 0 22px rgba(212,169,55,.38)}.day:disabled{color:#bbb8b1;cursor:not-allowed}.day.is-empty{visibility:hidden}.calendar-legend{display:flex;gap:26px;flex-wrap:wrap;margin-top:27px;padding-top:21px;border-top:1px solid var(--line);color:#777d81;font-size:.78rem}.calendar-legend span{display:flex;align-items:center;gap:8px}.calendar-legend i{width:10px;height:10px;border-radius:50%;display:inline-block}.available-dot{border:1px solid #a98024;background:#fff}.selected-dot{background:#151515;box-shadow:0 0 0 2px #d3a83f}
.summary-card{--panel-cut:26px;--panel-cut-line:37px;padding:46px 40px;color:#fff;background:linear-gradient(110deg,rgba(3,4,5,.64),rgba(3,4,5,.46));overflow:hidden;clip-path:polygon(0 0,calc(100% - var(--panel-cut)) 0,100% var(--panel-cut),100% 100%,0 100%);border:1px solid rgba(137,147,159,.78);border-left:3px solid var(--red);box-shadow:inset 0 0 0 1px rgba(255,255,255,.025),inset 0 1px 0 rgba(255,255,255,.08),0 0 0 5px rgba(31,39,53,.24),0 0 0 6px rgba(112,126,148,.10),0 22px 64px rgba(0,0,0,.34);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
@property --silver-angle{syntax:"<angle>";initial-value:0deg;inherits:false}
.summary-card::before{content:"";position:absolute;z-index:3;inset:0 0 0 2px;width:auto;height:auto;padding:1px;pointer-events:none;background:conic-gradient(from var(--silver-angle),#555e69 0deg,#919ca8 34deg,#fbfdff 44deg,#727c87 54deg,#4d5661 112deg,#a8b2bd 170deg,#fff 180deg,#6b7580 190deg,#4c5560 252deg,#9da8b4 306deg,#f8fbff 316deg,#59636e 326deg,#555e69 360deg);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;filter:drop-shadow(0 0 2px rgba(241,247,253,.34));animation:silver-frame-flow 7s linear infinite}
.summary-card::after{content:"";position:absolute;z-index:4;top:calc(var(--panel-cut) - 1px);right:0;width:var(--panel-cut-line);height:1px;pointer-events:none;transform:rotate(45deg);transform-origin:right center;background:linear-gradient(90deg,#69737e 0%,#f9fcff 48%,#8a95a1 100%);box-shadow:0 0 4px rgba(238,246,255,.34)}
@keyframes silver-frame-flow{to{--silver-angle:360deg}}
.summary-card .step-label{color:#ff8997}.summary-card h2{position:relative;z-index:1}.selection{margin:32px 0 22px;padding:21px 0;border-top:1px solid rgba(255,255,255,.16);border-bottom:1px solid rgba(255,255,255,.16)}.selection span,.consultation-details span,.phone-field>span{display:block;color:#9fa5a9;font-size:.72rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase}.selection>strong{display:block;margin-top:8px;color:#f7e6b8;font:400 1.34rem/1.36 "Iowan Old Style",Baskerville,Georgia,serif}.duration-note{display:block;margin-top:12px;color:#c7cbce;font-size:.82rem;font-weight:600}.consultation-details{display:grid;gap:14px}.consultation-details strong{display:block;margin-top:3px;font-size:.91rem}.booking-fieldset{margin:25px 0 0;padding:0;border:0}.booking-fieldset legend{margin:0 0 11px;color:#c9cdd0;font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.choice-grid{display:grid;gap:9px}.time-options{grid-template-columns:1fr 1fr}.contact-options{grid-template-columns:1fr}.choice{position:relative;display:block;cursor:pointer}.choice input{position:absolute;opacity:0;pointer-events:none}.choice span{position:relative;display:flex;align-items:center;min-height:47px;padding:10px 16px 10px 45px;border:1px solid rgba(255,255,255,.2);border-radius:999px;color:#e8eaeb;background:rgba(255,255,255,.035);font-size:.86rem;font-weight:700;transition:.22s ease}.choice span:before{content:"";position:absolute;left:15px;width:18px;height:18px;border:1px solid rgba(224,193,113,.65);border-radius:50%;background:rgba(0,0,0,.28)}.choice span:after{content:"✓";position:absolute;left:19px;top:50%;color:#17140c;font-size:.72rem;font-weight:900;opacity:0;transform:translateY(-52%) scale(.55);transition:.2s ease}.choice input:checked+span{color:#fff8e8;border-color:#e0b842;background:linear-gradient(145deg,rgba(66,58,36,.7),rgba(13,13,12,.96));box-shadow:0 0 0 1px rgba(129,86,8,.65),0 0 20px rgba(224,178,41,.28)}.choice input:checked+span:before{border-color:#f5d878;background:linear-gradient(145deg,#fff0a2,#b77e0d)}.choice input:checked+span:after{opacity:1;transform:translateY(-52%) scale(1)}.choice input:focus-visible+span{outline:2px solid #e3bd58;outline-offset:3px}.phone-field{display:block;margin-top:25px}.phone-field input{width:100%;min-height:51px;margin-top:10px;padding:12px 17px;border:1px solid rgba(255,255,255,.22);border-radius:10px;color:#fff;background:rgba(255,255,255,.055);font:600 1rem/1.2 Inter,"Segoe UI",Arial,sans-serif;outline:none;transition:.22s ease}.phone-field input::placeholder{color:#70777b}.phone-field input:focus{border-color:#e0b842;box-shadow:0 0 0 2px rgba(209,163,39,.2),0 0 22px rgba(224,178,41,.18)}.booking-confirm{width:100%;margin-top:27px;cursor:pointer}.booking-confirm:disabled{opacity:.38;filter:grayscale(.65);cursor:not-allowed;box-shadow:none!important}.booking-confirm.is-confirmed{color:#fff9dd!important;filter:brightness(1.08)}
.choice input:disabled+span{opacity:.32;cursor:not-allowed;text-decoration:line-through}.premium-dialog{width:min(560px,calc(100% - 32px));padding:52px 48px 45px;border:1px solid rgba(226,190,91,.65);border-radius:2px;color:#fff;text-align:center;background:linear-gradient(145deg,rgba(30,29,26,.98),rgba(3,3,3,.99));box-shadow:0 0 0 1px rgba(117,80,10,.55),0 30px 100px rgba(0,0,0,.8),0 0 54px rgba(206,157,36,.2);overflow:hidden}.premium-dialog::backdrop{background:rgba(0,0,0,.78);backdrop-filter:blur(9px)}.premium-dialog[open]{animation:dialog-in .32s ease-out}.dialog-ornament{position:absolute;width:260px;height:260px;left:50%;top:-205px;transform:translateX(-50%);border:1px solid rgba(235,197,102,.4);border-radius:50%;box-shadow:0 0 35px rgba(215,167,49,.15)}.dialog-kicker{display:block;color:#e4c475;font-size:.7rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase}.premium-dialog h2{margin:15px 0 18px;font:400 clamp(2rem,5vw,3.05rem)/1 "Iowan Old Style",Baskerville,Georgia,serif;letter-spacing:-.035em}.dialog-booking-details{max-width:410px;margin:24px auto;padding:15px 0;border-top:1px solid rgba(226,190,91,.3);border-bottom:1px solid rgba(226,190,91,.3);text-align:left}.dialog-booking-details div{display:grid;grid-template-columns:118px 1fr;gap:18px;padding:5px 0}.dialog-booking-details span{color:#aaaeb1;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.dialog-booking-details strong{color:#f8e7b6;font:400 1rem/1.35 "Iowan Old Style",Baskerville,Georgia,serif}.premium-dialog p{max-width:410px;margin:0 auto;color:#e2e2df;font-size:1rem;line-height:1.7}.premium-dialog .dialog-error{margin-top:18px;color:#ff9eaa}.dialog-actions{display:flex;flex-direction:column;align-items:center;gap:14px;margin-top:30px}.dialog-agree{min-width:210px;margin-top:0;cursor:pointer}.dialog-agree:disabled{opacity:.55;cursor:wait}.dialog-back{padding:7px 12px;border:0;border-bottom:1px solid rgba(226,198,125,.42);color:#d6d0c3;background:transparent;font-size:.85rem;font-weight:650;letter-spacing:.025em;cursor:pointer;transition:.2s ease}.dialog-back:hover{color:#f5df9f;border-color:#e4bc50;text-shadow:0 0 18px rgba(226,187,78,.45)}@keyframes dialog-in{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}
.terms-consent{display:grid;grid-template-columns:20px 1fr;gap:11px;align-items:start;margin-top:24px;color:#c7cbce;font-size:.76rem;line-height:1.5;cursor:pointer}.terms-consent input{width:18px;height:18px;margin:2px 0 0;accent-color:#d9ae42}.terms-consent a{color:#efd786;text-decoration:underline;text-underline-offset:3px}.terms-consent a:hover{color:#fff0b7}
footer{background:#040506;color:#9ca4aa;padding:40px 0;border-top:1px solid rgba(255,255,255,.1)}.foot{display:grid;grid-template-columns:260px 1fr;gap:60px;align-items:center;font-size:.82rem}.footer-logo{display:block;width:240px;height:auto;aspect-ratio:1507/287;object-fit:contain}.disclaimer{text-align:right;max-width:720px;justify-self:end}
button:focus-visible,a:focus-visible{outline:2px solid #e3bd58;outline-offset:4px}
@media(max-width:900px){.booking-layout{grid-template-columns:1fr}.summary-card{min-height:0}.booking-intro{padding-block:68px}.calendar-card{padding:40px}.summary-card{padding:40px}.footer-logo{width:225px}}
@media(max-width:760px){.wrap{width:min(calc(100% - 32px),var(--max))}.nav{height:82px;gap:14px}.header-logo{width:min(220px,calc(100vw - 150px))}.booking-hero{background-size:145% auto;background-position:center 82px}.booking-intro{padding:55px 0 64px}.back{margin-bottom:30px}h1{font-size:clamp(2.75rem,12vw,4.5rem)}.booking-section{padding:55px 0 70px}.calendar-card{padding:32px 24px}.summary-card{--panel-cut:18px;--panel-cut-line:26px;padding:35px 27px}.calendar-top{align-items:center}.weekdays,.calendar-grid{gap:4px}.day{-webkit-appearance:none;appearance:none;display:grid;place-items:center;justify-self:center;width:clamp(42px,11vw,60px);height:clamp(42px,11vw,60px);min-height:0;aspect-ratio:auto;padding:0;border-radius:50%}.day.is-selected{color:#fff!important;background-color:#0b0b0b!important;background-image:linear-gradient(145deg,#292722 0%,#050505 72%)!important;border:1px solid #e0bb61;box-shadow:0 0 0 2px rgba(120,82,12,.38),0 8px 22px rgba(0,0,0,.25),0 0 24px rgba(212,169,55,.42);text-shadow:0 1px 4px rgba(0,0,0,.9)}.premium-dialog{padding:44px 28px 38px}.dialog-booking-details div{grid-template-columns:102px 1fr;gap:12px}.foot{grid-template-columns:1fr;gap:20px}.disclaimer{text-align:left;justify-self:start}.footer-logo{width:210px}}
@media(max-width:430px){.header-logo{width:min(188px,calc(100vw - 142px))}.navcta{font-size:.72rem!important;padding-inline:12px!important}.booking-intro p{font-size:.95rem}.calendar-card h2,.summary-card h2{font-size:2rem}.calendar-nav button{width:40px;height:40px}.calendar-card{padding-inline:18px}.day{min-height:0;font-size:.86rem}.calendar-legend{gap:15px}.time-options{grid-template-columns:1fr}.footer-logo{width:190px}}
@media(prefers-reduced-motion:reduce){.calendar-nav button,.day{transition:none}.summary-card::before{animation:none}}

/* Confirmation dialog mirrors the translucent, cut-corner hero plaque. */
.premium-dialog{--dialog-cut:48px;position:fixed;border:1px solid rgba(226,232,238,.28);border-left:3px solid var(--red);border-radius:0;background:linear-gradient(112deg,transparent 16%,rgba(245,249,255,.085) 42%,transparent 67%),linear-gradient(110deg,rgba(3,4,5,.64),rgba(3,4,5,.46));background-size:220% 100%,100% 100%;background-position:-70% 0,0 0;clip-path:polygon(0 0,calc(100% - var(--dialog-cut)) 0,100% var(--dialog-cut),100% 100%,0 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 30px 100px rgba(0,0,0,.64),0 0 46px rgba(166,178,192,.12);-webkit-backdrop-filter:blur(12px) saturate(.82);backdrop-filter:blur(12px) saturate(.82)}
.premium-dialog::before{content:"";position:absolute;z-index:3;inset:0 0 0 2px;padding:1px;pointer-events:none;background:conic-gradient(from var(--silver-angle),#4e5864 0deg,#9da9b5 32deg,#fff 43deg,#77828e 54deg,#4b5560 112deg,#b4bec8 169deg,#fff 180deg,#65707c 191deg,#4b5560 252deg,#aeb9c4 305deg,#fff 316deg,#5c6672 328deg,#4e5864 360deg);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;filter:drop-shadow(0 0 3px rgba(241,247,253,.42));animation:silver-frame-flow 6.5s linear infinite}
.premium-dialog::after{content:"";position:absolute;z-index:4;top:calc(var(--dialog-cut) - 1px);right:0;width:68px;height:1px;pointer-events:none;transform:rotate(45deg);transform-origin:right center;background:linear-gradient(90deg,rgba(105,115,126,.65),#f9fcff 52%,rgba(138,149,161,.72));box-shadow:0 0 4px rgba(238,246,255,.25)}
.premium-dialog[open]{animation:dialog-in .32s ease-out,dialog-sheen 8s ease-in-out .32s infinite alternate}
@keyframes dialog-sheen{from{background-position:-70% 0,0 0}to{background-position:145% 0,0 0}}
.premium-dialog::backdrop{background:rgba(0,0,0,.68);backdrop-filter:blur(9px)}
.dialog-ornament{display:none}
.dialog-kicker{color:#ff9aa7}
.dialog-booking-details{border-color:rgba(255,255,255,.22)}
@media(max-width:760px){.premium-dialog{--dialog-cut:32px}.dialog-agree{width:100%;max-width:410px;min-width:0}}
@media(prefers-reduced-motion:reduce){.premium-dialog::before{animation:none}.premium-dialog[open]{animation:dialog-in .01s ease-out}}

@property --day-gold-angle{syntax:"<angle>";initial-value:0deg;inherits:false}
.day.is-selected{border:2px solid transparent!important;color:#fff!important;background:linear-gradient(145deg,#2c2922 0%,#080808 68%) padding-box,conic-gradient(from var(--day-gold-angle),#8b6110 0deg,#e5b940 54deg,#fff2a6 76deg,#b77e10 104deg,#efd064 162deg,#7d560c 218deg,#fff0a0 278deg,#c58c18 318deg,#8b6110 360deg) border-box!important;box-shadow:0 0 0 1px rgba(120,82,12,.55),0 8px 22px rgba(0,0,0,.24),0 0 17px rgba(225,178,45,.48),0 0 32px rgba(211,159,24,.2);animation:day-gold-flow 3.8s linear infinite}
@keyframes day-gold-flow{to{--day-gold-angle:360deg}}
@media(prefers-reduced-motion:reduce){.day.is-selected{animation:none}}

/* Keep the booking surfaces black even when they sit over a bright background. */
.summary-card{
  background:linear-gradient(110deg,rgba(0,0,0,.92),rgba(0,0,0,.84));
}
.premium-dialog{
  background:linear-gradient(112deg,transparent 16%,rgba(245,249,255,.06) 42%,transparent 67%),linear-gradient(110deg,rgba(0,0,0,.92),rgba(0,0,0,.84));
}

/* Branded booking background with a protected logo area above the copy. */
body{
  background-color:#020202;
  background-image:url('brand-pages-background.png');
  background-position:center top;
  background-size:cover;
  background-attachment:fixed;
  background-repeat:no-repeat;
}
.booking-hero{
  min-height:800px;
  background-color:#020202;
  background-image:url('brand-pages-background.png');
  background-position:center center;
  background-size:cover;
  background-repeat:no-repeat;
}
.booking-hero::before{
  background:linear-gradient(180deg,rgba(0,0,0,.02) 0%,rgba(0,0,0,.06) 46%,rgba(0,0,0,.7) 68%,rgba(0,0,0,.95) 100%);
}
.booking-intro{
  padding:490px 0 70px;
}
.booking-intro h1{
  max-width:760px;
  font-size:clamp(3.1rem,5.5vw,5.7rem);
}
@media(max-width:900px){
  body{background-size:auto 100vh;background-position:center top}
  .booking-hero{
    min-height:700px;
    background-size:100% auto;
    background-position:center 22px;
  }
  .booking-hero::before{
    background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.03) 36%,rgba(0,0,0,.76) 54%,rgba(0,0,0,.96) 100%);
  }
  .booking-intro{
    padding:calc(59vw + 34px) 0 58px;
  }
}
@media(max-width:430px){
  .booking-hero{min-height:710px;background-size:auto 420px;background-position:center top}
  .booking-intro{padding:300px 0 50px}
  .booking-intro h1{font-size:clamp(2.35rem,11vw,3.2rem);line-height:1.02}
  .booking-intro p{font-size:.95rem;line-height:1.55}
}

/* The branded wall stays fixed while the booking page scrolls. */
body{
  position:relative;
  isolation:isolate;
  background:none!important;
}
body::before{
  content:"";
  position:fixed;
  z-index:-2;
  inset:0;
  background:#020202 url('brand-pages-background.png') center center/cover no-repeat;
  pointer-events:none;
}
.booking-hero{
  background-color:transparent;
  background-image:none;
}
@media(max-width:900px){
  body::before{background-position:center 82px;background-size:100% auto}
}
@media(max-width:700px){
  body::before{
    background-image:url('brand-pages-mobile.png');
    background-position:center 12px;
    background-size:auto 535px;
  }
  .booking-hero{min-height:0}
  .booking-intro{padding:190px 0 26px}
  .booking-section{padding-top:28px}
  header .brand{display:none}
  header .nav{justify-content:flex-start}
}
@media(max-width:430px){
  .booking-hero{background-image:none;min-height:0}
}
@media(max-width:360px){
  body::before{background-size:auto 500px}
  .booking-intro{padding-top:175px}
}

/* Match the main hero plaque around the booking introduction. */
.booking-intro-panel{
  --panel-cut:26px;
  --panel-cut-line:37px;
  position:relative;
  overflow:hidden;
  padding:42px 48px 46px;
  color:#fff;
  background:linear-gradient(110deg,rgba(3,4,5,.64),rgba(3,4,5,.46));
  border:1px solid rgba(137,147,159,.78);
  border-left:3px solid var(--red);
  clip-path:polygon(0 0,calc(100% - var(--panel-cut)) 0,100% var(--panel-cut),100% 100%,0 100%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.025),inset 0 1px 0 rgba(255,255,255,.08),0 0 0 5px rgba(31,39,53,.24),0 0 0 6px rgba(112,126,148,.10),0 22px 64px rgba(0,0,0,.34);
  -webkit-backdrop-filter:blur(6px);
  backdrop-filter:blur(6px);
}
.booking-intro-panel::before{
  content:"";
  position:absolute;
  z-index:3;
  inset:0 0 0 2px;
  padding:1px;
  pointer-events:none;
  background:conic-gradient(from var(--silver-angle),#555e69 0deg,#919ca8 34deg,#fbfdff 44deg,#727c87 54deg,#4d5661 112deg,#a8b2bd 170deg,#fff 180deg,#6b7580 190deg,#4c5560 252deg,#9da8b4 306deg,#f8fbff 316deg,#59636e 326deg,#555e69 360deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  animation:silver-frame-flow 7s linear infinite;
}
.booking-intro-panel::after{
  content:"";
  position:absolute;
  z-index:4;
  top:calc(var(--panel-cut) - 1px);
  right:0;
  width:var(--panel-cut-line);
  height:1px;
  pointer-events:none;
  transform:rotate(45deg);
  transform-origin:right center;
  background:linear-gradient(90deg,#69737e,#f9fcff 48%,#8a95a1);
  box-shadow:0 0 4px rgba(238,246,255,.34);
}
@media(max-width:760px){
  .booking-intro-panel{--panel-cut:18px;--panel-cut-line:26px;padding:30px 26px 34px}
}
@media(max-width:430px){
  .booking-intro-panel{padding:26px 20px 30px}
}
@media(prefers-reduced-motion:reduce){
  .booking-intro-panel::before{animation:none}
}

/* Keep calendar labels readable over the branded background. */
.booking-success{margin:14px 0 0;color:#f7e6b8;font-size:.9rem;line-height:1.5}
.calendar-card{
  background:linear-gradient(90deg,rgba(255,255,255,.98),rgba(255,255,255,.93) 58%,rgba(255,255,255,.88));
}
.weekdays{color:#525a60}
.day:disabled{color:#687078}
.calendar-legend{color:#535b61}
.calendar-nav button:disabled{opacity:.55}

/* Dark dates are readable without an outline; weekends stay visibly closed. */
.weekdays span:nth-last-child(-n+2){color:#9c6b72}
.day.is-available:not(.is-selected){
  color:#111315;
  font-weight:700;
  background:transparent;
  border-color:transparent;
  box-shadow:none;
}
.day.is-available:not(.is-selected):hover{
  background:rgba(255,255,255,.6);
  border-color:rgba(25,27,29,.25);
  box-shadow:0 4px 14px rgba(0,0,0,.10);
}
.calendar-legend .available-dot{border-color:#24282b}
.day.is-weekend:disabled{color:#aeb2b5;background:rgba(225,228,230,.28)}

/* Mobile month swipe mirrors the calendar motion in the personal schedule. */
.calendar-swipe{overflow:hidden;touch-action:pan-y}
.calendar-page.slide-next{animation:booking-month-next .34s cubic-bezier(.22,1,.36,1) both}
.calendar-page.slide-prev{animation:booking-month-prev .34s cubic-bezier(.22,1,.36,1) both}
@keyframes booking-month-next{from{opacity:.35;transform:translateX(22px)}to{opacity:1;transform:translateX(0)}}
@keyframes booking-month-prev{from{opacity:.35;transform:translateX(-22px)}to{opacity:1;transform:translateX(0)}}
@media(prefers-reduced-motion:reduce){.calendar-page.slide-next,.calendar-page.slide-prev{animation:none}}

.booking-intro .consultation-price{
  margin-top:21px;
  color:#f1dbaa;
  font-size:.98rem;
  font-weight:700;
  letter-spacing:.025em;
}
.booking-intro .consultation-duration{
  margin-top:4px;
  color:#e0e3e5;
  font-size:.94rem;
}
.phone-field.is-inactive{opacity:.58}
.phone-field.is-inactive input{cursor:not-allowed}
.phone-field:not(.is-inactive)>span{color:#d9dcdd}

/* payment-success-dialog-v1 */
#payment-success-dialog {
  box-sizing: border-box;
  inset: 0;
  margin: auto;
  width: min(520px, calc(100% - 40px));
  max-width: calc(100% - 40px);
  max-height: calc(100vh - 40px);
  max-height: calc(100dvh - 40px);
  padding: 42px 38px 36px;
  overflow-y: auto;
  background: linear-gradient(112deg, transparent 16%, rgba(245,249,255,.06) 42%, transparent 67%), linear-gradient(110deg, rgba(0,0,0,.86), rgba(0,0,0,.76));
  background-size: 220% 100%, 100% 100%;
}
#payment-success-dialog h2 {
  margin: 18px 0 0;
  font-size: clamp(1.7rem, 4.8vw, 2.35rem);
  line-height: 1.1;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}
#payment-success-dialog .dialog-booking-details { margin: 24px auto; }
#payment-success-dialog .dialog-booking-details strong { font-size: 1.04rem; }
#payment-success-dialog p { font-size: .94rem; line-height: 1.65; }
#payment-success-dialog .dialog-actions { margin-top: 26px; }
#payment-success-dialog .payment-success-home {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  box-sizing: border-box;
  width: min(250px, 100%);
  min-width: 0;
  min-height: 46px;
  margin: 0;
  padding: 12px 22px;
  font-size: .85rem;
  line-height: 1.3;
  text-decoration: none;
}
@media (max-width: 760px) {
  #payment-success-dialog {
    --dialog-cut: 26px;
    width: calc(100% - 32px);
    max-width: 440px;
    padding: 34px 24px 28px;
    max-height: calc(100vh - 32px);
    max-height: calc(100dvh - 32px);
  }
  #payment-success-dialog .dialog-kicker { font-size: .65rem; letter-spacing: .13em; }
  #payment-success-dialog .dialog-booking-details div { grid-template-columns: 95px 1fr; gap: 12px; }
  #payment-success-dialog .dialog-booking-details { margin: 20px auto; }
}
@media (prefers-reduced-motion: reduce) {
  #payment-success-dialog[open], #payment-success-dialog::before { animation: none; }
}

/* Required contact field follows the selected contact option. */
.summary-card .phone-field input:required:not(:disabled){
  border-color:#e0b842;
  background:linear-gradient(145deg,rgba(66,58,36,.7),rgba(13,13,12,.96));
  box-shadow:0 0 0 1px rgba(129,86,8,.65),0 0 20px rgba(224,178,41,.28);
}
.summary-card .phone-field input:required:not(:disabled):focus{
  border-color:#f5d878;
  box-shadow:0 0 0 1px rgba(224,184,66,.7),0 0 22px rgba(224,178,41,.32);
}

/* Combined checkout demonstration: the same glass and silver frame as the home plaque. */
#confirmation-dialog{--dialog-cut:20px;width:min(480px,calc(100% - 32px));max-height:calc(100dvh - 32px);box-sizing:border-box;padding:28px 34px 25px;overflow-y:auto;border-left-width:2px;scrollbar-width:thin;text-align:center;}
#confirmation-dialog::after{width:29px;}
#confirmation-dialog .payment-brand-logo{display:block;width:min(245px,76%);height:auto;margin:0 auto 18px;}
#confirmation-dialog h2{font-size:clamp(1.65rem,6vw,2.15rem);line-height:1.12;margin:0 0 18px;}
#confirmation-dialog .dialog-booking-details{margin:0;padding:12px 0;border-bottom:0;}
#confirmation-dialog .dialog-booking-details div{grid-template-columns:150px 1fr;gap:12px;padding:4px 0;}
#confirmation-dialog .dialog-booking-details span{font-size:.62rem;letter-spacing:.045em;align-self:center;}
#confirmation-dialog .dialog-booking-details strong{font-family:inherit;font-size:.87rem;line-height:1.35;}
#confirmation-dialog .payment-amount{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0 18px;border-bottom:1px solid rgba(255,255,255,.2);text-align:left;}
#confirmation-dialog .payment-amount span{font-size:.78rem;color:#c3c3c3;}
#confirmation-dialog .payment-amount strong{color:#efd596;font:400 1.65rem/1 Georgia,serif;white-space:nowrap;}
#confirmation-dialog .payment-methods{border:0;padding:0;margin:18px 0;text-align:left;min-width:0;}
#confirmation-dialog .payment-methods legend{font-size:.66rem;font-weight:700;color:#bfc1c4;letter-spacing:.1em;text-transform:uppercase;margin-bottom:12px;}
#confirmation-dialog .payment-method-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;}
#confirmation-dialog .payment-method-grid label{position:relative;cursor:pointer;min-width:0;}
#confirmation-dialog .payment-method-grid input{position:absolute;opacity:0;width:1px;height:1px;}
#confirmation-dialog .payment-method-grid span{display:flex;justify-content:center;align-items:center;min-height:43px;padding:5px 8px;box-sizing:border-box;border:1px solid rgba(181,188,195,.3);border-radius:9px;color:#d4d4d4;font-size:.78rem;font-weight:600;background:rgba(255,255,255,.035);transition:border-color .2s,background .2s;}
#confirmation-dialog .payment-method-grid input:checked+span{color:#f3dfb0;border-color:#cfa94d;background:linear-gradient(135deg,rgba(202,157,53,.14),rgba(0,0,0,.3));}
#confirmation-dialog .payment-method-grid input:focus-visible+span{outline:2px solid #eee;outline-offset:3px;}
#confirmation-dialog .terms-consent{display:flex;align-items:flex-start;gap:9px;margin:15px 0 0;text-align:left;}
#confirmation-dialog .terms-consent input{accent-color:#d1ad52;width:15px;height:15px;flex:0 0 15px;margin:3px 0 0;}
#confirmation-dialog .terms-consent span{font-size:.69rem;line-height:1.6;color:#bcbcbc;letter-spacing:0;font-weight:400;text-transform:none;}
#confirmation-dialog .terms-consent a{color:inherit;text-decoration:underline;text-underline-offset:3px;}
#confirmation-dialog .dialog-actions{gap:9px;margin-top:20px;}
#confirmation-dialog .dialog-agree{width:auto;max-width:230px;min-width:190px;min-height:44px;padding:10px 20px;font-size:.85rem;text-align:center;}
#confirmation-dialog .dialog-agree:disabled{cursor:not-allowed;}
#confirmation-dialog .dialog-back{font-size:.72rem;padding:6px 8px;}
#confirmation-dialog .payment-provider{font-size:.65rem;line-height:1.5;color:#999;margin:15px auto 0;}
@media(max-width:480px){#confirmation-dialog{padding:24px 22px 20px;max-height:calc(100dvh - 24px);width:calc(100% - 32px);--dialog-cut:18px;}#confirmation-dialog .payment-brand-logo{width:215px;max-width:78%;margin-bottom:15px;}#confirmation-dialog .dialog-booking-details div{grid-template-columns:138px 1fr;gap:8px;}#confirmation-dialog .dialog-booking-details span{font-size:.59rem;}#confirmation-dialog .dialog-booking-details strong{font-size:.78rem;}#confirmation-dialog .dialog-agree{min-width:180px;max-width:215px;}#confirmation-dialog .payment-method-grid span{font-size:.73rem;}}

/* Attach the entire frame to the scrolling content, not the dialog viewport. */
#confirmation-dialog{padding:0;border:0;clip-path:none;background:transparent!important;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;overflow-x:hidden;}
#confirmation-dialog::before,#confirmation-dialog::after{content:none;display:none;}
#confirmation-dialog .payment-panel{position:relative;isolation:isolate;padding:28px 34px 25px;border:1px solid rgba(166,178,190,.7);border-left:2px solid var(--red);background:linear-gradient(112deg,rgba(0,0,0,.76),rgba(0,0,0,.62));backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);clip-path:polygon(0 0,calc(100% - var(--dialog-cut)) 0,100% var(--dialog-cut),100% 100%,0 100%);}
#confirmation-dialog .payment-panel::before{content:"";position:absolute;z-index:0;inset:0;padding:1px;pointer-events:none;background:conic-gradient(from var(--silver-angle),#56616c,#b5bec7 32deg,#fff 43deg,#697580 54deg,#4e5964 112deg,#aeb8c2 169deg,#fff 180deg,#65707c 191deg,#4b5560 252deg,#aeb9c4 305deg,#fff 316deg,#56616c 360deg);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:silver-frame-flow 6.5s linear infinite;}
#confirmation-dialog .payment-panel::after{content:"";position:absolute;top:calc(var(--dialog-cut) - 1px);right:0;width:calc(var(--dialog-cut) * 1.4142);height:1px;transform:rotate(45deg);transform-origin:right center;background:#b5bec7;pointer-events:none;}
@media(max-width:480px){#confirmation-dialog{padding:0;}#confirmation-dialog .payment-panel{padding:24px 22px 20px;}}
@media(prefers-reduced-motion:reduce){#confirmation-dialog .payment-panel::before{animation:none;}}

/* Restrained gold outlines on payment methods, including keyboard focus. */
#confirmation-dialog .payment-method-grid span{border-color:rgba(185,154,106,.45);}
#confirmation-dialog .payment-method-grid input:checked+span{border-color:#b99a6a;box-shadow:none;}
#confirmation-dialog .payment-method-grid input:focus-visible+span{outline:1px solid #b99a6a;outline-offset:3px;}

/* Gold means selected; focus on an unselected method stays neutral. */
#confirmation-dialog .payment-method-grid input:not(:checked)+span{border-color:rgba(181,188,195,.3);background:rgba(255,255,255,.035);color:#d4d4d4;box-shadow:none;}
#confirmation-dialog .payment-method-grid input:not(:checked):focus-visible+span{outline:1px dotted #8c9298;outline-offset:3px;}
#confirmation-dialog .payment-method-grid input:checked:focus-visible+span{outline:none;}

/* More readable payment typography, matching the booking page. */
#confirmation-dialog .dialog-booking-details span{font-size:.76rem;letter-spacing:.025em;}
#confirmation-dialog .dialog-booking-details strong{font-size:1rem;}
#confirmation-dialog .payment-amount span{font-size:.94rem;}
#confirmation-dialog .payment-methods legend{font-size:.8rem;}
#confirmation-dialog .payment-method-grid span{font-size:.9rem;min-height:46px;}
#confirmation-dialog .terms-consent span{font-size:.83rem;line-height:1.6;}
#confirmation-dialog .dialog-back{font-size:.85rem;}
#confirmation-dialog .payment-provider{font-size:.79rem;}
#confirmation-dialog .dialog-agree{font-size:.94rem;}
@media(max-width:480px){#confirmation-dialog .dialog-booking-details span{font-size:.72rem;}#confirmation-dialog .dialog-booking-details strong{font-size:.94rem;}#confirmation-dialog .payment-method-grid span{font-size:.86rem;}#confirmation-dialog .terms-consent span{font-size:.8rem;}#confirmation-dialog .payment-provider{font-size:.75rem;}}

/* Let the label column size to its text instead of crossing into the value. */
@media(max-width:480px){
  #confirmation-dialog .payment-panel{padding-left:20px;padding-right:20px;}
  #confirmation-dialog .dialog-booking-details div{grid-template-columns:max-content minmax(0,1fr);column-gap:24px;row-gap:6px;padding:6px 0;align-items:start;}
  #confirmation-dialog .dialog-booking-details span{font-size:.86rem;letter-spacing:0;line-height:1.5;white-space:nowrap;}
  #confirmation-dialog .dialog-booking-details strong{font-size:1.06rem;line-height:1.5;min-width:0;}
  #confirmation-dialog #dialog-date,#confirmation-dialog #dialog-time{white-space:nowrap;}
  #confirmation-dialog .payment-methods legend{font-size:.9rem;}
  #confirmation-dialog .payment-method-grid span{font-size:.94rem;}
  #confirmation-dialog .terms-consent span{font-size:.9rem;}
  #confirmation-dialog .payment-provider{font-size:.86rem;}
  #confirmation-dialog .dialog-back{font-size:.92rem;}
  #confirmation-dialog .dialog-agree{font-size:1rem;}
}
@media(max-width:360px){
  #confirmation-dialog .payment-panel{padding-left:16px;padding-right:16px;}
  #confirmation-dialog .dialog-booking-details div{column-gap:18px;}
  #confirmation-dialog .dialog-booking-details span{font-size:.84rem;text-transform:none;}
  #confirmation-dialog .dialog-booking-details strong{font-size:.98rem;}
  #confirmation-dialog .payment-method-grid span{font-size:.88rem;}
}

@media(max-width:480px){
  #confirmation-dialog .dialog-booking-details{display:grid;grid-template-columns:max-content minmax(0,1fr);column-gap:24px;row-gap:10px;padding:18px 0;}
  #confirmation-dialog .dialog-booking-details div{display:contents;}
}
@media(max-width:360px){#confirmation-dialog .dialog-booking-details{column-gap:18px;}}

#confirmation-dialog .payment-question-note{margin:16px 0;color:#ddd;font-size:.94rem;line-height:1.5;text-align:left;}
#confirmation-dialog .payment-question-note a{color:#d8c27e;text-decoration:underline;text-underline-offset:3px;}

/* Booking header follows the left-aligned back navigation. */
header .nav{justify-content:flex-start;}

:is(.booking-success,.dialog-error) :is(.payment-resume-link,.payment-check-button){
display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:min(240px,100%);min-height:54px;margin:22px 0 0;padding:12px 20px;font-family:inherit;font-size:.875rem;font-weight:800;line-height:1.35;text-align:center;
}
:is(.booking-success,.dialog-error) :is(.payment-resume-link,.payment-check-button)+:is(.payment-resume-link,.payment-check-button){margin-top:16px;}

/* Today in Moscow */
.day.is-today{position:relative;}
.day.is-today::after{content:"";position:absolute;left:50%;bottom:6px;width:18px;height:2px;border-radius:2px;background:#dc1733;transform:translateX(-50%);pointer-events:none;}

/* gold-consent-checkbox-20261003 */
#confirmation-dialog .terms-consent input[type="checkbox"],
#payment-consent {
  appearance: none;
  -webkit-appearance: none;
  border: 1px solid #d1ad52;
  border-radius: 2px;
  background: rgba(16, 13, 5, .65);
  box-shadow: 0 0 5px rgba(209, 173, 82, .15);
  cursor: pointer;
}
#confirmation-dialog .terms-consent input[type="checkbox"]:checked,
#payment-consent:checked {
  background-color: #d1ad52;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8l3 3 7-7' fill='none' stroke='%23181004' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-size: 100% 100%;
}
#confirmation-dialog .terms-consent input[type="checkbox"]:focus-visible,
#payment-consent:focus-visible { outline: 2px solid #efd786; outline-offset: 3px; }

/* bright-today-underline-20261004 */
.day.is-today::after { background: #ff2949; box-shadow: 0 0 4px rgba(255, 41, 73, .45); }

/* Optional contact fields and required marker. */
.summary-card .phone-field:has(input:required)>span::after{content:" *";color:#ff2949;font-weight:700;}
