/* v336: Bré — AV Intelligence (site-wide AI assistant). Replaces the RoseMarie bubble
   on the home page; RoseMarie now lives on /ricardo-guillaume/. The bubble is draggable. */
.bre-root{
  --bre-bg:rgba(255,255,255,.94);--bre-panel:#f7f9fd;--bre-text:#0b1a3a;--bre-muted:#5a6785;
  --bre-line:rgba(15,40,100,.12);--bre-accent:#0047e0;--bre-accent-2:#00a9ff;--bre-on-accent:#fff;
  --bre-user:#0047e0;--bre-user-text:#fff;--bre-bot:#ffffff;--bre-bot-text:#0b1a3a;
  --bre-chip:#eef3ff;--bre-chip-text:#0038b8;--bre-shadow:0 24px 60px rgba(10,30,80,.28);
  --bre-wa:#1faa59;
  font-family:Lato,Arial,sans-serif;
}
html[data-theme="dark"] .bre-root{
  --bre-bg:rgba(9,16,38,.96);--bre-panel:#0b1430;--bre-text:#e8eeff;--bre-muted:#9aa8cc;
  --bre-line:rgba(140,170,255,.16);--bre-accent:#5d96ff;--bre-accent-2:#35c6ff;--bre-on-accent:#04112e;
  --bre-user:#3f7dff;--bre-user-text:#fff;--bre-bot:#121e42;--bre-bot-text:#e8eeff;
  --bre-chip:#16224a;--bre-chip-text:#a9c3ff;--bre-shadow:0 24px 60px rgba(0,0,0,.6);
}
/* RoseMarie is not used on the home page any more. */
html.bre-active #fabRosemarie,html.bre-active #rosemarieModal{display:none!important}

.bre-fab{position:fixed;right:20px;bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:95;width:60px;height:60px;border-radius:50%;
  border:0;padding:0;cursor:grab;color:#fff;background:#041131;overflow:visible;touch-action:none;-webkit-user-select:none;user-select:none;
  box-shadow:0 8px 24px rgba(15,31,74,.32),0 0 0 4px rgba(0,169,255,.22);display:grid;place-items:center;transition:transform .2s ease,box-shadow .2s ease}
.bre-fab img{width:100%;height:100%;border-radius:50%;display:block;pointer-events:none;-webkit-user-drag:none}
.bre-fab.bre-dragging{cursor:grabbing;transform:scale(1.08);box-shadow:0 16px 40px rgba(0,4,20,.45),0 0 0 6px rgba(0,169,255,.3);transition:none}
.bre-fab.bre-fab-snap{transition:left .28s cubic-bezier(.2,.9,.3,1.2),top .28s ease,transform .2s ease}
.bre-fab:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(15,31,74,.34),0 0 0 6px rgba(93,150,255,.24)}
.bre-fab:focus-visible{outline:3px solid var(--bre-accent-2);outline-offset:3px}
.bre-fab-label{position:absolute;right:68px;top:50%;transform:translateY(-50%);white-space:nowrap;background:var(--bre-bg);color:var(--bre-text);
  border:1px solid var(--bre-line);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:900;opacity:0;pointer-events:none;transition:opacity .2s}
.bre-fab:hover .bre-fab-label{opacity:1}
.bre-root[data-side="left"] .bre-fab-label{right:auto;left:68px}
.bre-fab.bre-dragging .bre-fab-label{opacity:0}
html.bre-open .bre-fab{transform:scale(.9);opacity:0;pointer-events:none}

.bre-panel{position:fixed;right:20px;bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:2147483000;width:min(400px,calc(100vw - 32px));
  height:min(620px,calc(100vh - 40px));height:min(620px,calc(100dvh - 40px));display:flex;flex-direction:column;overflow:hidden;
  background:var(--bre-bg);color:var(--bre-text);border:1px solid var(--bre-line);border-radius:22px;box-shadow:var(--bre-shadow);
  -webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);opacity:0;transform:translateY(16px) scale(.98);pointer-events:none;visibility:hidden;
  transition:opacity .22s ease,transform .22s ease,visibility 0s linear .22s}
.bre-root[data-side="left"] .bre-panel{right:auto;left:20px}
html.bre-open .bre-panel{opacity:1;transform:none;pointer-events:auto;visibility:visible;transition:opacity .22s ease,transform .22s ease}

.bre-head{display:flex;align-items:center;gap:12px;padding:14px 14px 12px 16px;border-bottom:1px solid var(--bre-line);
  background:linear-gradient(135deg,rgba(0,71,224,.10),rgba(0,169,255,.06))}
.bre-avatar{flex:0 0 42px;width:42px;height:42px;border-radius:50%;overflow:hidden;background:#041131}
.bre-avatar img{width:100%;height:100%;display:block}
.bre-title{flex:1;min-width:0}
.bre-title strong{display:block;font-size:16px;font-weight:900;letter-spacing:.01em}
.bre-title span{display:block;font-size:11.5px;color:var(--bre-muted);letter-spacing:.06em;text-transform:uppercase;margin-top:2px}
.bre-close{flex:0 0 36px;width:36px;height:36px;border-radius:50%;border:1px solid var(--bre-line);background:transparent;color:var(--bre-text);
  font-size:22px;line-height:1;cursor:pointer;display:grid;place-items:center}
.bre-close:hover{background:var(--bre-chip)}
.bre-close:focus-visible,.bre-chip:focus-visible,.bre-send:focus-visible,.bre-input:focus-visible{outline:2px solid var(--bre-accent-2);outline-offset:2px}

.bre-log{flex:1;overflow-y:auto;padding:16px 14px 8px;display:flex;flex-direction:column;gap:10px;background:var(--bre-panel);overscroll-behavior:contain}
.bre-msg{max-width:88%;padding:10px 13px;border-radius:16px;font-size:14.5px;line-height:1.45;white-space:pre-wrap;word-wrap:break-word}
.bre-msg.bot{align-self:flex-start;background:var(--bre-bot);color:var(--bre-bot-text);border:1px solid var(--bre-line);border-bottom-left-radius:6px}
.bre-msg.user{align-self:flex-end;background:var(--bre-user);color:var(--bre-user-text);border-bottom-right-radius:6px}
.bre-msg.note{align-self:center;max-width:100%;background:transparent;color:var(--bre-muted);font-size:12.5px;text-align:center;padding:2px 8px}
.bre-msg.error{border-color:rgba(212,61,77,.45)}
.bre-msg a{color:inherit;font-weight:900}
.bre-typing{display:inline-flex;gap:4px;align-items:center;height:18px}
.bre-typing i{width:7px;height:7px;border-radius:50%;background:var(--bre-muted);animation:breDot 1s infinite ease-in-out}
.bre-typing i:nth-child(2){animation-delay:.15s}.bre-typing i:nth-child(3){animation-delay:.3s}
@keyframes breDot{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
.bre-msg.note.bre-attention{color:var(--bre-accent);font-weight:900;font-size:13.5px}
.bre-actions{align-self:flex-start;display:flex;flex-wrap:wrap;gap:8px;margin-top:-2px}
.bre-action{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:999px;color:#fff!important;text-decoration:none;font-weight:900;font-size:13.5px}
.bre-action svg{width:18px;height:18px;flex:0 0 18px}
.bre-action.bre-wa{background:var(--bre-wa)}
.bre-action.bre-mail{background:linear-gradient(135deg,var(--bre-accent),var(--bre-accent-2));color:var(--bre-on-accent)!important}
.bre-action:focus-visible{outline:2px solid var(--bre-accent-2);outline-offset:2px}
.bre-report{align-self:stretch;padding:12px 14px;border-radius:14px;border:1px dashed var(--bre-accent);background:var(--bre-bot);color:var(--bre-bot-text)}
.bre-report pre{margin:0;font:400 13px/1.5 Lato,Arial,sans-serif;white-space:pre-wrap;word-wrap:break-word}
.bre-report-more{margin-top:10px;border-top:1px solid var(--bre-line);padding-top:8px}
.bre-report-more summary{cursor:pointer;font-weight:900;font-size:12.5px;color:var(--bre-accent)}
.bre-report-transcript{margin-top:8px!important;max-height:220px;overflow:auto;color:var(--bre-muted);font-size:12.5px!important}

.bre-chips{display:flex;flex-wrap:wrap;gap:6px;padding:8px 12px 0;background:var(--bre-panel)}
.bre-chip{border:1px solid var(--bre-line);background:var(--bre-chip);color:var(--bre-chip-text);border-radius:999px;padding:7px 12px;font:900 12.5px/1 Lato,Arial,sans-serif;cursor:pointer}
.bre-chip:hover{border-color:var(--bre-accent)}
.bre-chip[hidden]{display:none}
.bre-chip[disabled]{opacity:.5;cursor:default}
.bre-chip-report{display:inline-flex;align-items:center;gap:6px;background:linear-gradient(135deg,var(--bre-accent),var(--bre-accent-2));color:var(--bre-on-accent);border-color:transparent}
.bre-chip-report svg{width:14px;height:14px}

.bre-turnstile{display:flex;justify-content:center;align-self:center;min-height:0}

.bre-form{display:flex;gap:8px;align-items:flex-end;padding:10px 12px 8px;border-top:1px solid var(--bre-line);background:var(--bre-bg)}
.bre-input{flex:1;resize:none;min-height:42px;max-height:120px;border:1px solid var(--bre-line);border-radius:14px;padding:10px 12px;
  background:var(--bre-panel);color:var(--bre-text);font:400 15px/1.35 Lato,Arial,sans-serif}
.bre-input::placeholder{color:var(--bre-muted)}
.bre-send{flex:0 0 42px;width:42px;height:42px;border-radius:50%;border:0;cursor:pointer;color:var(--bre-on-accent);
  background:linear-gradient(135deg,var(--bre-accent),var(--bre-accent-2));display:grid;place-items:center}
.bre-send[disabled]{opacity:.45;cursor:default}
.bre-send svg{width:19px;height:19px}
.bre-foot{padding:0 14px 10px;font-size:11px;color:var(--bre-muted);text-align:center;background:var(--bre-bg)}

@media (max-width:600px){
  .bre-panel,.bre-root[data-side="left"] .bre-panel{right:0;left:0;bottom:0;width:100%;height:100%;height:100dvh;border-radius:0;border:0}
  .bre-fab{right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px))}
  .bre-input{font-size:16px}
}
@media (prefers-reduced-motion:reduce){.bre-panel,.bre-fab{transition:none}.bre-typing i{animation:none}}

/* Online dot next to the Bré logo (bubble and panel header). */
.bre-online{position:absolute;right:2px;bottom:3px;width:13px;height:13px;border-radius:50%;background:#22c55e;border:2px solid #fff;
  box-shadow:0 0 0 0 rgba(34,197,94,.6);animation:breOnline 2.4s ease-out infinite;pointer-events:none}
html[data-theme="dark"] .bre-online{border-color:#0b1430}
.bre-avatar-wrap{position:relative;flex:0 0 42px;width:42px;height:42px}
.bre-avatar-wrap .bre-online{right:-1px;bottom:-1px;width:12px;height:12px}
.bre-status{display:inline-flex;align-items:center;gap:5px;margin-top:3px;font-style:normal;font-size:11px;font-weight:900;color:#16a34a}
.bre-status::before{content:"";width:7px;height:7px;border-radius:50%;background:#22c55e}
html[data-theme="dark"] .bre-status{color:#4ade80}
@keyframes breOnline{0%{box-shadow:0 0 0 0 rgba(34,197,94,.55)}70%{box-shadow:0 0 0 8px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}

/* Thank-you animation after sending the report. */
.bre-thanks{position:absolute;inset:0;z-index:5;display:grid;place-items:center;padding:20px;background:rgba(4,12,34,.82);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;transition:opacity .3s ease;cursor:pointer}
.bre-thanks.is-on{opacity:1}
.bre-thanks.is-out{opacity:0}
.bre-thanks-card{display:grid;justify-items:center;gap:12px;text-align:center;color:#fff;width:min(320px,100%)}
.bre-thanks-logo{position:relative;width:min(260px,80vw);aspect-ratio:3/2;border-radius:18px;overflow:hidden;
  box-shadow:0 18px 50px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.12);transform:perspective(800px) rotateY(-18deg) rotateX(8deg) scale(.86);opacity:0}
.bre-thanks-logo img{width:100%;height:100%;object-fit:cover;display:block}
.bre-thanks-logo i{position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.55) 48%,rgba(255,255,255,.85) 50%,transparent 62%);transform:translateX(-100%)}
.bre-thanks.is-on .bre-thanks-logo{animation:breThanksIn .7s cubic-bezier(.2,.8,.2,1) forwards,breThanksSway 3.2s ease-in-out .7s infinite alternate}
.bre-thanks.is-on .bre-thanks-logo i{animation:breThanksShine 1.4s cubic-bezier(.45,.05,.35,1) .5s forwards}
.bre-thanks-bar{width:70%;height:4px;border-radius:999px;background:rgba(255,255,255,.18);overflow:hidden}
.bre-thanks-bar span{display:block;height:100%;width:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,#5d96ff,#ffffff,#ffb84d)}
.bre-thanks.is-on .bre-thanks-bar span{animation:breThanksBar 1.5s cubic-bezier(.45,0,.55,1) forwards}
.bre-thanks-sending{margin:0;font-size:13px;color:rgba(255,255,255,.8);transition:opacity .25s}
.bre-thanks-title{font-size:22px;font-weight:900;letter-spacing:.02em;opacity:0;transform:translateY(8px) scale(.96);transition:opacity .45s ease,transform .45s cubic-bezier(.2,.8,.2,1)}
.bre-thanks-sub{font-size:12.5px;color:rgba(255,255,255,.75);opacity:0;transition:opacity .45s ease .15s}
.bre-thanks.is-done .bre-thanks-bar,.bre-thanks.is-done .bre-thanks-sending{opacity:0;height:0;margin:0;overflow:hidden}
.bre-thanks.is-done .bre-thanks-title{opacity:1;transform:none}
.bre-thanks.is-done .bre-thanks-sub{opacity:1}
@keyframes breThanksIn{to{opacity:1;transform:perspective(800px) rotateY(0) rotateX(0) scale(1)}}
@keyframes breThanksSway{from{transform:perspective(800px) rotateY(-7deg) rotateX(3deg)}to{transform:perspective(800px) rotateY(7deg) rotateX(-2deg)}}
@keyframes breThanksShine{to{transform:translateX(100%)}}
@keyframes breThanksBar{to{transform:scaleX(1)}}
/* The site's performance modes shorten animations; keep these short ones intact. */
html.ks-mobile-lite .bre-thanks.is-on .bre-thanks-logo,html.ks-ios-lite .bre-thanks.is-on .bre-thanks-logo{animation:breThanksIn .7s cubic-bezier(.2,.8,.2,1) forwards,breThanksSway 3.2s ease-in-out .7s infinite alternate!important}
html.ks-mobile-lite .bre-thanks.is-on .bre-thanks-logo i,html.ks-ios-lite .bre-thanks.is-on .bre-thanks-logo i{animation:breThanksShine 1.4s cubic-bezier(.45,.05,.35,1) .5s forwards!important}
html.ks-mobile-lite .bre-thanks.is-on .bre-thanks-bar span,html.ks-ios-lite .bre-thanks.is-on .bre-thanks-bar span{animation:breThanksBar 1.5s cubic-bezier(.45,0,.55,1) forwards!important}
html.ks-mobile-lite .bre-online,html.ks-ios-lite .bre-online{animation:breOnline 2.4s ease-out infinite!important}
@media (prefers-reduced-motion:reduce){.bre-online{animation:none}.bre-thanks-logo{opacity:1;transform:none}.bre-thanks.is-on .bre-thanks-logo,.bre-thanks.is-on .bre-thanks-logo i{animation:none!important}}

/* Booking flow: quick replies, date picker. */
.bre-chips[hidden]{display:none}
.bre-quick{align-self:stretch;display:flex;flex-wrap:wrap;gap:6px;margin-top:-2px}
.bre-quick-btn{border:1px solid var(--bre-accent);background:var(--bre-bg);color:var(--bre-accent);border-radius:999px;padding:8px 12px;
  font:900 13px/1.1 Lato,Arial,sans-serif;cursor:pointer;transition:background .15s,color .15s}
.bre-quick-btn:hover,.bre-quick-btn.is-on{background:var(--bre-accent);color:var(--bre-on-accent)}
.bre-quick-btn:focus-visible{outline:2px solid var(--bre-accent-2);outline-offset:2px}
.bre-quick-next{background:linear-gradient(135deg,var(--bre-accent),var(--bre-accent-2));color:var(--bre-on-accent);border-color:transparent}
.bre-quick-skip,.bre-quick-cancel{border-color:var(--bre-line);color:var(--bre-muted)}
.bre-quick-cancel:hover{background:rgba(212,61,77,.12);color:#d43d4d}
.bre-date{align-items:flex-end;padding:10px;border-radius:14px;border:1px solid var(--bre-line);background:var(--bre-bot)}
.bre-date label{display:grid;gap:4px;font-size:11.5px;font-weight:900;color:var(--bre-muted);flex:1 1 120px}
.bre-date input,.bre-date select{min-height:38px;border:1px solid var(--bre-line);border-radius:10px;padding:6px 8px;background:var(--bre-panel);color:var(--bre-text);font:400 15px Lato,Arial,sans-serif;width:100%;box-sizing:border-box}
html[data-theme="dark"] .bre-date input{color-scheme:dark}

/* ===== v340 ===== */
/* Transparent Bré mark in the middle of the conversation window, behind the text. */
.bre-panel::after{content:"";position:absolute;left:50%;top:54%;width:240px;height:240px;max-width:60%;max-height:44%;transform:translate(-50%,-50%);
  background:url(/assets/bre-mark-clear-v340.png) center/contain no-repeat;opacity:.09;pointer-events:none;z-index:1}
html[data-theme="light"] .bre-panel::after{opacity:.12}
/* Phones: a bottom sheet that leaves the page visible, and a larger launcher button. */
@media (max-width:600px){
  .bre-panel,.bre-root[data-side="left"] .bre-panel{right:8px;left:8px;bottom:calc(8px + env(safe-area-inset-bottom,0px));width:auto;
    height:min(560px,calc(100vh - 96px));height:min(560px,calc(100dvh - 96px));max-height:calc(100% - 80px);border-radius:22px;border:1px solid var(--bre-line)}
  .bre-fab{width:66px;height:66px;right:16px;bottom:calc(18px + env(safe-area-inset-bottom,0px))}
  .bre-fab-label{right:76px}
}
@media (max-width:600px) and (max-height:520px){
  .bre-panel,.bre-root[data-side="left"] .bre-panel{height:calc(100vh - 16px);height:calc(100dvh - 16px);max-height:none;top:8px;bottom:8px}
  .bre-panel::after{width:150px;height:150px}
}

/* ===== v341: photo attachment ===== */
.bre-plus{flex:0 0 42px;width:42px;height:42px;border-radius:50%;border:1px solid var(--bre-line);background:transparent;color:var(--bre-text);cursor:pointer;display:grid;place-items:center;padding:0;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.bre-plus svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
.bre-plus:hover{background:var(--bre-chip)}
.bre-plus:focus-visible{outline:2px solid var(--bre-accent-2);outline-offset:2px}
.bre-attach{position:relative;display:flex;padding:8px 14px 0;background:var(--bre-bg);z-index:2}
.bre-attach[hidden]{display:none}
.bre-attach img{width:56px;height:56px;object-fit:cover;border-radius:12px;border:1px solid var(--bre-line);display:block}
.bre-attach-x{position:absolute;left:58px;top:2px;width:26px;height:26px;border-radius:50%;border:0;background:#0b1a3a;color:#fff;font-size:17px;line-height:1;cursor:pointer;display:grid;place-items:center;padding:0}
.bre-attach-x:focus-visible{outline:2px solid var(--bre-accent-2);outline-offset:2px}
.bre-msg.has-img{display:flex;flex-direction:column;gap:8px}
.bre-msg-img{display:block;width:160px;max-width:100%;height:auto;border-radius:12px}

/* ===== v342: voice and official links ===== */
.bre-mic{flex:0 0 42px;width:42px;height:42px;border-radius:50%;border:1px solid var(--bre-line);background:transparent;color:var(--bre-text);cursor:pointer;display:grid;place-items:center;padding:0;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.bre-mic svg,.bre-speak svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.bre-mic:hover{background:var(--bre-chip)}
.bre-mic.rec{background:#d1293d;border-color:#d1293d;color:#fff;animation:breRec 1.4s ease-in-out infinite}
@keyframes breRec{0%,100%{box-shadow:0 0 0 0 rgba(209,41,61,.45)}50%{box-shadow:0 0 0 7px rgba(209,41,61,0)}}
.bre-mic:focus-visible,.bre-speak:focus-visible,.bre-link:focus-visible{outline:2px solid var(--bre-accent-2);outline-offset:2px}
.bre-msg-tools{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.bre-speak{width:36px;height:36px;border-radius:50%;border:1px solid var(--bre-line);background:transparent;color:var(--bre-bot-text);cursor:pointer;display:grid;place-items:center;padding:0}
.bre-speak.on{background:var(--bre-accent-2,#4b8dff);color:#04122e;border-color:transparent}
.bre-link{display:inline-flex;align-items:center;min-height:36px;padding:0 12px;border-radius:18px;border:1px solid var(--bre-line);background:var(--bre-chip);color:var(--bre-chip-text);font:700 12.5px/1.2 inherit;text-decoration:none}
.bre-link:hover{text-decoration:underline}
@media (prefers-reduced-motion:reduce){.bre-mic.rec{animation:none}}
