/* ==========================================================================
   Nik Digital Marketing — design tokens
   Light, bright site body (matches the brand's cream/ivory tone) with a
   dark "bookend" nav + footer where the black-background logo sits
   naturally. Vazirmatn carries all Persian text for clean, legible
   joining; Playfair Display is reserved for short Latin accent labels.
   ========================================================================== */
:root{
  /* -- light theme: used through almost the entire site -- */
  --bg:#FAF6F0;
  --ink:#211C17;
  --surface:#FFFFFF;
  --surface-2:#F3ECE1;
  --line:#E7DDCE;
  --line-soft:#EFE7DA;
  --paper:#211C17;
  --muted:#645A4C;
  --faint:#948970;
  --brass:#BF9A5E;
  --brass-2:#8C6A2E;
  --brass-hover:#A87F42;

  /* -- dark bookend: nav / footer / mobile menu only -- */
  --on-dark-bg:#0F0C09;
  --on-dark-line:#2B2622;
  --on-dark-text:#F3EEE7;
  --on-dark-muted:#B7ACA5;
  --on-dark-faint:#8A8078;
  --brass-light:#E3C793;

  --font-display:'Vazirmatn', sans-serif;
  --font-body:'Vazirmatn', sans-serif;
  --font-accent:'Playfair Display', 'Vazirmatn', sans-serif;
  --container:1160px;
  --radius:6px;
  --nav-h:84px;
}

*,*::before,*::after{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth; scroll-padding-top:calc(var(--nav-h) + 16px);}
body{
  background:var(--bg);
  color:var(--muted);
  font-family:var(--font-body);
  line-height:1.85;
  font-size:17px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg{display:block; max-width:100%;}
a{color:inherit; text-decoration:none;}
ul{list-style:none;}
button,input,select,textarea{font-family:inherit; font-size:inherit; color:inherit;}
button{cursor:pointer; background:none; border:none;}
h1,h2,h3,h4{color:var(--paper); font-family:var(--font-display); font-weight:700; line-height:1.35;}
.latin{font-family:var(--font-accent); direction:ltr; unicode-bidi:isolate;}
.skip-link{position:absolute; right:-999px; top:0; background:var(--brass); color:var(--ink); padding:12px 20px; z-index:999; font-weight:700;}
.skip-link:focus{right:0;}
*:focus-visible{outline:2px solid var(--brass-2); outline-offset:3px;}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
}

.container{max-width:var(--container); margin:0 auto; padding:0 24px;}
section{padding:110px 0;}
@media (max-width:768px){ section{padding:72px 0;} }

/* ---- recurring signature: rule + letter-spaced label, echoing the logo's
   own "mark / rule / wordmark" construction ---- */
.kicker{display:inline-flex; align-items:center; gap:12px; margin-bottom:20px;}
.kicker .rule{width:34px; height:1px; background:var(--brass);}
.kicker span{font-family:var(--font-accent); font-style:italic; font-size:.92rem; letter-spacing:.06em; color:var(--brass-2);}
.kicker.centered{justify-content:center;}

.section-head{max-width:680px; margin-bottom:56px;}
.section-head.centered{margin-inline:auto; text-align:center;}
.section-head h2{font-size:clamp(1.9rem, 1.2rem + 2.4vw, 2.7rem);}
.section-head p{font-size:1.06rem; margin-top:14px; max-width:600px;}
.section-head.centered p{margin-inline:auto;}

.accent{color:var(--brass-2);}

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:15px 30px; font-weight:600; font-size:1rem; font-family:var(--font-body);
  border:1px solid transparent; transition:all .25s ease; white-space:nowrap; border-radius:var(--radius);
}
.btn-primary{background:var(--brass); color:var(--ink);}
.btn-primary:hover{background:var(--brass-hover); box-shadow:0 14px 34px -16px rgba(139,106,46,.55);}
.btn-ghost{border-color:var(--line); color:var(--paper); background:var(--surface);}
.btn-ghost:hover{border-color:var(--brass); color:var(--brass-2);}
.btn-block{width:100%;}
.btn:active{transform:translateY(1px);}

.reveal{opacity:0; transform:translateY(20px); transition:opacity .7s ease, transform .7s ease;}
.reveal.in-view{opacity:1; transform:translateY(0);}

/* ============ NAV (dark bookend) ============ */
.nav{position:fixed; inset-inline:0; top:0; z-index:100; height:var(--nav-h); display:flex; align-items:center;
  background:rgba(15,12,9,.85); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid transparent; transition:background .3s, border-color .3s;}
.nav.scrolled{background:rgba(15,12,9,.97); border-color:var(--on-dark-line);}
.nav .container{display:flex; align-items:center; justify-content:space-between; width:100%;}
.brand{display:flex; align-items:center; gap:12px;}
.brand img{height:40px; width:auto;}
.brand-text{display:flex; flex-direction:column; line-height:1.25;}
.brand-text b{font-family:var(--font-accent); font-size:1.05rem; color:var(--on-dark-text); letter-spacing:.02em;}
.brand-text span{font-size:.68rem; color:var(--on-dark-faint); letter-spacing:.08em;}
.nav-links{display:flex; align-items:center; gap:34px;}
.nav-links a{font-size:.98rem; color:var(--on-dark-muted); transition:color .2s;}
.nav-links a:hover, .nav-links a.active{color:var(--brass-light);}
.nav-cta{display:flex; align-items:center; gap:16px;}
.nav .btn-primary{padding:11px 22px; font-size:.9rem;}
.admin-pill{display:flex; align-items:center; gap:6px; font-size:.82rem; color:var(--on-dark-faint); border:1px solid var(--on-dark-line); padding:8px 14px; border-radius:999px;}
.admin-pill:hover{color:var(--brass-light); border-color:var(--brass);}
.nav-toggle{display:none; flex-direction:column; gap:5px; width:32px; height:32px; align-items:center; justify-content:center;}
.nav-toggle span{width:20px; height:1.5px; background:var(--on-dark-text); transition:.3s;}
.nav-toggle.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.nav-toggle.open span:nth-child(2){opacity:0;}
.nav-toggle.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}
.mobile-menu{position:fixed; inset:var(--nav-h) 0 0 0; z-index:90; background:var(--on-dark-bg); display:flex; flex-direction:column;
  padding:32px 24px; gap:4px; transform:translateY(-10px); opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .25s, transform .25s, visibility .25s;}
.mobile-menu.open{opacity:1; transform:translateY(0); visibility:visible; pointer-events:auto;}
.mobile-menu a{font-size:1.25rem; padding:15px 4px; border-bottom:1px solid var(--on-dark-line); color:var(--on-dark-text);}
.mobile-menu .btn{margin-top:22px;}
@media (max-width:940px){ .nav-links, .nav-cta .btn-primary{display:none;} .nav-toggle{display:flex;} }

/* ============ MESSAGES ============ */
.messages{max-width:var(--container); margin:calc(var(--nav-h) + 24px) auto 0; padding:0 24px;}
.messages li{background:rgba(191,154,94,.12); border:1px solid var(--brass); color:var(--paper); padding:16px 20px; border-radius:var(--radius); font-size:.95rem;}

/* ============ HERO ============ */
.hero{padding-top:calc(var(--nav-h) + 88px); padding-bottom:80px; text-align:center; position:relative;}
.hero::before{content:''; position:absolute; inset:0; z-index:-1;
  background:radial-gradient(760px 420px at 50% -12%, rgba(191,154,94,.16), transparent 65%);}
.hero-mark{width:150px; margin:0 auto 34px; opacity:.96;}
.hero h1{font-size:clamp(2.3rem, 1.3rem + 3.6vw, 3.7rem); max-width:820px; margin:0 auto 26px; font-weight:700;}
.hero p.lead{font-size:1.16rem; max-width:600px; margin:0 auto 40px;}
.hero-actions{display:flex; align-items:center; justify-content:center; gap:16px; flex-wrap:wrap; margin-bottom:60px;}
.hero-strip{display:flex; align-items:center; justify-content:center; gap:0; flex-wrap:wrap; border-top:1px solid var(--line); padding-top:34px;}
.hero-strip div{padding:0 34px; text-align:center; border-inline-end:1px solid var(--line);}
.hero-strip div:last-child{border-inline-end:none;}
.hero-strip b{display:block; font-family:var(--font-accent); font-size:1.6rem; color:var(--brass-2); margin-bottom:4px;}
.hero-strip span{font-size:.82rem; color:var(--faint);}
@media (max-width:640px){ .hero-strip div{padding:14px 20px; border-inline-end:none; border-bottom:1px solid var(--line); flex:1 1 40%;} }

/* ============ SERVICE / PACKAGE CARDS ============ */
.card-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.service-card{background:var(--surface); padding:40px 34px; transition:background .3s;}
.service-card:hover{background:var(--surface-2);}
.service-card .icon{width:46px; height:46px; display:flex; align-items:center; justify-content:center; color:var(--brass-2); margin-bottom:24px;}
.service-card .icon svg{width:26px; height:26px;}
.service-card h3{font-size:1.35rem; margin-bottom:12px;}
.service-card p{font-size:.96rem; margin-bottom:20px;}
.service-card .price{display:block; font-family:var(--font-accent); font-style:italic; color:var(--brass-2); font-size:.92rem; margin-bottom:14px;}
.service-card .more{font-size:.9rem; color:var(--paper); border-bottom:1px solid var(--brass); padding-bottom:2px; display:inline-block;}
@media (max-width:920px){ .card-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:620px){ .card-grid{grid-template-columns:1fr;} }

/* package detail */
.package-hero{padding-top:calc(var(--nav-h) + 60px); padding-bottom:70px; border-bottom:1px solid var(--line);}
.package-hero .icon-lg{width:64px; height:64px; border:1px solid var(--line); background:var(--surface); display:flex; align-items:center; justify-content:center; color:var(--brass-2); margin-bottom:30px;}
.package-hero .icon-lg svg{width:32px; height:32px;}
.package-hero h1{font-size:clamp(2rem,1.2rem+2.6vw,3rem); max-width:760px; margin-bottom:20px;}
.package-hero .price{font-family:var(--font-accent); font-style:italic; color:var(--brass-2); font-size:1.2rem; margin-bottom:28px; display:block;}
.package-body{display:grid; grid-template-columns:1.5fr 1fr; gap:60px; padding-top:70px;}
.prose h2{font-size:1.5rem; margin:36px 0 16px;}
.prose h2:first-child{margin-top:0;}
.prose p{margin-bottom:16px;}
.prose ul{list-style:disc; padding-inline-start:1.4em; margin-bottom:16px;}
.prose li{margin-bottom:8px;}
.prose strong{color:var(--paper);}
.feature-box{border:1px solid var(--line); background:var(--surface); padding:32px; height:max-content; position:sticky; top:calc(var(--nav-h) + 24px);}
.feature-box h3{font-size:1.1rem; margin-bottom:20px;}
.feature-box ul{display:flex; flex-direction:column; gap:14px; margin-bottom:26px;}
.feature-box li{display:flex; align-items:flex-start; gap:10px; font-size:.94rem; color:var(--muted);}
.feature-box li svg{flex-shrink:0; width:17px; height:17px; color:var(--brass-2); margin-top:3px;}
@media (max-width:900px){ .package-body{grid-template-columns:1fr;} .feature-box{position:static;} }

.related-strip{display:flex; gap:14px; flex-wrap:wrap; margin-top:16px;}
.related-strip a{border:1px solid var(--line); background:var(--surface); padding:10px 18px; font-size:.9rem; color:var(--muted); border-radius:999px;}
.related-strip a:hover{border-color:var(--brass); color:var(--brass-2);}

/* ============ ARTICLE / BLOG ============ */
.article-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:44px 32px;}
.article-card{display:flex; flex-direction:column;}
.article-card .cover{aspect-ratio:16/10; background:var(--surface-2); border:1px solid var(--line); margin-bottom:20px; display:flex; align-items:center; justify-content:center; overflow:hidden;}
.article-card .cover img{width:100%; height:100%; object-fit:cover;}
.article-card .cover .placeholder{color:var(--line); width:34px; height:34px;}
.article-card .cat{font-family:var(--font-accent); font-style:italic; font-size:.82rem; color:var(--brass-2); margin-bottom:10px; display:block;}
.article-card h3{font-size:1.28rem; margin-bottom:10px;}
.article-card p{font-size:.94rem; margin-bottom:14px;}
.article-card .meta{font-size:.78rem; color:var(--faint); margin-top:auto;}
@media (max-width:920px){ .article-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:620px){ .article-grid{grid-template-columns:1fr;} }

.pagination{display:flex; justify-content:center; gap:10px; margin-top:64px;}
.pagination a, .pagination span{border:1px solid var(--line); background:var(--surface); min-width:42px; height:42px; display:flex; align-items:center; justify-content:center; font-size:.9rem;}
.pagination a:hover{border-color:var(--brass); color:var(--brass-2);}
.pagination .current{background:var(--brass); color:var(--ink); border-color:var(--brass);}

.article-detail-head{padding-top:calc(var(--nav-h) + 60px); padding-bottom:50px; text-align:center; border-bottom:1px solid var(--line);}
.article-detail-head .cat{font-family:var(--font-accent); font-style:italic; color:var(--brass-2); margin-bottom:18px; display:block;}
.article-detail-head h1{font-size:clamp(1.9rem,1.2rem+2.4vw,2.9rem); max-width:780px; margin:0 auto 22px;}
.article-detail-head .meta{color:var(--faint); font-size:.9rem;}
.article-cover-full{max-width:900px; margin:50px auto 0; border:1px solid var(--line);}
.article-body-wrap{max-width:720px; margin:0 auto; padding-top:60px;}
.article-body-wrap .prose{font-size:1.06rem;}
.article-body-wrap .prose h2{font-size:1.5rem;}
.article-share{border-top:1px solid var(--line); margin-top:50px; padding-top:30px; display:flex; align-items:center; gap:16px; font-size:.9rem; color:var(--faint);}

/* ============ RESUME ============ */
.resume-hero{padding-top:calc(var(--nav-h) + 70px); padding-bottom:60px; text-align:center; border-bottom:1px solid var(--line);}
.resume-hero h1{font-size:clamp(2rem,1.2rem+2.6vw,3rem); max-width:700px; margin:0 auto 20px;}
.timeline{max-width:760px; margin:0 auto; position:relative; padding-inline-start:34px;}
.timeline::before{content:''; position:absolute; inset-inline-start:5px; top:6px; bottom:6px; width:1px; background:var(--line);}
.timeline-item{position:relative; padding-bottom:44px;}
.timeline-item:last-child{padding-bottom:0;}
.timeline-item::before{content:''; position:absolute; inset-inline-start:-34px; top:5px; width:11px; height:11px; border-radius:50%; background:var(--bg); border:2px solid var(--brass);}
.timeline-item .type{font-family:var(--font-accent); font-style:italic; font-size:.82rem; color:var(--brass-2); display:block; margin-bottom:6px;}
.timeline-item h3{font-size:1.2rem; margin-bottom:6px;}
.timeline-item .org{font-size:.88rem; color:var(--faint); margin-bottom:10px;}
.timeline-item p{font-size:.95rem;}

/* ============ CONTACT ============ */
.contact-grid{display:grid; grid-template-columns:1.2fr 1fr; gap:64px;}
.field{display:flex; flex-direction:column; gap:8px; margin-bottom:20px;}
.field label{font-size:.88rem; color:var(--muted);}
.field input, .field select, .field textarea{background:var(--surface); border:1px solid var(--line); padding:13px 15px; border-radius:var(--radius);}
.field input:focus, .field select:focus, .field textarea:focus{outline:none; border-color:var(--brass);}
.field textarea{resize:vertical; min-height:120px;}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
.field .errorlist{list-style:none; color:#B23B2E; font-size:.82rem; margin-top:4px;}
.contact-info-card{border:1px solid var(--line); background:var(--surface); padding:32px; margin-bottom:20px;}
.contact-info-card h3{font-size:1.05rem; margin-bottom:24px;}
.contact-row{display:flex; align-items:flex-start; gap:14px; margin-bottom:20px;}
.contact-row:last-child{margin-bottom:0;}
.contact-row .icon{width:36px; height:36px; border:1px solid var(--line); background:var(--surface-2); display:flex; align-items:center; justify-content:center; color:var(--brass-2); flex-shrink:0;}
.contact-row .icon svg{width:16px; height:16px;}
.contact-row div span{display:block; font-size:.78rem; color:var(--faint); margin-bottom:3px;}
.contact-row div b{color:var(--paper); font-weight:600; font-size:.94rem;}
.social-row{display:flex; gap:10px;}
.social-row a{width:44px; height:44px; border:1px solid var(--line); background:var(--surface); display:flex; align-items:center; justify-content:center; color:var(--muted); transition:.2s; border-radius:var(--radius);}
.social-row a:hover{border-color:var(--brass); color:var(--brass-2);}
.social-row svg{width:19px; height:19px;}
@media (max-width:900px){ .contact-grid{grid-template-columns:1fr;} .field-row{grid-template-columns:1fr;} }

/* ============ CTA BAND ============ */
.cta-band{background:var(--surface-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line); text-align:center;}
.cta-band h2{font-size:clamp(1.7rem,1.1rem+2.2vw,2.5rem); max-width:640px; margin:0 auto 18px;}
.cta-band p{max-width:520px; margin:0 auto 34px;}

/* ============ GROWTH SIGNAL (quiet trust cue, not a dashboard) ============ */
.growth-note{display:flex; flex-direction:column; align-items:center; gap:10px; margin:0 auto 34px;}
.growth-note .spark{color:var(--brass-2);}
.growth-note span{font-size:.82rem; color:var(--faint); font-family:var(--font-accent); font-style:italic;}

/* ============ TESTIMONIALS ============ */
.testi-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.testi-card{background:var(--surface); padding:38px 32px; display:flex; flex-direction:column; gap:22px;}
.testi-card .quote{color:var(--paper); font-size:1rem; line-height:1.9;}
.testi-who{display:flex; align-items:center; gap:12px; margin-top:auto;}
.testi-avatar{width:42px; height:42px; border-radius:50%; background:linear-gradient(135deg,var(--brass),var(--brass-2)); display:flex; align-items:center; justify-content:center; font-family:var(--font-accent); font-weight:700; color:var(--ink); font-size:.82rem; flex-shrink:0;}
.testi-who .name{color:var(--paper); font-weight:600; font-size:.92rem;}
.testi-who .role{font-size:.8rem; color:var(--faint);}
@media (max-width:920px){ .testi-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:620px){ .testi-grid{grid-template-columns:1fr;} }

/* ============ WHY US ============ */
.why-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.why-card{background:var(--surface); padding:36px 28px; text-align:center;}
.why-card .num{font-family:var(--font-accent); font-style:italic; color:var(--brass-2); font-size:1.4rem; display:block; margin-bottom:14px;}
.why-card h3{font-size:1.05rem; margin-bottom:10px;}
.why-card p{font-size:.9rem;}
@media (max-width:900px){ .why-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:560px){ .why-grid{grid-template-columns:1fr;} }

/* ============ FOOTER (dark bookend) ============ */
.footer{background:var(--on-dark-bg); color:var(--on-dark-muted); border-top:1px solid var(--on-dark-line); padding:70px 0 32px;}
.footer-grid{display:grid; grid-template-columns:1.5fr 1fr 1fr 1.3fr; gap:44px; margin-bottom:50px;}
.footer .brand img{height:38px;}
.footer-about p{font-size:.9rem; margin:18px 0 0; max-width:280px; color:var(--on-dark-muted);}
.footer h4{color:var(--on-dark-text); font-size:.85rem; margin-bottom:18px; font-weight:600;}
.footer-links{display:flex; flex-direction:column; gap:12px;}
.footer-links a{font-size:.92rem; color:var(--on-dark-muted); transition:color .2s;}
.footer-links a:hover{color:var(--brass-light);}
.footer-bottom{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; font-size:.82rem; color:var(--on-dark-faint); border-top:1px solid var(--on-dark-line); padding-top:26px;}
@media (max-width:900px){ .footer-grid{grid-template-columns:1fr 1fr; gap:36px;} }
@media (max-width:560px){ .footer-grid{grid-template-columns:1fr;} }

/* ============ EMPTY STATES ============ */
.empty-state{text-align:center; padding:60px 20px; border:1px dashed var(--line); color:var(--faint);}

/* ============ CHATBOT WIDGET ============ */
.chatbot{position:fixed; z-index:300; inset-inline-end:24px; bottom:24px; pointer-events:none;}
.chatbot > *{pointer-events:auto;}
.chatbot-toggle{position:relative; width:64px; height:64px; border-radius:50%; background:var(--ink); color:var(--brass-light);
  display:flex; align-items:center; justify-content:center; box-shadow:0 16px 36px -10px rgba(0,0,0,.45); transition:transform .2s;}
.chatbot-toggle:hover{transform:translateY(-2px);}
.chatbot-toggle svg{width:26px; height:26px; position:relative; z-index:1;}
.chatbot-toggle .close-icon{display:none;}
.chatbot.open .chatbot-toggle .chat-icon{display:none;}
.chatbot.open .chatbot-toggle .close-icon{display:block;}
.chatbot-toggle::before{content:''; position:absolute; inset:-6px; border-radius:50%; border:2px solid var(--brass); opacity:.55; animation:chatbot-pulse 2.6s ease-out infinite;}
.chatbot.open .chatbot-toggle::before{display:none;}
@keyframes chatbot-pulse{
  0%{transform:scale(.85); opacity:.6;}
  70%{transform:scale(1.28); opacity:0;}
  100%{transform:scale(1.28); opacity:0;}
}

.status-dot{width:6px; height:6px; border-radius:50%; background:#4CAF7D; display:inline-block; flex-shrink:0;}

.chatbot-panel{position:absolute; bottom:76px; inset-inline-end:0; width:360px; max-width:calc(100vw - 40px);
  height:480px; max-height:70vh; background:var(--surface); border:1px solid var(--line); border-radius:16px;
  box-shadow:0 30px 70px -20px rgba(0,0,0,.35); display:flex; flex-direction:column; overflow:hidden;
  opacity:0; transform:translateY(12px) scale(.98); pointer-events:none; transition:opacity .22s ease, transform .22s ease;}
.chatbot.open .chatbot-panel{opacity:1; transform:translateY(0) scale(1); pointer-events:auto;}

.chatbot-header{display:flex; align-items:center; gap:12px; padding:16px 18px; background:var(--ink); color:var(--on-dark-text); flex-shrink:0;}
.chatbot-avatar{width:38px; height:38px; border-radius:50%; background:linear-gradient(135deg,var(--brass),var(--brass-light));
  color:var(--ink); display:flex; align-items:center; justify-content:center; font-family:var(--font-accent); font-weight:700; font-size:.85rem; flex-shrink:0;}
.chatbot-name{font-size:.95rem; font-weight:600;}
.chatbot-status{font-size:.75rem; color:var(--on-dark-faint); display:flex; align-items:center; gap:6px; margin-top:2px;}

.chatbot-messages{flex:1; overflow-y:auto; padding:18px; display:flex; flex-direction:column; gap:12px;}
.chat-msg{max-width:82%; padding:10px 14px; border-radius:12px; font-size:.9rem; line-height:1.75;}
.chat-msg.bot{background:var(--surface-2); color:var(--paper); align-self:flex-start; border-start-start-radius:3px;}
.chat-msg.user{background:var(--brass); color:var(--ink); align-self:flex-end; border-end-end-radius:3px;}
.chat-msg.typing{display:flex; gap:4px; align-items:center; padding:12px 16px;}
.chat-msg.typing span{width:6px; height:6px; border-radius:50%; background:var(--faint); animation:chat-typing 1s infinite ease-in-out;}
.chat-msg.typing span:nth-child(2){animation-delay:.15s;}
.chat-msg.typing span:nth-child(3){animation-delay:.3s;}
@keyframes chat-typing{0%,60%,100%{opacity:.3; transform:translateY(0);} 30%{opacity:1; transform:translateY(-3px);}}

.chatbot-quick{display:flex; gap:8px; flex-wrap:wrap; padding:0 18px 12px; flex-shrink:0;}
.chatbot-quick button{border:1px solid var(--line); background:var(--surface); color:var(--muted); font-size:.78rem; padding:7px 12px; border-radius:999px; transition:.2s;}
.chatbot-quick button:hover{border-color:var(--brass); color:var(--brass-2);}

.chatbot-input-row{display:flex; gap:8px; padding:14px; border-top:1px solid var(--line); flex-shrink:0;}
.chatbot-input-row input{flex:1; border:1px solid var(--line); border-radius:999px; padding:10px 16px; background:var(--surface-2); font-size:.9rem;}
.chatbot-input-row input:focus{outline:none; border-color:var(--brass);}
.chatbot-input-row button{width:40px; height:40px; border-radius:50%; background:var(--brass); color:var(--ink); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.chatbot-input-row button svg{width:18px; height:18px;}

@media (max-width:480px){
  .chatbot{inset-inline-end:16px; bottom:16px;}
  .chatbot-panel{width:calc(100vw - 32px); height:65vh;}
}
