/**
 * Iris — front-end chat. Brand-styled, self-contained. The launcher is stacked
 * ABOVE the theme back-to-top button (.tol-scrolltop: right clamp(18,2.5vw,34),
 * bottom clamp(22,3vw,40), 52px; 44px + bottom 20 + right 16 on mobile) so the
 * two never overlap and both stay clickable. Buttons are kit-proofed: the
 * Elementor kit paints bare <button> pink with a radius, so backgrounds/borders/
 * radii are forced under body.tol-site + !important.
 */

.tol-iris-launcher,
.tol-iris-panel {
	--iris-plum:#6E1248; --iris-petal:#9E2D63; --iris-accent:#F2ADC2;
	--iris-cream:#F6F2EC; --iris-ink:#2B2520;
	--iris-bb:clamp(22px,3vw,40px); /* back-to-top bottom offset */
	font-family:var(--font-body,"freight-sans-pro",system-ui,sans-serif);
}

/* ---------- launcher bubble ---------- */
body.tol-site .tol-iris-launcher,
.tol-iris-launcher {
	position:fixed; z-index:950;
	right:clamp(18px,2.5vw,34px);
	bottom:calc(var(--iris-bb) + 68px); /* 52px button + 16px gap above it */
	display:inline-flex !important; align-items:center; gap:9px;
	padding:0 18px 0 15px !important; height:54px !important; min-height:0 !important;
	border:0 !important; border-radius:999px !important;
	background:var(--iris-plum) !important; color:#fff !important;
	font-size:.95rem; font-weight:600; letter-spacing:.01em; cursor:pointer;
	box-shadow:0 12px 30px color-mix(in srgb,var(--iris-ink) 26%,transparent);
	transition:background .2s ease, transform .2s ease, box-shadow .2s ease;
}
body.tol-site .tol-iris-launcher:hover,
.tol-iris-launcher:hover { background:#8a2560 !important; transform:translateY(-2px); }
body.tol-site .tol-iris-launcher:focus-visible,
.tol-iris-launcher:focus-visible { outline:3px solid var(--iris-accent); outline-offset:3px; }
.tol-iris-launcher .tol-iris-launcher-ico { display:inline-flex; }
.tol-iris-launcher .tol-iris-launcher-ico svg { display:block; stroke:#fff; }
.tol-iris-launcher-label { white-space:nowrap; }

/* hide the launcher while the panel is open on small screens (panel fills area) */
body.tol-iris-open .tol-iris-launcher { }

/* ---------- Contact-panel slot button (sits on the plum panel) ---------- */
body.tol-site .tol-iris-slotbtn,
.tol-iris-slotbtn {
	display:inline-flex !important; align-items:center; gap:9px;
	margin-top:4px; padding:12px 20px !important; min-height:0 !important;
	border:0 !important; border-radius:999px !important;
	background:var(--iris-cream,#F6F2EC) !important; color:var(--iris-plum,#6E1248) !important;
	font-family:var(--font-body,"freight-sans-pro",system-ui,sans-serif);
	font-size:.95rem; font-weight:600; letter-spacing:.01em; cursor:pointer;
	box-shadow:0 8px 22px rgba(43,20,35,.28); transition:background .2s ease, transform .2s ease;
}
body.tol-site .tol-iris-slotbtn:hover,
.tol-iris-slotbtn:hover { background:#fff !important; transform:translateY(-1px); }
body.tol-site .tol-iris-slotbtn:focus-visible,
.tol-iris-slotbtn:focus-visible { outline:3px solid var(--iris-accent); outline-offset:3px; }
.tol-iris-slotbtn svg { display:block; stroke:var(--iris-plum,#6E1248); }

/* ---------- launcher teaser (hover on desktop, one-shot peek on touch) ----------
   Sits ABOVE the launcher so it never covers the tap target. Same right edge and the
   same --iris-bb stack as the launcher/back-to-top column. */
.tol-iris-teaser {
	--iris-plum:#6E1248; --iris-petal:#9E2D63; --iris-accent:#F2ADC2;
	--iris-cream:#F6F2EC; --iris-ink:#2B2520; --iris-bb:clamp(22px,3vw,40px);
	position:fixed; z-index:951;
	right:clamp(18px,2.5vw,34px);
	bottom:calc(var(--iris-bb) + 134px); /* launcher bottom (bb+68) + 54px launcher + 12px gap */
	width:max-content; max-width:min(232px, calc(100vw - 40px));
	display:flex; align-items:flex-start; gap:8px;
	padding:11px 10px 11px 14px;
	background:var(--iris-cream); color:var(--iris-ink);
	border-radius:14px 14px 4px 14px;
	box-shadow:0 10px 28px rgba(43,20,35,.22);
	font-family:var(--font-body,"freight-sans-pro",system-ui,sans-serif);
	font-size:.86rem; line-height:1.4;
	opacity:0; transform:translateY(6px) scale(.98); pointer-events:none;
	transition:opacity .2s ease, transform .2s cubic-bezier(.22,.61,.36,1);
}
.tol-iris-teaser[hidden] { display:none; }
.tol-iris-teaser.is-visible { opacity:1; transform:none; pointer-events:auto; }
.tol-iris-teaser-text { display:block; }
body.tol-site .tol-iris-teaser-close,
.tol-iris-teaser-close {
	appearance:none !important; -webkit-appearance:none !important;
	background:transparent !important; border:0 !important; box-shadow:none !important;
	width:20px !important; height:20px !important; min-height:0 !important;
	padding:0 !important; margin:1px 0 0 0 !important; border-radius:50% !important;
	display:inline-flex !important; align-items:center; justify-content:center;
	color:var(--iris-plum) !important; opacity:.55; cursor:pointer; flex:0 0 20px;
}
body.tol-site .tol-iris-teaser-close:hover, .tol-iris-teaser-close:hover { opacity:1; background:rgba(110,18,72,.10) !important; }
body.tol-site .tol-iris-teaser-close:focus-visible, .tol-iris-teaser-close:focus-visible { opacity:1; outline:2px solid var(--iris-plum); outline-offset:1px; }
body.tol-iris-open .tol-iris-teaser { opacity:0 !important; pointer-events:none !important; }

/* ---------- welcome disclaimer (muted, under the first Iris message) ---------- */
.tol-iris-disclaimer {
	align-self:flex-start; max-width:92%;
	margin:-2px 2px 2px 2px; padding:0 2px;
	font-size:.72rem; line-height:1.45; color:#6E665E;
	font-family:var(--font-body,"freight-sans-pro",system-ui,sans-serif);
}
/* Kit-proof: the Elementor kit paints links #C94A84, which is only 3.93:1 on the cream
   panel and fails AA at this 11.5px size. Force plum (10.22:1) / petal on hover (6.26:1). */
body.tol-site .tol-iris-disclaimer-link,
.tol-iris-disclaimer-link { color:#6E1248 !important; text-decoration:underline; text-underline-offset:2px; font-weight:600; }
body.tol-site .tol-iris-disclaimer-link:hover,
.tol-iris-disclaimer-link:hover { color:#9E2D63 !important; }
body.tol-site .tol-iris-disclaimer-link:focus-visible,
.tol-iris-disclaimer-link:focus-visible { outline:2px solid var(--iris-accent,#F2ADC2); outline-offset:2px; }

/* ---------- panel ---------- */
.tol-iris-panel {
	position:fixed; z-index:99900;
	right:clamp(18px,2.5vw,34px);
	bottom:calc(var(--iris-bb) + 140px); /* clears launcher (54) + gap */
	width:min(380px, calc(100vw - 36px));
	height:min(70vh, 540px);
	display:flex; flex-direction:column; overflow:hidden;
	background:var(--iris-cream); color:var(--iris-ink);
	border-radius:20px; box-shadow:0 24px 60px rgba(43,20,35,.34);
	opacity:0; transform:translateY(12px) scale(.98); pointer-events:none;
	transition:opacity .22s ease, transform .22s cubic-bezier(.22,.61,.36,1);
}
body.tol-iris-open .tol-iris-panel { opacity:1; transform:none; pointer-events:auto; }

/* header */
.tol-iris-head {
	display:flex; align-items:center; justify-content:space-between; gap:10px;
	padding:13px 14px 13px 16px; background:var(--iris-plum); color:#fff;
}
.tol-iris-head-id { display:flex; align-items:center; gap:10px; min-width:0; }
/* Avatar: the flower asset is PALE petal-pink (#D7A0B4, luminance 173/255), so it needs a
   PLUM disc (5.20:1) — on the old petal circle it was 1.20:1, effectively invisible. The
   header is the same plum, so a petal hairline keeps the disc legible against it. */
.tol-iris-avatar {
	width:34px; height:34px; border-radius:50%; flex:0 0 34px;
	display:inline-flex; align-items:center; justify-content:center;
	background:var(--iris-plum); color:var(--iris-accent);
	box-shadow:inset 0 0 0 1px rgba(242,173,194,.45);
	font-family:var(--font-display,"freight-big-pro",Georgia,serif); font-weight:700; font-size:1rem;
}
/* 22px inside a 34px disc = 6px optical padding; explicit size keeps the @4x crisp, not oversized */
.tol-iris-avatar img { width:22px !important; height:22px !important; display:block; object-fit:contain; }
.tol-iris-launcher .tol-iris-launcher-ico img { width:26px !important; height:26px !important; display:block; object-fit:contain; }
.tol-iris-title { display:flex; flex-direction:column; line-height:1.15; }
.tol-iris-title b { font-size:1rem; font-weight:600; }
.tol-iris-title span { font-size:.72rem; opacity:.85; }
.tol-iris-head-tools { display:flex; align-items:center; gap:2px; }
body.tol-site .tol-iris-head-tools button,
.tol-iris-head-tools button {
	appearance:none !important; -webkit-appearance:none !important;
	background:transparent !important; border:0 !important; border-radius:50% !important;
	box-shadow:none !important; width:34px !important; height:34px !important;
	min-height:0 !important; padding:0 !important; margin:0 !important;
	display:inline-flex !important; align-items:center; justify-content:center;
	color:#fff !important; cursor:pointer; opacity:.85; transition:opacity .15s ease, background-color .15s ease;
}
body.tol-site .tol-iris-head-tools button:hover,
.tol-iris-head-tools button:hover { opacity:1; background:rgba(255,255,255,.15) !important; }
body.tol-site .tol-iris-head-tools button:focus-visible,
.tol-iris-head-tools button:focus-visible { opacity:1; outline:2px solid #fff; outline-offset:2px; }
.tol-iris-head-tools button svg { display:block; stroke:#fff; }
.tol-iris-head-tools button[hidden] { display:none !important; }

/* message log */
.tol-iris-log {
	flex:1 1 auto; overflow-y:auto; -webkit-overflow-scrolling:touch;
	padding:16px 14px 6px; display:flex; flex-direction:column; gap:10px;
}
.tol-iris-msg { max-width:86%; padding:11px 14px; border-radius:15px; font-size:.92rem; line-height:1.5; }
.tol-iris-msg.iris { align-self:flex-start; background:#fff; color:var(--iris-ink); border-bottom-left-radius:5px;
	box-shadow:0 2px 8px rgba(43,20,35,.06); }
.tol-iris-msg.user { align-self:flex-end; background:var(--iris-plum); color:#fff; border-bottom-right-radius:5px; }

/* options + email form */
.tol-iris-options { padding:6px 14px 14px; display:flex; flex-direction:column; gap:8px; }
body.tol-site .tol-iris-opt,
.tol-iris-opt {
	appearance:none !important; -webkit-appearance:none !important; text-align:left;
	width:100%; padding:11px 15px !important; min-height:0 !important; margin:0 !important;
	background:#fff !important; color:var(--iris-plum) !important;
	border:1.5px solid rgba(110,18,72,.35) !important; border-radius:12px !important; box-shadow:none !important;
	font-family:inherit; font-size:.9rem; font-weight:600; letter-spacing:.01em; cursor:pointer; line-height:1.35;
	transition:background .15s ease, color .15s ease, border-color .15s ease, transform .1s ease;
}
body.tol-site .tol-iris-opt:hover,
.tol-iris-opt:hover { background:var(--iris-plum) !important; color:#fff !important; border-color:var(--iris-plum) !important; }
body.tol-site .tol-iris-opt:focus-visible,
.tol-iris-opt:focus-visible { outline:3px solid var(--iris-accent); outline-offset:2px; }
.tol-iris-opt.is-action { border-style:dashed !important; }

/* email capture */
.tol-iris-email { display:flex; flex-direction:column; gap:9px; }
.tol-iris-email input[type=email] {
	width:100%; padding:12px 14px; border:1.5px solid rgba(110,18,72,.4); border-radius:12px;
	font-family:inherit; font-size:.95rem; color:var(--iris-ink); background:#fff;
}
.tol-iris-email input[type=email]:focus-visible { outline:3px solid var(--iris-accent); outline-offset:1px; border-color:var(--iris-plum); }
.tol-iris-email-row { display:flex; gap:8px; }
body.tol-site .tol-iris-send,
.tol-iris-send {
	flex:1 1 auto; padding:11px 15px !important; min-height:0 !important; border:0 !important; border-radius:12px !important;
	background:var(--iris-plum) !important; color:#fff !important; box-shadow:none !important;
	font-family:inherit; font-size:.9rem; font-weight:600; cursor:pointer; transition:background .15s ease;
}
body.tol-site .tol-iris-send:hover, .tol-iris-send:hover { background:#8a2560 !important; }
body.tol-site .tol-iris-skip,
.tol-iris-skip {
	flex:0 0 auto; padding:11px 15px !important; min-height:0 !important; border:1.5px solid rgba(110,18,72,.35) !important;
	border-radius:12px !important; background:#fff !important; color:var(--iris-plum) !important; box-shadow:none !important;
	font-family:inherit; font-size:.9rem; font-weight:600; cursor:pointer;
}
body.tol-site .tol-iris-send:focus-visible, .tol-iris-send:focus-visible,
body.tol-site .tol-iris-skip:focus-visible, .tol-iris-skip:focus-visible { outline:3px solid var(--iris-accent); outline-offset:2px; }
.tol-iris-email-err { color:#8a1a1a; font-size:.82rem; min-height:1em; }

/* keyword composer */
.tol-iris-composer { display:flex; gap:8px; padding:10px 14px; border-top:1px solid rgba(43,20,35,.1); background:rgba(255,255,255,.5); }
.tol-iris-composer input {
	flex:1 1 auto; padding:10px 13px; border:1.5px solid rgba(110,18,72,.3); border-radius:999px;
	font-family:inherit; font-size:.88rem; color:var(--iris-ink); background:#fff;
}
.tol-iris-composer input:focus-visible { outline:2px solid var(--iris-accent); outline-offset:1px; border-color:var(--iris-plum); }
body.tol-site .tol-iris-composer button,
.tol-iris-composer button {
	flex:0 0 auto; width:42px; height:42px; min-height:0 !important; padding:0 !important; border:0 !important;
	border-radius:50% !important; background:var(--iris-plum) !important; color:#fff !important; box-shadow:none !important;
	display:inline-flex !important; align-items:center; justify-content:center; cursor:pointer;
}
body.tol-site .tol-iris-composer button:hover, .tol-iris-composer button:hover { background:#8a2560 !important; }
body.tol-site .tol-iris-composer button:focus-visible, .tol-iris-composer button:focus-visible { outline:3px solid var(--iris-accent); outline-offset:2px; }
.tol-iris-composer button svg { display:block; stroke:#fff; }
.tol-iris-panel.is-email .tol-iris-composer { display:none; } /* no double input on the email node */

/* ---------- mobile ---------- */
@media (max-width:560px){
	body.tol-site .tol-iris-launcher, .tol-iris-launcher {
		right:16px; bottom:calc(20px + 44px + 14px); /* above the 44px mobile back-to-top */
		height:52px !important; padding:0 16px !important;
	}
	.tol-iris-panel {
		right:10px; left:10px; bottom:10px; width:auto;
		height:min(82vh, calc(100dvh - 24px));
	}
	body.tol-iris-open .tol-iris-launcher { opacity:0; visibility:hidden; pointer-events:none; }
	/* teaser clears the 52px mobile launcher (bottom 78px) + 12px gap */
	.tol-iris-teaser { right:16px; bottom:calc(20px + 44px + 14px + 52px + 12px); max-width:calc(100vw - 32px); }
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
	.tol-iris-launcher, .tol-iris-slotbtn, .tol-iris-panel, .tol-iris-opt, .tol-iris-teaser { transition:none !important; }
	.tol-iris-panel, .tol-iris-teaser { transform:none; }
	.tol-iris-launcher:hover, .tol-iris-slotbtn:hover { transform:none !important; }
}
