/* ABFI booking block (abfi-book.js): the landing page calendar in the site's paper-card look */
.abk{display:block;background:var(--paper,#FFFDF8);color:var(--ink,#102234);border-radius:6px;box-shadow:0 30px 80px rgba(0,0,0,.35);position:relative;padding:22px 22px 18px;max-width:560px;width:100%;font:16px/1.5 var(--sans,Inter,system-ui,sans-serif);text-align:left}
.abk *{box-sizing:border-box}
.abk.busy::after{content:"";position:absolute;inset:0;border-radius:inherit;background:rgba(255,253,248,.55);pointer-events:none}
.abk__top{display:flex;gap:12px;align-items:flex-start;margin-bottom:12px}
.abk__ico{flex:none;width:40px;height:40px;border-radius:6px;display:grid;place-items:center;background:var(--deep,#071D36);color:var(--gold,#E4BB4C)}
.abk__ico svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.abk__title{display:block;font-family:var(--serif,Georgia,serif);font-weight:400;font-size:24px;line-height:1.15;color:var(--ink,#102234)}
.abk__sub{display:block;margin-top:3px;font-size:14px;color:var(--mute,#5B6878)}
.abk__meta{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0 12px;border-bottom:1px solid var(--paper-line,#E6DFCF);margin-bottom:14px;font-size:13px;color:var(--mute,#5B6878)}
.abk__meta b{color:var(--ink,#102234);font-weight:600}
.abk__steps{display:flex;gap:5px}.abk__steps i{width:22px;height:4px;border-radius:2px;background:var(--paper-line,#E6DFCF)}.abk__steps i.on{background:var(--gold,#E4BB4C)}
.abk__pane{display:none}.abk__pane.on{display:block;animation:abkIn .25s ease}
@keyframes abkIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.abk__head,.abk__row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.abk__head b,.abk__row b{font-weight:600;font-size:16px;outline:none}
.abk__nav{display:flex;gap:6px}
.abk__nav button{width:34px;height:34px;border-radius:4px;border:1.5px solid #DCD4C3;background:#fff;color:var(--navy,#0B2F56);font-size:20px;line-height:1;cursor:pointer}
.abk__nav button:hover:not(:disabled){border-color:var(--navy,#0B2F56)}.abk__nav button:disabled{opacity:.35;cursor:default}
.abk__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.abk__dow{text-align:center;font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--mute,#5B6878);padding:2px 0 4px}
.abk__day{aspect-ratio:1/1;max-height:46px;border:0;border-radius:4px;background:transparent;font:inherit;font-size:14px;color:#A7AFB9;cursor:default;position:relative}
.abk__day.open{background:#FFF6DC;color:var(--ink,#102234);font-weight:600;cursor:pointer;box-shadow:inset 0 0 0 1.5px rgba(228,187,76,.75)}
.abk__day.open:hover{background:var(--gold,#E4BB4C)}
.abk__day.today::after{content:"";position:absolute;left:50%;bottom:5px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--navy,#0B2F56)}
.abk__day.sel{background:var(--deep,#071D36);color:var(--ivory,#F8F3E8);box-shadow:none}
.abk__slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-height:260px;overflow:auto;padding:2px}
.abk__slot{height:44px;border-radius:4px;border:1.5px solid #DCD4C3;background:#fff;font:inherit;font-size:15px;font-weight:600;color:var(--navy,#0B2F56);cursor:pointer}
.abk__slot:hover{border-color:var(--navy,#0B2F56)}.abk__slot.sel{background:var(--deep,#071D36);border-color:var(--deep,#071D36);color:var(--ivory,#F8F3E8)}
.abk__back{border:0;background:none;font:inherit;font-size:14px;font-weight:600;color:#1F4FBF;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:4px 0}
.abk__sum{margin:0 0 14px;padding:10px 12px;border-left:3px solid var(--gold,#E4BB4C);background:#FBF6EA;font-size:15px}.abk__sum span{color:var(--mute,#5B6878);font-size:13px}
.abk__form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.abk .fld{display:grid;gap:6px;min-width:0}.abk .fld--full{grid-column:1/-1}
.abk .fld label{font-size:14px;font-weight:600}
.abk .fld input,.abk .fld select,.abk .fld textarea{width:100%;font:inherit;font-size:16px;color:var(--ink,#102234);background:#fff;border:1.5px solid #DCD4C3;border-radius:4px;padding:11px 13px;transition:border-color .2s,box-shadow .2s}
.abk .fld textarea{resize:vertical;min-height:84px}
.abk .fld input:focus,.abk .fld select:focus,.abk .fld textarea:focus{outline:none;border-color:var(--navy,#0B2F56);box-shadow:0 0 0 3px rgba(47,107,255,.15)}
.abk .fld.bad input,.abk .fld.bad select,.abk .fld.bad textarea{border-color:var(--copper,#A44B26);box-shadow:0 0 0 3px rgba(164,75,38,.12)}
.abk__sms{grid-column:1/-1;display:flex;gap:10px;align-items:flex-start;font-size:13px;line-height:1.5;color:var(--mute,#5B6878);cursor:pointer}
.abk__sms input{flex:none;width:18px;height:18px;margin:1px 0 0;accent-color:var(--navy,#0B2F56)}
.abk__go{grid-column:1/-1;width:100%;height:50px;border:0;cursor:pointer;font-family:inherit}
.abk__go:disabled{opacity:.6;cursor:wait}
.abk__fine{grid-column:1/-1;margin:0;font-size:12.5px;color:var(--mute,#5B6878);text-align:center}.abk__fine a{color:var(--navy,#0B2F56)}
.abk__st{grid-column:1/-1;margin:10px 0 0;min-height:1em;font-size:14px;font-weight:600;color:var(--navy,#0B2F56)}.abk__st.bad{color:var(--copper,#A44B26)}
.abk__done{text-align:center;padding:18px 6px 8px}
.abk__done span{display:inline-grid;place-items:center;width:58px;height:58px;border-radius:50%;background:var(--gold,#E4BB4C);color:var(--deep,#071D36);font-size:28px;font-weight:700;box-shadow:0 0 0 7px rgba(228,187,76,.18);margin-bottom:14px}
.abk__done h3{font-family:var(--serif,Georgia,serif);font-weight:400;font-size:28px;margin:0 0 8px;color:var(--ink,#102234)}
.abk__done p{margin:0;color:var(--mute,#5B6878)}.abk__done strong{color:var(--ink,#102234)}
.abk__help{margin:12px 0 0;font-size:13px;color:var(--mute,#5B6878)}.abk__help a{color:var(--navy,#0B2F56);font-weight:600}
.abk__help[hidden]{display:none}
.abk button:focus-visible,.abk a:focus-visible{outline:2px solid var(--navy,#0B2F56);outline-offset:2px}
@media(max-width:560px){.abk{padding:18px 16px 14px}.abk__title{font-size:21px}.abk__form{grid-template-columns:minmax(0,1fr)}.abk__slots{grid-template-columns:repeat(2,minmax(0,1fr))}.abk__meta{flex-wrap:wrap}}
/* popup */
html.abk-lock{overflow:hidden}
.abk-pop{position:fixed;inset:0;z-index:2147483000;display:grid;place-items:center;padding:16px}
.abk-pop[hidden]{display:none}
.abk-pop__bg{position:absolute;inset:0;background:rgba(4,14,27,.72);backdrop-filter:blur(3px)}
.abk-pop__box{position:relative;width:min(560px,100%);max-height:calc(100dvh - 32px);overflow:auto;border-radius:6px;overscroll-behavior:contain}
.abk-pop__box .abk{max-width:none;box-shadow:0 30px 90px rgba(0,0,0,.5)}
.abk-pop__x{position:absolute;top:8px;right:8px;z-index:2;width:36px;height:36px;border:0;border-radius:50%;background:transparent;color:var(--ink,#102234);font-size:26px;line-height:1;cursor:pointer}
.abk-pop__x:hover{background:#F1EBDD}
.abk-pop .abk__top{padding-right:34px}
@media(prefers-reduced-motion:reduce){.abk__pane.on{animation:none}}
/* Contact page: booking first, written inquiry second */
.csec .abk{margin-left:auto}
.cform--alt{max-width:none}
/* Contact hero: intro and details on the left, calendar on the right; on phones the calendar comes right after the intro */
.csec--book{grid-template-areas:"top book" "more book";grid-template-rows:auto 1fr;row-gap:0}
.csec--book .csec__top{grid-area:top}.csec--book .csec__more{grid-area:more}.csec--book .abk{grid-area:book;align-self:start}
.csec--book .lede a{color:var(--gold,#E4BB4C);text-decoration:underline;text-underline-offset:3px}
@media(max-width:1100px){.csec--book{grid-template-areas:"top" "book" "more";grid-template-rows:none;row-gap:32px}.csec .abk{margin:0 auto}}
