/* In-flow launcher near the introduction; dialogs use the native top layer. */
.guide-launcher { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 9px; min-height: 52px; padding: 13px 19px; border: 1px solid #8edcda; border-radius: 99px; background: #15294d; color: #fff; box-shadow: 0 5px 24px #102b4b30; font: inherit; font-size: 14px; font-weight: 600; line-height: 1.2; cursor: pointer; }
.guide-launcher:hover { background: #21416d; }
.guide-launcher[hidden] { display: none; }
.guide-launcher[aria-expanded="true"] { visibility: hidden; }
.has-sinesam-chat .site-footer { padding-bottom: 90px; }
.guide-dialog { box-sizing: border-box; width: min(460px, calc(100% - 32px)); max-width: none; max-height: calc(100dvh - 32px); margin: auto 24px 24px auto; padding: 24px; border: 1px solid #d9e6e9; border-radius: 22px; color: #182b45; background: #fff; box-shadow: 0 18px 70px #10264f30; overflow-y: auto; overscroll-behavior: contain; }
.guide-dialog::backdrop { background: #10264f42; }
.guide-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.guide-head h2 { margin: 0; color: #182b45; font-size: 1.8rem; line-height: 1.15; letter-spacing: -.03em; }
.guide-eyebrow { margin: 0 0 8px; color: #397a80; font-size: 10px; font-weight: 700; letter-spacing: .12em; }
.guide-close { flex-shrink: 0; white-space: nowrap; min-height: 44px; padding: 6px 0 6px 8px; border: 0; background: none; color: #35506a; font: inherit; font-size: 13px; cursor: pointer; }
.guide-privacy { margin: 14px 0; color: #566579; font-size: 12px; line-height: 1.5; }
.guide-messages { display: flex; flex-direction: column; gap: 12px; min-height: 110px; max-height: min(33dvh, 320px); padding: 4px 2px 12px; overflow-y: auto; overscroll-behavior: contain; }
.guide-message { max-width: 94%; padding: 12px 14px; border-radius: 13px; background: #edf6f7; overflow-wrap: anywhere; font-size: 14px; line-height: 1.55; }
.guide-message-user { align-self: flex-end; background: #18365c; color: white; }
.guide-message-label { display: block; margin-bottom: 4px; color: #476b78; font-size: 10px; font-weight: 700; letter-spacing: .03em; }
.guide-message-user .guide-message-label { color: #c7e3ec; }
.guide-message p { margin: 0; white-space: pre-wrap; }
.guide-message a { display: inline-block; margin: 9px 12px 0 0; color: #225d76; font-size: 12px; text-decoration: underline; text-underline-offset: 3px; }
.guide-status { min-height: 18px; margin: 8px 0; color: #52677c; font-size: 12px; line-height: 1.5; }
.guide-form label { display: block; margin: 0 0 6px; color: #263f59; font-size: 12px; font-weight: 600; }
.guide-form textarea { display: block; width: 100%; box-sizing: border-box; min-height: 76px; max-height: 150px; resize: vertical; padding: 11px 12px; border: 1px solid #afc5ce; border-radius: 12px; background: #fff; color: #182b45; font: inherit; font-size: 16px; line-height: 1.4; }
.guide-form textarea::placeholder { color: #73818d; font-size: 14px; }
.guide-form-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; margin-top: 8px; }
.guide-count { margin-right: auto; color: #71808b; font-size: 11px; }
.guide-send, .guide-cancel { min-height: 44px; padding: 9px 16px; border: 0; border-radius: 10px; background: #18365c; color: #fff; font: inherit; font-size: 13px; cursor: pointer; }
.guide-send:disabled { opacity: .6; cursor: wait; }
.guide-cancel { padding-inline: 8px; background: #edf3f5; color: #29455d; }
.guide-cancel[hidden] { display: none; }
.guide-data { margin-top: 14px; color: #637282; font-size: 11px; line-height: 1.5; }
.guide-data summary { cursor: pointer; padding-block: 7px; }
.guide-data p { margin: 5px 0 0; }
.guide-contact { display: inline-block; margin-top: 7px; color: #315570; font-size: 11px; text-decoration: underline; text-underline-offset: 3px; }
.guide-dialog :is(button,a,textarea,summary):focus-visible, .guide-launcher:focus-visible { outline: 3px solid #36aeb5; outline-offset: 3px; }
@media (max-width:640px) {
  .guide-launcher { right: max(12px, env(safe-area-inset-right)); bottom: max(12px, env(safe-area-inset-bottom)); min-height: 48px; padding: 11px 15px; font-size: 12px; }
  /* Keep the launcher above the agenda's lower action area. Native booking
     dialogs use the top layer, so the launcher cannot cover their controls. */
  .guide-launcher-agenda { bottom: max(80px, calc(env(safe-area-inset-bottom) + 72px)); }
  .guide-dialog { width: calc(100% - 24px); max-height: calc(100dvh - 24px); margin: auto 12px max(12px, env(safe-area-inset-bottom)); padding: 18px; border-radius: 18px; }
  .guide-head h2 { font-size: 1.6rem; }
  .guide-messages { max-height: 28dvh; }
  .has-sinesam-chat .site-footer { padding-bottom: 85px; }
}
@media (max-height:600px) { .guide-dialog { margin-block: 8px; max-height: calc(100dvh - 16px); } .guide-messages { min-height: 60px; max-height: 24dvh; } }
@media (prefers-reduced-motion:reduce) { .guide-dialog *, .guide-launcher { transition: none; scroll-behavior: auto; } }
/* Generated raster mascot, four approved poses in one transparent sprite sheet. */
.guide-mascot { flex: 0 0 56px; width: 56px; height: 56px; display: inline-block; background-image: url('/brain-mascot-480.webp'); background-repeat: no-repeat; background-size: 400% auto; background-position: 0 50%; image-rendering: pixelated; }
.guide-launcher { gap: 7px; padding: 4px 17px 4px 6px; min-height: 64px; }
.guide-launcher .guide-mascot { animation: guide-brain-blink 6s steps(1, end) infinite; }
.guide-launcher:hover .guide-mascot, .guide-launcher:focus-visible .guide-mascot { animation: none; background-position: 66.6667% 50%; }
.guide-heading { display: flex; gap: 8px; align-items: center; min-width: 0; }
.guide-heading .guide-mascot { flex-basis: 48px; width: 48px; height: 48px; background-position: 66.6667% 50%; }
.guide-thinking .guide-heading .guide-mascot { background-position: 100% 50%; animation: guide-brain-think 1.8s ease-in-out infinite; }
.guide-booking-open { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 46px; padding: 11px 13px; margin: 4px 0 14px; border: 1px solid #b7d9dd; border-radius: 11px; background: #edf7f7; color: #194b61; font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
.guide-general[hidden], .guide-booking-panel[hidden] { display: none; }
.guide-booking-mode { width: min(560px, calc(100% - 32px)); }
@keyframes guide-brain-blink { 0%, 92%, 100% { background-position: 0 50%; } 94%, 98% { background-position: 33.3333% 50%; } }
@keyframes guide-brain-think { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@media (max-width:640px) { .guide-launcher { min-height: 56px; padding: 3px 13px 3px 4px; } .guide-launcher .guide-mascot { width: 48px; height: 48px; flex-basis: 48px; } .guide-heading .guide-mascot { width: 44px; height: 44px; flex-basis: 44px; } .guide-booking-mode { width: calc(100% - 24px); } .guide-head h2 { font-size: 1.4rem; } }
@media (prefers-reduced-motion:reduce) { .guide-launcher .guide-mascot, .guide-thinking .guide-heading .guide-mascot { animation: none; transform: none; } }

/* Typed booking remains inside the same transcript and input; controls are optional. */
.guide-booking-open[hidden],.guide-booking-exit[hidden]{display:none}
.guide-booking-exit{font:inherit;font-size:12px;min-height:36px;padding:6px 0;margin-bottom:8px;border:0;background:none;color:#345b70;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.guide-booking-mode .guide-messages{max-height:min(42dvh,430px);min-height:150px}
.guide-message-booking{max-width:100%;background:#edf6f7}
.guide-choices{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.guide-choices button,.guide-calendar-open{font:inherit;font-size:12px;line-height:1.4;min-height:40px;padding:8px 11px;border:1px solid #9bc4ce;border-radius:8px;background:#fff;color:#18365c;cursor:pointer;text-align:left}
.guide-calendar-open{margin-top:10px}
.guide-choices button:disabled,.guide-calendar-open:disabled{opacity:.65;cursor:default}
.guide-message-booking .booking-calendar{margin:12px 0 0;padding:10px}
.guide-message-booking .calendar-heading h2{font-size:15px}
.guide-message-booking .calendar-grid{gap:4px}
.guide-message-booking .calendar-grid button{min-height:35px;padding:4px}
@media(max-width:640px){.guide-booking-mode .guide-messages{max-height:36dvh;min-height:120px}.guide-booking-mode .guide-privacy{font-size:11px;margin:8px 0}.guide-message-booking .calendar-grid button{font-size:12px;padding:3px}}
/* Keep the conversation header and input stable while only messages scroll. */
.guide-booking-mode[open]{display:flex;flex-direction:column;height:min(780px,calc(100dvh - 32px));overflow:hidden}
.guide-booking-mode .guide-general{display:flex;flex-direction:column;flex:1;min-height:0}
.guide-booking-mode .guide-messages{flex:1;min-height:60px;max-height:none}
.guide-booking-mode :is(.guide-head,.guide-privacy,.guide-booking-exit,.guide-form,.guide-status,.guide-data,.guide-contact){flex-shrink:0}
@media(max-width:640px){.guide-booking-mode[open]{height:calc(100dvh - 24px)}.guide-booking-mode .guide-data{margin-top:6px}.guide-booking-mode .guide-status{margin:4px 0;min-height:12px}.guide-booking-mode .guide-booking-exit{min-height:32px;margin-bottom:4px}}

/* Early in-flow help never covers content at any width. */
.guide-launcher, .guide-launcher-agenda { position:relative; inset:auto; z-index:1; display:flex; width:max-content; max-width:calc(100% - 32px); margin:20px auto 28px; min-height:52px; padding:3px 18px 3px 5px; font-size:14px; box-shadow:0 3px 12px #102b4b15; }
.guide-launcher .guide-mascot { width:44px; height:44px; flex-basis:44px; }
.has-sinesam-chat .site-footer { padding-bottom:32px; }
.guide-privacy, .guide-status, .guide-data, .guide-contact, .guide-form label, .guide-close, .guide-message a { font-size:14px; }
.guide-eyebrow, .guide-message-label, .guide-count { font-size:12px; }
.guide-dialog :is(button,a,textarea,summary):focus-visible, .guide-launcher:focus-visible { outline-color:#187c84; }

.home-guide-slot .guide-launcher { margin:18px auto 0; }
main > .guide-launcher { margin:16px auto 4px; }
