/* ============================================================
   CATA Cinematic — widgets: FABs, concierge chat, newsletter
   Appended v2.3.4
   ============================================================ */

/* ---------- floating action buttons ---------- */
.cata-fab-stack{
	position:fixed;right:22px;bottom:22px;z-index:9990;
	display:flex;flex-direction:column;gap:12px;align-items:center;
}
.cata-fab{
	width:54px;height:54px;border-radius:50%;
	display:flex;align-items:center;justify-content:center;
	border:1px solid rgba(24,23,20,.18);cursor:pointer;
	background:var(--paper,#f4f1ea);color:var(--ink,#181714);
	box-shadow:0 6px 24px rgba(24,23,20,.16);
	transition:transform .25s ease,box-shadow .25s ease,background .25s ease;
	text-decoration:none;position:relative;
}
.cata-fab svg{width:24px;height:24px}
.cata-fab:hover{transform:translateY(-3px);box-shadow:0 10px 30px rgba(24,23,20,.22)}
.cata-fab-chat{background:var(--ink,#181714);color:var(--paper,#f4f1ea)}
.cata-fab-dot{
	position:absolute;top:4px;right:4px;width:10px;height:10px;border-radius:50%;
	background:#b3452c;border:2px solid var(--ink,#181714);
}
.cata-fab-wa svg{width:26px;height:26px}

/* chat panel geometry: lifts above the stack */
.cata-chat[hidden]{display:none!important}
.cata-chat{
	position:fixed;right:22px;bottom:92px;z-index:9991;
	width:min(380px,calc(100vw - 28px));
	max-height:min(600px,calc(100vh - 130px));
	display:flex;flex-direction:column;
	background:var(--paper,#f4f1ea);color:var(--ink,#181714);
	border:1px solid rgba(24,23,20,.15);border-radius:18px;
	box-shadow:0 24px 70px rgba(24,23,20,.30);
	overflow:hidden;
}
@media (max-width:480px){
	.cata-fab-stack{right:16px;bottom:16px}
	.cata-chat{right:14px;left:14px;width:auto;bottom:84px}
}

/* header */
.cata-chat-head{
	display:flex;align-items:center;justify-content:space-between;gap:12px;
	padding:16px 18px;border-bottom:1px solid rgba(24,23,20,.12);
	background:var(--ink,#181714);color:var(--paper,#f4f1ea);
}
.cata-chat-title{font-family:var(--serif,'Playfair Display',serif);font-size:19px;margin:0;letter-spacing:.01em}
.cata-chat-sub{margin:2px 0 0;font-size:12px;opacity:.72;letter-spacing:.02em}
.cata-chat-x{
	background:none;border:0;color:inherit;cursor:pointer;padding:8px;
	display:flex;border-radius:50%;transition:background .2s;
}
.cata-chat-x:hover{background:rgba(244,241,234,.14)}
.cata-chat-x svg{width:14px;height:14px}

/* body */
.cata-chat-body{
	flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;
	background:
		radial-gradient(120% 90% at 100% 0%,rgba(179,69,44,.05),transparent 55%),
		var(--paper,#f4f1ea);
	-webkit-overflow-scrolling:touch;
}
.cata-msg{
	max-width:86%;padding:10px 14px;border-radius:14px;
	font-size:14px;line-height:1.55;white-space:pre-line;
	animation:cata-msg-in .3s ease both;
}
@keyframes cata-msg-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.cata-msg-bot{
	align-self:flex-start;
	background:rgba(24,23,20,.06);
	border:1px solid rgba(24,23,20,.08);
	border-bottom-left-radius:4px;
}
.cata-msg-user{
	align-self:flex-end;
	background:var(--ink,#181714);color:var(--paper,#f4f1ea);
	border-bottom-right-radius:4px;
}

/* chips (answer buttons) */
.cata-chips{
	display:flex;flex-wrap:wrap;gap:8px;
	animation:cata-msg-in .35s ease both;
}
.cata-chip{
	appearance:none;border:1px solid rgba(24,23,20,.28);border-radius:999px;
	background:transparent;color:var(--ink,#181714);
	padding:8px 14px;font:500 13px/1.2 var(--sans,'DM Sans',sans-serif);
	cursor:pointer;transition:background .2s,color .2s,border-color .2s;
	text-decoration:none;display:inline-flex;align-items:center;gap:6px;
}
.cata-chip:hover{background:var(--ink,#181714);color:var(--paper,#f4f1ea);border-color:var(--ink,#181714)}
.cata-chip-wa{border-color:#1f7a4d;color:#1f7a4d;font-weight:600}
.cata-chip-wa:hover{background:#1f7a4d;color:#fff;border-color:#1f7a4d}
.cata-chip-plan{border-color:var(--ink,#181714);font-weight:600}
.cata-chip .arr{width:11px;height:11px}

/* footer CTA strip */
.cata-chat-cta{
	border-top:1px solid rgba(24,23,20,.12);
	padding:12px 16px;background:rgba(24,23,20,.03);
}
.cata-chat-wa{
	display:flex;align-items:center;justify-content:space-between;gap:10px;
	font:600 13.5px/1.3 var(--sans,'DM Sans',sans-serif);
	color:var(--ink,#181714);text-decoration:none;letter-spacing:.01em;
}
.cata-chat-wa:hover .arr{transform:translate(2px,-2px)}
.cata-chat-wa .arr{transition:transform .2s ease}

/* ---------- newsletter band ---------- */
.nl-band{
	margin:0;padding:clamp(48px,8vw,84px) clamp(20px,6vw,72px);
	background:var(--ink,#181714);color:var(--paper,#f4f1ea);
	display:grid;grid-template-columns:minmax(260px,1fr) minmax(300px,1.2fr);
	gap:clamp(24px,5vw,64px);align-items:center;
}
@media (max-width:820px){.nl-band{grid-template-columns:1fr}}
.nl-title{
	font-family:var(--serif,'Playfair Display',serif);
	font-size:clamp(26px,3.4vw,38px);margin:0 0 10px;line-height:1.15;
}
.nl-note{margin:0;font-size:14.5px;line-height:1.65;opacity:.75;max-width:46ch}
.nl-form{
	display:grid;grid-template-columns:1fr 1.4fr 1fr auto;
	gap:10px;align-items:end;
}
@media (max-width:640px){.nl-form{grid-template-columns:1fr 1fr}.nl-btn{grid-column:1/-1}}
.nl-form input,.nl-form select{
	background:transparent;border:0;border-bottom:1px solid rgba(244,241,234,.4);
	color:var(--paper,#f4f1ea);padding:11px 2px;font:400 15px var(--sans,'DM Sans',sans-serif);
	border-radius:0;min-width:0;width:100%;
}
.nl-form input::placeholder{color:rgba(244,241,234,.5)}
.nl-form select option{color:#181714}
.nl-form input:focus,.nl-form select:focus{outline:none;border-bottom-color:var(--paper,#f4f1ea)}
.nl-btn{
	appearance:none;border:1px solid var(--paper,#f4f1ea);background:transparent;
	color:var(--paper,#f4f1ea);border-radius:999px;
	padding:11px 22px;font:600 14px var(--sans,'DM Sans',sans-serif);
	cursor:pointer;display:inline-flex;align-items:center;gap:8px;
	transition:background .25s,color .25s;white-space:nowrap;
}
.nl-btn:hover{background:var(--paper,#f4f1ea);color:var(--ink,#181714)}
.nl-btn .arr{width:11px;height:11px}
.nl-done{display:block}
.nl-done .nl-note{margin-top:6px}

/* honeypot: real humans never see this */
.cata-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}

/* visually hidden helper */
.visually-hidden{
	position:absolute!important;width:1px;height:1px;margin:-1px;
	clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;
}

/* ---------- FAQ drawer (plan page) ---------- */
.faq-drawer{padding:clamp(56px,9vw,110px) clamp(20px,6vw,72px)}
.faq-drawer .faq-head{
	font-family:var(--serif,'Playfair Display',serif);
	font-size:clamp(28px,3.6vw,44px);margin:0 0 8px;
}
.faq-drawer .faq-sub{margin:0 0 34px;font-size:15px;opacity:.7}
.faq-list{border-top:1px solid rgba(24,23,20,.14)}
.faq-item{border-bottom:1px solid rgba(24,23,20,.14)}
.faq-q{
	width:100%;appearance:none;background:none;border:0;cursor:pointer;
	display:flex;align-items:center;justify-content:space-between;gap:18px;
	padding:20px 4px;text-align:left;
	font:500 16.5px/1.4 var(--sans,'DM Sans',sans-serif);color:inherit;
}
.faq-q:hover{color:#b3452c}
.faq-q .faq-ico{
	flex:0 0 auto;width:12px;height:12px;position:relative;transition:transform .3s ease;
}
.faq-q .faq-ico::before,.faq-q .faq-ico::after{
	content:"";position:absolute;background:currentColor;border-radius:1px;
}
.faq-q .faq-ico::before{left:0;top:5px;width:12px;height:2px}
.faq-q .faq-ico::after{left:5px;top:0;width:2px;height:12px}
.faq-item.is-open .faq-ico{transform:rotate(45deg)}
.faq-a{
	max-height:0;overflow:hidden;transition:max-height .35s ease;
}
.faq-a-inner{
	padding:0 4px 22px;font-size:15px;line-height:1.7;opacity:.85;max-width:62ch;
}
