/* ChatVibes landing/login style
   Isolated public login page for ChatVibes. No logged-in chat styles are modified. */

:root {
	--cv-ink:#2f2a24;
	--cv-muted:#70685e;
	--cv-cream:#fbf8f1;
	--cv-sand:#eee4d2;
	--cv-tan:#c9ad82;
	--cv-hazel:#8b6746;
	--cv-olive:#6c7736;
	--cv-olive-2:#87934a;
	--cv-dark:#343823;
	--cv-white:#fff;
	--cv-border:rgba(79,68,53,.12);
	--cv-shadow:0 24px 60px rgba(64,53,39,.13);
}

html, body { min-height:100%; }
body { overflow-x:hidden; }
#login_wrap.cv-login-wrap { width:100%; min-height:100%; height:auto; background:var(--cv-cream); color:var(--cv-ink); }
#cv_landing, #cv_landing * { box-sizing:border-box; }
#cv_landing { width:100%; overflow:hidden; font-family:inherit; }
#cv_landing button, #cv_landing a { -webkit-tap-highlight-color:transparent; }

.cv-shell { width:min(1180px, calc(100% - 40px)); margin:0 auto; position:relative; z-index:2; }
.cv-narrow { width:min(820px, calc(100% - 40px)); }

.cv-hero { position:relative; min-height:min(790px, 92svh); display:flex; align-items:center; padding:76px 0 64px; background:linear-gradient(135deg,#fbf8f1 0%,#f3eadb 54%,#e2d4bb 100%); isolation:isolate; }
.cv-hero:after { content:""; position:absolute; inset:auto -12% -180px -12%; height:300px; background:var(--cv-cream); border-radius:50% 50% 0 0/45% 45% 0 0; z-index:0; }
.cv-hero-bg { position:absolute; border-radius:999px; filter:blur(1px); z-index:-1; opacity:.6; }
.cv-hero-bg-one { width:460px; height:460px; right:-170px; top:-150px; background:rgba(108,119,54,.15); }
.cv-hero-bg-two { width:360px; height:360px; left:-180px; bottom:-130px; background:rgba(139,103,70,.12); }
.cv-hero-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(420px,.92fr); gap:68px; align-items:center; }
.cv-brand { display:inline-flex; align-items:center; margin-bottom:28px; }
#cv_landing #login_logo { height:58px; width:auto; max-width:220px; object-fit:contain; }
.cv-eyebrow, .cv-section-kicker { margin:0 0 12px; color:var(--cv-olive); font-size:13px; line-height:1.4; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.cv-eyebrow i { margin-right:7px; }
.cv-hero h1 { margin:0; max-width:680px; color:var(--cv-ink); font-size:clamp(42px,5.3vw,76px); line-height:.98; letter-spacing:-.045em; font-weight:800; }
.cv-hero h1 span { color:var(--cv-olive); }
.cv-lead { max-width:650px; margin:24px 0 0; color:#544d44; font-size:clamp(17px,1.5vw,20px); line-height:1.7; }
.cv-actions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; width:100%; max-width:650px; margin-top:30px; }
.cv-btn { min-width:0; width:100%; min-height:54px; border:0; border-radius:14px; padding:0 18px; display:inline-flex; align-items:center; justify-content:center; gap:9px; cursor:pointer; font:inherit; font-size:15px; font-weight:800; white-space:nowrap; transition:transform .18s ease, box-shadow .18s ease, background .18s ease; }
.cv-btn:hover { transform:translateY(-2px); }
.cv-btn-primary { background:linear-gradient(135deg,var(--cv-olive),var(--cv-olive-2)); color:#fff; box-shadow:0 12px 28px rgba(108,119,54,.25); }
.cv-btn-member { background:linear-gradient(135deg,var(--cv-hazel),#a77f58); color:#fff; border:1px solid rgba(96,67,43,.16); box-shadow:0 12px 28px rgba(139,103,70,.24); }
.cv-btn-member:hover { background:linear-gradient(135deg,#7d5c3f,#98704e); box-shadow:0 15px 31px rgba(139,103,70,.3); }
.cv-btn-secondary { background:#fff; color:var(--cv-ink); border:1px solid rgba(70,61,48,.12); box-shadow:0 10px 24px rgba(70,61,48,.08); }
.cv-btn-light { background:#fff; color:var(--cv-dark); }
.cv-trust-row { display:flex; flex-wrap:wrap; gap:9px; margin-top:28px; }
.cv-trust-row span { display:inline-flex; align-items:center; gap:6px; padding:8px 11px; border:1px solid rgba(108,119,54,.15); background:rgba(255,255,255,.53); border-radius:999px; color:#5b5848; font-size:12px; font-weight:700; backdrop-filter:blur(5px); }
.cv-trust-row i { color:var(--cv-olive); }

.cv-hero-card { position:relative; padding:24px 10px 20px; }
.cv-chat-window { position:relative; overflow:hidden; border:1px solid rgba(77,64,46,.12); border-radius:24px; background:#fff; box-shadow:var(--cv-shadow); transform:rotate(1deg); }
.cv-window-top { height:48px; display:flex; align-items:center; gap:7px; padding:0 15px; background:#efe5d5; border-bottom:1px solid rgba(70,61,48,.08); }
.cv-window-dot { width:9px; height:9px; border-radius:50%; background:#b99e77; }
.cv-window-dot:nth-child(2){ background:#8f9960; }
.cv-window-dot:nth-child(3){ background:#d1bd9d; }
.cv-window-address { margin-left:auto; margin-right:auto; padding:7px 14px; border-radius:999px; background:rgba(255,255,255,.7); color:#685f53; font-size:11px; font-weight:700; }
.cv-window-address i { color:var(--cv-olive); margin-right:4px; }
.cv-chat-body { min-height:420px; display:grid; grid-template-columns:145px 1fr; }
.cv-chat-side { padding:22px 14px; background:linear-gradient(180deg,#3c4029,#30341f); color:#eee9dc; }
.cv-chat-side strong { display:block; font-size:14px; margin-bottom:8px; }
.cv-online { display:block; color:#cbd3a2; font-size:10px; margin-bottom:24px; }
.cv-online b { display:inline-block; width:7px; height:7px; background:#9db65b; border-radius:50%; margin-right:5px; }
.cv-room { margin:6px -5px; padding:9px 8px; border-radius:9px; color:#cfccb9; font-size:11px; }
.cv-room.active { background:rgba(255,255,255,.09); color:#fff; }
.cv-room i { width:18px; color:#aeb97c; }
.cv-chat-main { position:relative; padding:25px 22px 72px; background:#fbfaf6; }
.cv-message { display:flex; gap:9px; max-width:88%; margin:0 0 17px; padding:11px 12px; border-radius:14px; box-shadow:0 5px 12px rgba(66,57,45,.06); }
.cv-message-light { background:#fff; }
.cv-message-green { margin-left:auto; background:#dde3bd; }
.cv-avatar { flex:0 0 29px; height:29px; border-radius:50%; display:grid; place-items:center; background:#878f50; color:#fff; font-size:11px; font-weight:800; }
.cv-message b { color:#4b483f; font-size:10px; }
.cv-message p { margin:3px 0 0; color:#5d584f; font-size:11px; line-height:1.45; }
.cv-fake-input { position:absolute; left:20px; right:20px; bottom:17px; height:42px; border:1px solid #e5dfd3; border-radius:13px; background:#fff; display:flex; align-items:center; justify-content:space-between; padding:0 13px; color:#a09687; font-size:11px; }
.cv-fake-input i { width:28px; height:28px; display:grid; place-items:center; border-radius:50%; background:var(--cv-olive); color:#fff; }
.cv-floating-badge { position:absolute; display:flex; align-items:center; gap:10px; min-width:200px; padding:11px 13px; border-radius:14px; background:#fff; color:#4e493f; box-shadow:0 15px 32px rgba(65,54,40,.15); border:1px solid rgba(75,66,54,.08); z-index:3; }
.cv-floating-badge > i { width:34px; height:34px; display:grid; place-items:center; border-radius:11px; background:#e6e9d4; color:var(--cv-olive); }
.cv-floating-badge b, .cv-floating-badge small { display:block; }
.cv-floating-badge b { font-size:11px; }
.cv-floating-badge small { margin-top:2px; font-size:9px; color:#837b70; }
.cv-badge-top { right:-18px; top:2px; }
.cv-badge-bottom { left:-18px; bottom:0; }
.cv-language { position:absolute; top:18px; right:20px; z-index:5; width:42px; height:42px; display:grid; place-items:center; background:rgba(255,255,255,.72); border:1px solid rgba(83,71,55,.08); border-radius:13px; cursor:pointer; box-shadow:0 7px 18px rgba(75,63,48,.08); }
.cv-language img { width:24px; height:auto; border-radius:2px; }

.cv-section { position:relative; padding:90px 0; background:var(--cv-cream); }
.cv-section-intro { padding-top:60px; }
.cv-section-soft { background:#f0e8da; }
.cv-section-dark { background:linear-gradient(135deg,#353a24,#464b2c); color:#f8f5ed; }
.cv-section-links { background:#f5f0e6; }
.cv-section-faq { background:#fff; }
.cv-section h2, .cv-final-cta h2 { margin:0 0 20px; color:var(--cv-ink); font-size:clamp(30px,3.5vw,48px); line-height:1.08; letter-spacing:-.025em; }
.cv-section p { color:#625c53; font-size:16px; line-height:1.78; }
.cv-section p + p { margin-top:16px; }
.cv-section-heading { max-width:720px; margin-bottom:42px; }
.cv-section-heading > p:last-child { margin-bottom:0; }
.cv-feature-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.cv-feature-card { padding:27px; min-height:230px; background:rgba(255,255,255,.72); border:1px solid rgba(81,70,55,.1); border-radius:20px; box-shadow:0 12px 28px rgba(71,60,45,.055); }
.cv-feature-icon, .cv-big-icon { width:49px; height:49px; display:grid; place-items:center; border-radius:15px; background:#e1e5c7; color:var(--cv-olive); font-size:20px; }
.cv-feature-card h3 { margin:20px 0 10px; color:var(--cv-ink); font-size:19px; }
.cv-feature-card p { margin:0; font-size:14px; line-height:1.7; }
.cv-split { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.cv-copy-card { padding:36px; border:1px solid var(--cv-border); border-radius:24px; background:#fff; box-shadow:0 14px 35px rgba(71,60,45,.055); }
.cv-copy-card .cv-section-kicker { margin-top:24px; }
.cv-copy-card h2 { font-size:clamp(27px,3vw,39px); }
.cv-inline-link { display:inline-flex; align-items:center; gap:8px; margin-top:16px; color:var(--cv-olive)!important; font-weight:800; text-decoration:none!important; }
.cv-inline-link:hover { text-decoration:underline!important; }
.cv-section-dark .cv-section-kicker { color:#bdc991; }
.cv-section-dark h2 { color:#fff; }
.cv-section-dark p { color:#e2dfd2; }
.cv-guest-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:60px; align-items:center; }
.cv-compare { display:grid; gap:13px; }
.cv-compare-card { display:flex; gap:15px; align-items:flex-start; padding:22px; background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.11); border-radius:18px; }
.cv-compare-card > span { flex:0 0 42px; height:42px; display:grid; place-items:center; border-radius:12px; background:#d8ddb9; color:#42472a; }
.cv-compare-card h3 { margin:0 0 6px; color:#fff; font-size:18px; }
.cv-compare-card p { margin:0; font-size:14px; }
.cv-link-grid { display:grid; grid-template-columns:1fr 1fr; gap:13px; }
.cv-link-grid a { min-height:86px; display:grid; grid-template-columns:42px 1fr 16px; align-items:center; gap:13px; padding:17px 19px; background:#fff; border:1px solid var(--cv-border); border-radius:17px; color:var(--cv-ink)!important; text-decoration:none!important; transition:transform .18s ease, box-shadow .18s ease; }
.cv-link-grid a:hover { transform:translateY(-2px); box-shadow:0 10px 24px rgba(68,57,43,.08); }
.cv-link-grid > a > i:first-child { width:42px; height:42px; display:grid; place-items:center; border-radius:12px; background:#e6e8d3; color:var(--cv-olive); }
.cv-link-grid b, .cv-link-grid small { display:block; }
.cv-link-grid b { margin-bottom:3px; }
.cv-link-grid small { color:#7b7368; font-size:12px; line-height:1.4; }
.cv-link-grid > a > i:last-child { color:#a69c8d; font-size:11px; }
.cv-faq-list { margin-top:32px; border-top:1px solid var(--cv-border); }
.cv-faq-list details { border-bottom:1px solid var(--cv-border); }
.cv-faq-list summary { position:relative; padding:21px 42px 21px 0; cursor:pointer; color:var(--cv-ink); font-size:16px; font-weight:800; list-style:none; }
.cv-faq-list summary::-webkit-details-marker { display:none; }
.cv-faq-list summary:after { content:"+"; position:absolute; right:8px; top:18px; color:var(--cv-olive); font-size:25px; font-weight:400; }
.cv-faq-list details[open] summary:after { content:"−"; }
.cv-faq-list details p { margin:-6px 0 22px; padding-right:35px; font-size:14px; }
.cv-final-cta { padding:65px 0; background:#dfd2bb; }
.cv-final-inner { display:grid; grid-template-columns:1fr auto; gap:35px; align-items:center; }
.cv-final-cta h2 { margin-bottom:9px; font-size:clamp(29px,3vw,42px); }
.cv-final-cta p:not(.cv-section-kicker) { margin:0; color:#655d52; font-size:15px; }
.cv-actions-final { margin-top:0; max-width:620px; justify-self:end; }

/* CodyChat page footer remains functional; only gentle public-page treatment. */
.cv-login-wrap .page_footer, .cv-login-wrap #page_footer { background:#2e3121; color:#d9d6c9; }

@media (max-width:980px){
	.cv-hero { min-height:auto; padding:86px 0 90px; }
	.cv-hero-grid { grid-template-columns:1fr; gap:58px; }
	.cv-hero-copy { text-align:center; }
	.cv-brand { justify-content:center; }
	.cv-lead { margin-left:auto; margin-right:auto; }
	.cv-actions { margin-left:auto; margin-right:auto; }
	.cv-trust-row { justify-content:center; }
	.cv-hero-card { width:min(620px,100%); margin:0 auto; }
	.cv-feature-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.cv-guest-grid { grid-template-columns:1fr; gap:30px; }
	.cv-final-inner { grid-template-columns:1fr; text-align:center; }
	.cv-actions-final { justify-self:center; }
}

@media (max-width:700px){
	.cv-shell, .cv-narrow { width:min(100% - 28px,1180px); }
	.cv-hero { padding:74px 0 70px; }
	#cv_landing #login_logo { height:50px; max-width:185px; }
	.cv-hero h1 { font-size:clamp(39px,13vw,58px); }
	.cv-lead { font-size:16px; line-height:1.65; }
	.cv-actions { grid-template-columns:1fr; width:100%; max-width:460px; }
	.cv-btn { width:100%; }
	.cv-trust-row { gap:7px; }
	.cv-chat-body { grid-template-columns:92px 1fr; min-height:350px; }
	.cv-chat-side { padding:18px 8px; }
	.cv-chat-side strong { font-size:11px; }
	.cv-room { font-size:9px; padding:8px 5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
	.cv-room i { width:13px; }
	.cv-chat-main { padding:18px 12px 64px; }
	.cv-message { max-width:96%; padding:9px; }
	.cv-message p { font-size:9px; }
	.cv-message b { font-size:9px; }
	.cv-avatar { flex-basis:23px; height:23px; }
	.cv-fake-input { left:11px; right:11px; }
	.cv-floating-badge { min-width:0; max-width:185px; padding:9px 10px; }
	.cv-badge-top { right:-3px; top:-11px; }
	.cv-badge-bottom { left:-3px; bottom:-17px; }
	.cv-floating-badge > i { width:29px; height:29px; }
	.cv-floating-badge b { font-size:9px; }
	.cv-floating-badge small { font-size:8px; }
	.cv-section { padding:67px 0; }
	.cv-section-intro { padding-top:45px; }
	.cv-feature-grid, .cv-split, .cv-link-grid { grid-template-columns:1fr; }
	.cv-feature-card { min-height:0; }
	.cv-copy-card { padding:27px 22px; }
	.cv-section p { font-size:15px; }
	.cv-language { top:12px; right:12px; width:38px; height:38px; }
}

@media (max-width:430px){
	.cv-chat-window { border-radius:18px; }
	.cv-window-address { max-width:150px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
	.cv-chat-side { display:none; }
	.cv-chat-body { grid-template-columns:1fr; }
	.cv-hero-card { padding-left:0; padding-right:0; }
	.cv-floating-badge { position:relative; left:auto; right:auto; top:auto; bottom:auto; margin:10px auto 0; width:100%; max-width:none; }
}

@media (prefers-reduced-motion:reduce){
	#cv_landing *, #cv_landing *:before, #cv_landing *:after { scroll-behavior:auto!important; transition:none!important; }
}
