/* iDEO booking panel on the other pages. Generated by tools/book.py from home.css. */
body .os-book{--gap:clamp(72px,4.2vw + 52px,112px)}
body .ideo-home .label { font-size: 10.5px; font-weight: 700; letter-spacing: 0.26em; text-transform: uppercase; }
body .ideo-home .modal { position: fixed; inset: 0px; z-index: 90; display: none; }
body .ideo-home .modal.open { display: block; }
body .ideo-home .modal-bg { position: absolute; inset: 0px; background: rgba(4, 7, 8, 0.66); backdrop-filter: blur(18px) saturate(115%); }
body .ideo-home .modal-card { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: min(720px, -32px + 100vw); max-height: min(88svh, 880px); overflow: hidden auto; background: rgba(7, 12, 13, 0.42); backdrop-filter: blur(46px) saturate(150%); border: 1px solid rgba(248, 243, 237, 0.2); color: var(--light); border-radius: 18px; box-shadow: rgba(255, 255, 255, 0.14) 0px 1px 0px inset, rgba(0, 0, 0, 0.9) 0px 50px 140px -46px; animation: ideo-pop .55s var(--ease-out); }
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){body .ideo-home .modal-card { background: rgba(7, 12, 13, 0.94); }}
body .ideo-home .modal-bar { position: sticky; top: 0px; z-index: 6; display: flex; justify-content: flex-end; padding: 14px 14px 10px; background: linear-gradient(rgba(7, 12, 13, 0.78) 56%, rgba(7, 12, 13, 0)); backdrop-filter: blur(10px); }
body .ideo-home .modal-close { width: 42px; height: 42px; border-radius: 50%; border: 1px solid rgba(248, 243, 237, 0.34); background: rgba(248, 243, 237, 0.08); cursor: pointer; font-family: var(--serif); font-size: 21px; line-height: 1; color: var(--light); transition: background .3s var(--ease),border-color .3s var(--ease),color .3s var(--ease),transform .3s var(--ease); }
body .ideo-home .modal-close:hover { background: var(--light); border-color: var(--light); color: var(--ink); transform: rotate(90deg); }
body .ideo-home .modal-body { padding: 0px clamp(22px, 3.2vw, 44px) clamp(26px, 3.2vw, 40px); min-width: 0px; }
body .ideo-home .modal-card h2 { margin: 0px; font-weight: 400; font-size: clamp(24px, 2.7vw, 35px); line-height: 1.14; letter-spacing: -0.02em; text-shadow: rgba(3, 5, 5, 0.5) 0px 2px 20px; }
body .ideo-home .modal-card h2 em { font-style: italic; color: var(--crimson); }
body .ideo-home .modal-card .kicker { color: rgba(248, 243, 237, 0.66); display: block; margin-bottom: 12px; }
body .ideo-home .modal-card .lede { margin: 14px 0px 0px; color: rgba(248, 243, 237, 0.84); max-width: 54ch; font-size: 16.5px; }
body .ideo-home .brandname { white-space: nowrap; text-transform: none; letter-spacing: 0.03em; }
body .ideo-home form { display: grid; grid-template-columns: minmax(0px, 1fr); gap: 20px; margin-top: 26px; }
body .ideo-home .row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
body .ideo-home .field { display: flex; flex-direction: column; gap: 6px; min-width: 0px; }
body .ideo-home .field label { color: rgba(248, 243, 237, 0.82); font-size: 10.5px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; }
body .ideo-home .field label i { font-style: normal; font-weight: 400; letter-spacing: 0.06em; text-transform: none; opacity: 0.7; }
body .ideo-home .field input, body .ideo-home .field textarea { font-family: var(--serif); font-size: 17px; color: var(--light); background: transparent; border-width: 0px 0px 1px; border-top-style: initial; border-right-style: initial; border-left-style: initial; border-top-color: initial; border-right-color: initial; border-left-color: initial; border-image: initial; border-bottom-style: solid; border-bottom-color: rgba(248, 243, 237, 0.34); padding: 8px 2px; border-radius: 0px; width: 100%; transition: border-color .3s var(--ease); }
body .ideo-home .field textarea { resize: vertical; min-height: 56px; line-height: 1.5; }
body .ideo-home .field input:focus, body .ideo-home .field textarea:focus { outline: none; border-bottom-color: var(--crimson); }
body .ideo-home .field input::placeholder, body .ideo-home .field textarea::placeholder { color: rgba(248, 243, 237, 0.45); }
body .ideo-home .when-block { display: grid; grid-template-columns: minmax(0px, 1fr); gap: 18px; padding: 20px; border-radius: 14px; border: 1px solid rgba(248, 243, 237, 0.16); background: rgba(248, 243, 237, 0.07); }
body .ideo-home .when-block > div { min-width: 0px; }
body .ideo-home .when-block .label { color: rgba(248, 243, 237, 0.7); }
body .ideo-home .day-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0px 0px 9px; }
body .ideo-home .day-head .label { margin: 0px; }
body .ideo-home .month-nav { display: flex; align-items: center; gap: 6px; }
body .ideo-home .month-nav b { font-weight: 400; font-size: 14.5px; min-width: 10ch; text-align: center; white-space: nowrap; }
body .ideo-home .month-nav button { width: 30px; height: 30px; border-radius: 50%; border: 1px solid rgba(248, 243, 237, 0.3); background: transparent; cursor: pointer; font-family: var(--serif); font-size: 15px; line-height: 1; color: var(--light); transition: background .25s var(--ease),border-color .25s var(--ease),color .25s var(--ease); }
body .ideo-home .month-nav button:hover:not(:disabled) { background: var(--light); border-color: var(--light); color: var(--ink); }
body .ideo-home .month-nav button:disabled { opacity: 0.28; cursor: not-allowed; }
body .ideo-home .days-row { display: flex; gap: 8px; min-width: 0px; overflow-x: auto; padding-bottom: 3px; scrollbar-width: none; }
body .ideo-home .days-row::-webkit-scrollbar { display: none; }
body .ideo-home .day-chip { flex: 0 0 auto; padding: 9px 14px; border-radius: 999px; border: 1px solid rgba(248, 243, 237, 0.3); background: transparent; font-family: var(--serif); font-size: 15px; color: var(--light); cursor: pointer; white-space: nowrap; transition: background .28s var(--ease),border-color .28s var(--ease),color .28s var(--ease); }
body .ideo-home .day-chip:hover { border-color: var(--light); }
body .ideo-home .day-chip[aria-pressed="true"] { background: var(--light); border-color: var(--light); color: var(--ink); }
body .ideo-home .day-chip.fri::after { content: ""; display: inline-block; width: 4px; height: 4px; border-radius: 50%; background: var(--crimson); margin-left: 7px; vertical-align: middle; }
body .ideo-home .mo-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; margin-top: 2px; }
body .ideo-home .mo-grid .dow { text-align: center; font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(248, 243, 237, 0.55); padding-bottom: 5px; }
body .ideo-home .mo-day { position: relative; aspect-ratio: 1 / 1; border: 0px; border-radius: 9px; background: transparent; font-family: var(--serif); font-size: 15px; color: var(--light); cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background .25s var(--ease),color .25s var(--ease); }
body .ideo-home .mo-day:hover:not(:disabled) { background: rgba(248, 243, 237, 0.14); }
body .ideo-home .mo-day:disabled { color: rgba(248, 243, 237, 0.3); cursor: not-allowed; }
body .ideo-home .mo-day.today { box-shadow: rgba(248, 243, 237, 0.4) 0px 0px 0px 1px inset; }
body .ideo-home .mo-day.fri::after { content: ""; position: absolute; bottom: 5px; left: 50%; transform: translateX(-50%); width: 3.5px; height: 3.5px; border-radius: 50%; background: var(--crimson); }
body .ideo-home .mo-day:disabled.fri::after { background: rgba(211, 42, 31, 0.4); }
body .ideo-home .mo-day[aria-pressed="true"] { background: var(--light); color: var(--ink); }
body .ideo-home .day-toggle { background: none; border-width: 0px 0px 1px; border-top-style: initial; border-right-style: initial; border-left-style: initial; border-top-color: initial; border-right-color: initial; border-left-color: initial; border-image: initial; padding: 0px; margin-top: 11px; cursor: pointer; font-family: var(--serif); font-size: 13.5px; color: rgba(248, 243, 237, 0.76); border-bottom-style: solid; border-bottom-color: rgba(248, 243, 237, 0.32); transition: color .3s var(--ease),border-color .3s var(--ease); }
body .ideo-home .day-toggle:hover { color: var(--light); border-color: var(--crimson); }
@media (pointer: coarse){body .ideo-home .mo-day { min-height: 42px; }
body .ideo-home .month-nav button { width: 38px; height: 38px; }}
body .ideo-home .clock { display: flex; align-items: center; justify-content: center; margin: 2px 0px 12px; }
body .ideo-home .clock + .hint { text-align: center; }
body .ideo-home .wheels { position: relative; display: flex; align-items: center; gap: 2px; padding: 0px 8px; }
body .ideo-home .wheel-band { position: absolute; left: 0px; right: 0px; top: 50%; height: 44px; margin-top: -22px; border-radius: 13px; pointer-events: none; background: linear-gradient(rgba(248, 243, 237, 0.086), rgba(248, 243, 237, 0.05)); box-shadow: rgba(248, 243, 237, 0.1) 0px 0px 0px 1px inset, rgba(255, 255, 255, 0.07) 0px 1px 0px inset, rgba(0, 0, 0, 0.6) 0px 8px 24px -14px; }
body .ideo-home .wcol { position: relative; display: flex; flex-direction: column; align-items: center; }
body .ideo-home .wheel { position: relative; display: block; width: 68px; height: 156px; perspective: 520px; overflow: hidden; cursor: grab; touch-action: none; user-select: none; -webkit-tap-highlight-color: transparent; mask-image: linear-gradient(transparent 0px, rgb(0, 0, 0) 30%, rgb(0, 0, 0) 70%, transparent 100%); }
body .ideo-home .wheel:focus { outline: none; }
body .ideo-home .wheel:focus-visible { outline: rgba(248, 243, 237, 0.5) solid 1px; outline-offset: -1px; border-radius: 13px; }
body .ideo-home .wheel i { position: absolute; left: 0px; right: 0px; top: 50%; height: 40px; margin-top: -20px; display: flex; align-items: center; justify-content: center; font-style: normal; font-size: 28px; line-height: 1; letter-spacing: -0.01em; font-variant-numeric: tabular-nums; color: rgba(248, 243, 237, 0.62); backface-visibility: hidden; transition: color .18s var(--ease); will-change: transform, opacity; }
body .ideo-home .wheel i.is-sel { color: var(--light); }
body .ideo-home .wheel-ampm { width: 58px; }
body .ideo-home .wheel-ampm i { font-size: 18px; letter-spacing: 0.08em; }
body .ideo-home .wheel-ampm i.is-sel { color: var(--light); }
body .ideo-home .wcol-ampm { margin-left: 8px; }
body .ideo-home .colon { align-self: center; margin-top: -4px; font-size: 26px; line-height: 1; color: rgba(248, 243, 237, 0.55); width: 12px; text-align: center; pointer-events: none; }
body .ideo-home .step { display: grid; place-items: center; width: 46px; height: 28px; border: 0px; border-radius: 9px; background: transparent; cursor: pointer; color: rgba(248, 243, 237, 0.6); transition: background .25s var(--ease),color .25s var(--ease); }
body .ideo-home .step svg { width: 15px; height: 9px; fill: none; stroke: currentcolor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
body .ideo-home .step:hover { background: rgba(248, 243, 237, 0.1); color: var(--light); }
body .ideo-home .step:active { background: rgba(248, 243, 237, 0.16); }
body .ideo-home .hint { margin: 0px; font-size: 13.5px; color: rgba(248, 243, 237, 0.76); line-height: 1.45; }
@media (pointer: coarse){body .ideo-home .step { height: 38px; }
body .ideo-home .day-chip { min-height: 44px; }}
body .ideo-home .slip { min-width: 0px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px; padding: 15px 18px; border: 1px solid rgba(248, 243, 237, 0.16); background: rgba(248, 243, 237, 0.07); border-radius: 12px; }
body .ideo-home .slip .label { color: rgba(248, 243, 237, 0.66); }
body .ideo-home .slip .when { margin: 0px; font-size: clamp(18px, 2vw, 23px); letter-spacing: -0.01em; color: var(--light); }
body .ideo-home .slip .when span { color: var(--crimson); font-style: italic; }
body .ideo-home .slip .tz { margin: 0px; width: 100%; color: rgba(248, 243, 237, 0.74); font-size: 13.5px; }
body .ideo-home .submit-row { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
@media (max-width: 699px){body .ideo-home .row { grid-template-columns: 1fr; }
body .ideo-home .submit-row .ideo-btn { width: 100%; }
body .ideo-home .when-block { padding: 16px; }}
body .ideo-home .field.invalid input, body .ideo-home .field.invalid textarea { border-bottom-color: var(--crimson); }
body .ideo-home .field .err { margin: 2px 0px 0px; font-size: 12.5px; color: rgb(242, 184, 178); line-height: 1.35; }
body .ideo-home .form-note { margin: 0px; font-size: 14px; line-height: 1.5; color: var(--t2); }
body .ideo-home .hp { width: 1px; height: 1px; overflow: hidden; position: absolute !important; left: -9999px !important; }
body .ideo-home .sent { padding: 6px 0px 4px; }
body .ideo-home .sent[hidden] { display: none; }
body .ideo-home .sent-mark { width: 54px; height: 54px; border-radius: 50%; display: grid; place-items: center; margin: 4px 0px 22px; border: 1px solid rgba(211, 42, 31, 0.7); box-shadow: rgba(211, 42, 31, 0.12) 0px 0px 0px 6px; }
body .ideo-home .sent h3 { margin: 0px 0px 10px; font-weight: 400; font-size: clamp(24px, 2.6vw, 32px); line-height: 1.15; letter-spacing: -0.02em; }
body .ideo-home .sent h3 em { font-style: italic; color: var(--crimson); }
body .ideo-home .sent p { margin: 0px 0px 20px; color: var(--t2); max-width: 50ch; }
body .ideo-home .sent .slip { margin-bottom: 22px; }
body .ideo-home .ideo-btn-ghost, body .ideo-home .ideo-btn-ghost:focus { background: transparent; color: var(--light); border-color: rgba(248, 243, 237, 0.4); }
body .ideo-home .ideo-btn-ghost:hover { background: var(--light); color: var(--ink); border-color: var(--light); }
body .ideo-home #time-label { margin: 0px 0px 6px; }
body .ideo-home .submit-row .form-note { flex: 1 1 240px; }
body .ideo-home .sent:focus { outline: none; }
body .ideo-home .slip .when span { white-space: nowrap; }
body .ideo-home .submit-hook { flex: 1 1 100%; display: flex; align-items: center; gap: 11px; margin: 0px; font-size: 16px; line-height: 1.4; color: var(--t1); }
body .ideo-home .submit-hook i { position: relative; flex: 0 0 auto; width: 7px; height: 7px; border-radius: 50%; background: var(--crimson); animation: ideo-hook-blink 1.6s var(--ease) infinite; }
body .ideo-home .submit-hook i::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; border: 1px solid var(--crimson); opacity: 0; animation: ideo-foot-ping 2.8s var(--ease-out) infinite; }
body .ideo-home .submit-hook em { font-style: italic; color: var(--crimson); }
@media (prefers-reduced-motion: reduce){body .ideo-home .submit-hook i, body .ideo-home .submit-hook i::after { animation: auto ease 0s 1 normal none running none; }}
body .ideo-home .submit-hook { align-items: flex-start; }
body .ideo-home .submit-hook i { margin-top: 0.5em; }
body .ideo-home .you-time { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin-top: 12px; padding: 9px 8px 9px 14px; border: 1px solid var(--line-2); border-radius: 14px; background: rgba(248, 243, 237, 0.03); }
body .ideo-home .you-k { font-size: 10.5px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(248, 243, 237, 0.6); }
body .ideo-home .you-time b { font-weight: 400; font-size: 17px; color: var(--light); font-variant-numeric: tabular-nums; }
body .ideo-home .you-time b small { margin-left: 6px; font-size: 13px; color: rgba(248, 243, 237, 0.6); }
body .ideo-home .slip .when-you { margin: 0px; width: 100%; font-size: 15px; font-style: italic; color: rgb(255, 106, 85); }
body .ideo-home .you-time .you-where { margin-left: auto; padding: 4px 11px; border: 1px solid rgba(211, 42, 31, 0.55); border-radius: 999px; background: rgba(211, 42, 31, 0.08); font-size: 13px; color: var(--light); white-space: nowrap; max-width: 60%; overflow: hidden; text-overflow: ellipsis; }
body .ideo-home .you-time .you-auto { padding: 0px; border: 0px; background: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-size: 12.5px; color: rgb(255, 106, 85); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
body .ideo-home .you-time .you-combo { flex: 1 0 100%; margin-top: 4px; }
body .ideo-home .you-time .tz-find input { height: 36px; font-size: 13.5px; }
@media (max-width: 420px){body .ideo-home .you-time .you-where { margin-left: 0px; }}
body .ideo-home .modal-card .lede { max-width: 46ch; text-align: justify; text-align-last: left; hyphens: auto; }
body .ideo-home .modal-close, body .ideo-home .st-x { border-color: rgba(211, 42, 31, 0.75); background: rgba(211, 42, 31, 0.1); color: var(--light); transition: background .3s var(--ease),border-color .3s var(--ease),color .3s var(--ease),transform .4s var(--ease); }
body .ideo-home .modal-close:hover, body .ideo-home .st-x:hover { background: var(--crimson); border-color: var(--crimson); color: rgb(255, 255, 255); transform: rotate(90deg); }
body .ideo-home .modal-close:focus-visible, body .ideo-home .st-x:focus-visible { outline: 1px solid var(--crimson); outline-offset: 3px; }
/* v141 (audit): the bar over the booking panel lets a tap reach the month arrows under it; only the X takes taps */
body .ideo-home .modal-bar{pointer-events:none}body .ideo-home .modal-close{pointer-events:auto}
/* press:start */
/* generated by tools/press.py: the hover looks, for a finger on a touch screen */
body .ideo-home .modal-close.is-press{background: var(--light); border-color: var(--light); color: var(--ink); transform: rotate(90deg);}
body .ideo-home .modal-close.is-press,body .ideo-home .st-x.is-press{background: var(--crimson); border-color: var(--crimson); color: rgb(255, 255, 255); transform: rotate(90deg);}
/* press:end */
