/* =====================================================================
   PTT (Professional Translation Tools) design system, 2026 redesign
   Loaded on pages flagged _ptt_redesign (body.pt-site); site-wide since launch.
   Modules stay content-only in Divi; the look lives here, keyed on the
   classes set in each module's Advanced > CSS Class field. Every class
   starts with "pt-" (the old child theme owns "ptt-").
   Ported from the approved homepage prototype (Concept v3).
   ===================================================================== */

body.pt-site {
	--pt-ink: #0b1b33;
	--pt-navy: #0b2545;
	--pt-navy-2: #12325c;
	--pt-deep: #081a31;
	--pt-blue: #1565d8;
	--pt-blue-hi: #0f56bd;
	--pt-sky: #42bdf2;
	--pt-cyan: #13c3ef;
	--pt-coral: #ff6b4a;
	--pt-coral-hi: #ff8466;
	--pt-paper: #f5f8fc;
	--pt-white: #ffffff;
	--pt-muted: #4d5e76;
	--pt-muted-d: #b9c8da;
	--pt-line: #dbe6f1;
	--pt-display: "Poppins", "Segoe UI", system-ui, sans-serif;
	--pt-body: "Comic Neue", "Comic Sans MS", "Chalkboard SE", ui-rounded, system-ui, sans-serif;
	--pt-cjk: "Noto Sans SC", "Noto Sans JP", "PingFang SC", "Hiragino Sans", sans-serif;
	--pt-tc: "Noto Sans TC", "PingFang TC", sans-serif;
	--pt-radius: 22px;
	--pt-shadow: 0 18px 45px rgba(11, 61, 102, .12);
	--pt-wrap: min(calc(100% - 32px), 1180px);
	--pt-pad: clamp(72px, 8vw, 104px);

	background: var(--pt-paper);
	color: var(--pt-ink);
	font-family: var(--pt-body);
	font-size: 19px;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
}

/* ---------- Divi resets ------------------------------------------- */

body.pt-site #page-container,
body.pt-site #et-boc,
body.pt-site #et-main-area,
body.pt-site #main-content {
	background: transparent;
	overflow: visible;
}
body.pt-site #page-container { padding-top: 0 !important; }
body.pt-site #main-content .container { width: 100%; max-width: none; padding-top: 0; }
body.pt-site #main-content .container::before { display: none; }
body.pt-site .entry-content { padding: 0; }

body.pt-site .et-l p { padding-bottom: 0; }
body.pt-site .et-l p + p { margin-top: 1em; }
body.pt-site .et-l ul { padding-bottom: 0; }

/* Divi 5 sections/columns are flex containers with their own gaps (60px between rows, 30px between modules).
   Zero them so the margins below are the single source of spacing. */
body.pt-site .et-l .et_pb_section { padding: var(--pt-pad) 0; background-color: transparent; row-gap: 0 !important; }
body.pt-site .et-l .et_pb_row { width: var(--pt-wrap); max-width: none; padding: 0; }
/* The site's default Row preset caps rows at 920px (!important) and forbids wrapping; its default Heading preset
   centers every heading. Neither belongs to this design. */
body.pt-site .et-l .et_pb_row.preset--module--divi-row--default { max-width: none !important; }
body.pt-site .et-l .et_pb_heading .et_pb_heading_container :is(h1, h2, h3, h4, h5, h6) { text-align: start; }
body.pt-site .et-l .pt-center .et_pb_heading .et_pb_heading_container :is(h1, h2, h3, h4, h5, h6) { text-align: center; }
body.pt-site .et-l .et_pb_column { row-gap: 0 !important; }
body.pt-site .et-l .et_pb_row + .et_pb_row { margin-top: clamp(36px, 4.5vw, 56px); }
body.pt-site .et-l .et_pb_column > .et_pb_module,
body.pt-site .et-l .et_pb_column > .et_pb_button_module_wrapper { margin-bottom: 0 !important; }
body.pt-site .et-l .et_pb_column > * + * { margin-top: 18px; }

/* ---------- type ---------------------------------------------------- */

body.pt-site .et-l h1,
body.pt-site .et-l h2,
body.pt-site .et-l h3,
body.pt-site .et-l h4 {
	font-family: var(--pt-display);
	font-weight: 800;
	line-height: 1.08;
	letter-spacing: -.02em;
	color: var(--pt-navy);
	padding-bottom: 0;
	margin: 0;
	text-wrap: balance;
}
body.pt-site .et-l h1 { font-size: clamp(42px, 6.4vw, 80px); letter-spacing: -.035em; line-height: 1; }
body.pt-site .et-l h2 { font-size: clamp(32px, 4.4vw, 52px); }
body.pt-site .et-l h3 { font-size: clamp(21px, 2vw, 26px); }
body.pt-site .et-l h4 { font-size: 18px; }
body.pt-site .et-l .et_pb_text,
body.pt-site .et-l .et_pb_text p,
body.pt-site .et-l .et_pb_code { font-family: var(--pt-body); font-size: 19px; line-height: 1.55; color: inherit; }
body.pt-site .et-l a { color: var(--pt-blue); }
body.pt-site .et-l a:hover { color: var(--pt-navy); }
body.pt-site :focus-visible { outline: 3px solid var(--pt-coral); outline-offset: 3px; border-radius: 6px; }
body.pt-site ::selection { background: var(--pt-cyan); color: var(--pt-navy); }
body.pt-site [lang="zh"], body.pt-site [lang="ja"], body.pt-site [lang="zh-Hans"] { font-family: var(--pt-cjk); letter-spacing: 0; }
body.pt-site [lang="yue"], body.pt-site [lang="zh-Hant"] { font-family: var(--pt-tc); letter-spacing: 0; }
body.pt-site [lang="ar"] { font-family: "Noto Sans Arabic", var(--pt-display); letter-spacing: 0; }
body.pt-site [lang="he"] { font-family: "Noto Sans Hebrew", var(--pt-display); letter-spacing: 0; }
body.pt-site [lang="hi"] { font-family: "Noto Sans Devanagari", var(--pt-display); letter-spacing: 0; }
body.pt-site [lang="pa"] { font-family: "Noto Sans Gurmukhi", var(--pt-display); letter-spacing: 0; }

/* ---------- bands --------------------------------------------------- */

body.pt-site .et-l .et_pb_section.pt-band--white { background-color: var(--pt-white) !important; }
body.pt-site .et-l .et_pb_section.pt-band--paper { background-color: var(--pt-paper) !important; }
body.pt-site .et-l .et_pb_section.pt-band--navy { background-color: var(--pt-navy) !important; color: var(--pt-white); }
body.pt-site .et-l .et_pb_section.pt-band--tight { padding-top: 32px; padding-bottom: 32px; }
body.pt-site .et-l .et_pb_section.pt-band--top0 { padding-top: 0; }
body.pt-site .et-l .pt-band--navy h1,
body.pt-site .et-l .pt-band--navy h2,
body.pt-site .et-l .pt-band--navy h3,
body.pt-site .et-l .pt-band--navy h4 { color: var(--pt-white); }
body.pt-site .et-l .pt-band--navy a:not(.pt-btn) { color: var(--pt-cyan); }

/* section heads: eyebrow + h2 + lead in one column */
body.pt-site .et-l .pt-head { max-width: 780px; }
body.pt-site .et-l .pt-head > * + * { margin-top: 14px; }
body.pt-site .et-l .pt-head.pt-center { margin-left: auto !important; margin-right: auto !important; text-align: center; }
body.pt-site .et-l .pt-center .et_pb_text, body.pt-site .et-l .pt-center .et_pb_text p,
body.pt-site .et-l .pt-center .et_pb_heading .et_pb_module_header { text-align: center !important; }

body.pt-site .et-l .pt-eyebrow p,
body.pt-site .pt-eyebrow-txt {
	font-family: var(--pt-display) !important;
	font-weight: 700;
	font-size: 13px !important;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--pt-blue) !important;
	line-height: 1.4 !important;
}
body.pt-site .et-l .pt-band--navy .pt-eyebrow p { color: var(--pt-cyan) !important; }
body.pt-site .et-l .pt-lead p { font-size: clamp(19px, 1.8vw, 21px) !important; color: var(--pt-muted); }
body.pt-site .et-l .pt-band--navy .pt-lead p { color: var(--pt-muted-d); }
body.pt-site .et-l .pt-fine p { font-size: 16px !important; color: var(--pt-muted); }
body.pt-site .et-l .pt-band--navy .pt-fine p { color: var(--pt-muted-d); }
body.pt-site .et-l .pt-prose p, body.pt-site .et-l .pt-prose li { color: var(--pt-muted); }
body.pt-site .et-l .pt-prose h3 { margin-top: 1.4em; }
body.pt-site .et-l .pt-prose h3:first-child { margin-top: 0; }
body.pt-site .et-l .pt-prose ul { margin: .8em 0 0; padding: 0; padding-inline-start: 1.2em; }
body.pt-site .et-l .pt-prose li + li { margin-top: .4em; }

/* ---------- buttons (code modules: <div class="pt-ctas"><a class="pt-btn pt-btn--primary">) ---------- */

body.pt-site .pt-ctas { display: flex; flex-wrap: wrap; gap: 12px; }
body.pt-site .pt-center .pt-ctas, body.pt-site .pt-ctas.pt-ctas--center { justify-content: center; }
body.pt-site .et-l a.pt-btn,
body.pt-site a.pt-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 52px;
	padding: 0 26px;
	border-radius: 999px;
	font-family: var(--pt-display);
	font-weight: 700;
	font-size: 16px;
	line-height: 1.1;
	text-decoration: none;
	border: 2px solid transparent;
	transition: transform .15s ease, background-color .15s ease, border-color .15s ease, color .15s ease;
	cursor: pointer;
}
body.pt-site a.pt-btn:hover { transform: translateY(-2px); }
body.pt-site .et-l a.pt-btn--primary { background: var(--pt-blue); color: var(--pt-white); box-shadow: 0 12px 26px rgba(21, 101, 216, .28); }
body.pt-site .et-l a.pt-btn--primary:hover { background: var(--pt-blue-hi); color: var(--pt-white); }
body.pt-site .et-l a.pt-btn--coral { background: var(--pt-coral); color: var(--pt-navy); box-shadow: 0 12px 26px rgba(255, 107, 74, .3); }
body.pt-site .et-l a.pt-btn--coral:hover { background: var(--pt-coral-hi); color: var(--pt-navy); }
body.pt-site .et-l a.pt-btn--ghost { background: transparent; color: var(--pt-navy); border-color: var(--pt-line); }
body.pt-site .et-l a.pt-btn--ghost:hover { border-color: var(--pt-blue); color: var(--pt-blue); }
body.pt-site .et-l a.pt-btn--ghost-dark { background: transparent; color: var(--pt-white); border-color: rgba(255, 255, 255, .35); }
body.pt-site .et-l a.pt-btn--ghost-dark:hover { border-color: var(--pt-cyan); color: var(--pt-cyan); }

/* ---------- header (Theme Builder) ---------------------------------- */

body.pt-site .et-l--header { position: sticky; top: 0; z-index: 1000; }
body.admin-bar.pt-site .et-l--header { top: 32px; }
@media (max-width: 782px) { body.admin-bar.pt-site .et-l--header { top: 0; } }
body.pt-site .et-l--header .et_pb_section.pt-header {
	padding: 0;
	background: rgba(255, 255, 255, .94) !important;
	backdrop-filter: saturate(1.4) blur(12px);
	-webkit-backdrop-filter: saturate(1.4) blur(12px);
	border-bottom: 1px solid var(--pt-line);
}
body.pt-site .et-l--header .pt-header-row {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between;
	gap: 20px;
	min-height: 76px;
	width: min(calc(100% - 32px), 1280px);
	max-width: none !important;
	flex-wrap: nowrap !important;
	padding: 0;
}
body.pt-site .et-l--header .et_pb_menu .et-menu { flex-wrap: nowrap; }
body.pt-site .et-l--header .et_pb_menu .et-menu > li { white-space: nowrap; }
body.pt-site .et-l--header .pt-header-row > .et_pb_column { width: auto !important; margin: 0 !important; flex: 0 0 auto; }
body.pt-site .et-l--header .pt-header-row > .et_pb_column.pt-menu-col { flex: 1 1 auto; }

body.pt-site .pt-brand { display: inline-flex; align-items: center; gap: 10px; text-decoration: none !important; }
body.pt-site .pt-brand svg { display: block; flex: 0 0 auto; }
body.pt-site .pt-brand-word { display: flex; flex-direction: column; line-height: 1; }
body.pt-site .pt-brand-word b {
	font-family: var(--pt-display);
	font-weight: 800;
	font-size: 30px;
	letter-spacing: -1px;
	color: var(--pt-blue);
	background: linear-gradient(90deg, #1565d8, #0aa5dc);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}
body.pt-site .pt-brand-word span { font-family: var(--pt-display); font-weight: 700; font-size: 10.5px; color: #d9412b; letter-spacing: .02em; margin-top: 3px; }
body.pt-site .et-l--header .pt-logo .et_pb_code_inner { line-height: 1; }

/* Divi menu module */
body.pt-site .et-l--header .et_pb_menu { background: transparent !important; }
body.pt-site .et-l--header .et_pb_menu .et_pb_menu_inner_container,
body.pt-site .et-l--header .et_pb_menu .et-menu-nav { justify-content: flex-end; }
body.pt-site .et-l--header .et_pb_menu .et-menu { align-items: center; }
body.pt-site .et-l--header .et_pb_menu .et-menu > li { align-items: center; padding-left: 4px; padding-right: 4px; }
body.pt-site .et-l--header .et_pb_menu .et-menu > li > a {
	font-family: var(--pt-display);
	font-weight: 600;
	font-size: 15px;
	color: var(--pt-ink) !important;
	padding: 10px 12px !important;
	border-radius: 10px;
	opacity: 1 !important;
	transition: background-color .15s ease, color .15s ease;
}
body.pt-site .et-l--header .et_pb_menu .et-menu > li > a:hover,
body.pt-site .et-l--header .et_pb_menu .et-menu > li.current-menu-item:not(.menu-item-type-custom) > a { background: var(--pt-paper); color: var(--pt-blue) !important; }
body.pt-site .et-l--header .et_pb_menu .et-menu > li.menu-item-has-children > a { padding-right: 30px !important; }
body.pt-site .et-l--header .et_pb_menu .et-menu > li.menu-item-has-children > a::after { right: 10px; top: 50%; transform: translateY(-50%); color: var(--pt-blue); }
/* dropdown */
body.pt-site .et-l--header .et_pb_menu .et-menu li ul.sub-menu {
	border-top: 3px solid var(--pt-blue) !important;
	border-radius: 0 0 16px 16px;
	box-shadow: var(--pt-shadow);
	background: var(--pt-white) !important;
	padding: 10px 0;
	width: 290px;
}
body.pt-site .et-l--header .et_pb_menu .et-menu li ul.sub-menu { white-space: normal; } /* the top level is nowrap; the dropdown must stack */
body.pt-site .et-l--header .et_pb_menu .et-menu li ul.sub-menu li { display: block; padding: 0 10px; width: 100%; box-sizing: border-box; }
body.pt-site .et-l--header .et_pb_menu .et-menu li ul.sub-menu a {
	width: 100%;
	font-family: var(--pt-display);
	font-weight: 600;
	font-size: 15px;
	color: var(--pt-ink) !important;
	padding: 10px 12px !important;
	border-radius: 10px;
}
body.pt-site .et-l--header .et_pb_menu .et-menu li ul.sub-menu a:hover { background: var(--pt-paper); color: var(--pt-blue) !important; opacity: 1; }
/* Log in / Start free */
body.pt-site .et-l--header .et_pb_menu .et-menu > li.pt-menu-cta { padding-left: 6px; padding-right: 0; }
body.pt-site .et-l--header .et_pb_menu .et-menu > li.pt-menu-cta > a {
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	padding: 0 18px !important;
	border-radius: 999px;
	border: 2px solid var(--pt-line);
	color: var(--pt-navy) !important;
	background: transparent;
}
body.pt-site .et-l--header .et_pb_menu .et-menu > li.pt-menu-cta > a:hover { border-color: var(--pt-blue); background: transparent; }
body.pt-site .et-l--header .et_pb_menu .et-menu > li.pt-menu-cta--solid > a { background: var(--pt-blue); border-color: var(--pt-blue); color: var(--pt-white) !important; box-shadow: 0 10px 22px rgba(21, 101, 216, .25); }
body.pt-site .et-l--header .et_pb_menu .et-menu > li.pt-menu-cta--solid > a:hover { background: var(--pt-blue-hi); border-color: var(--pt-blue-hi); color: var(--pt-white) !important; }
@media (min-width: 981px) and (max-width: 1366px) { /* room for the language switcher on 1280-1366px laptops */
	body.pt-site .et-l--header .et_pb_menu .et-menu > li { padding-left: 1px; padding-right: 1px; }
	body.pt-site .et-l--header .et_pb_menu .et-menu > li > a { font-size: 14px; padding: 9px 8px !important; }
	body.pt-site .et-l--header .et_pb_menu .et-menu > li.menu-item-has-children > a { padding-right: 24px !important; }
	body.pt-site.pt-rtl .et-l--header .et_pb_menu .et-menu > li.menu-item-has-children > a { padding-right: 8px !important; padding-left: 24px !important; }
	body.pt-site .et-l--header .et_pb_menu .et-menu > li.pt-menu-cta > a { padding: 0 13px !important; }
	body.pt-site .et-l--header .pt-header-row { gap: 14px; }
}
@media (min-width: 981px) and (max-width: 1240px) {
	body.pt-site .pt-header .pt-brand-word span { display: none; }
}
/* mobile menu */
body.pt-site .et-l--header .et_pb_menu .mobile_menu_bar::before { color: var(--pt-navy) !important; font-size: 34px; }
body.pt-site .et-l--header .et_pb_menu .et_mobile_nav_menu .et_mobile_menu {
	position: fixed !important;
	top: 100% !important;
	left: 0 !important;
	right: 0 !important;
	width: auto !important;
	max-height: calc(100vh - 90px);
	overflow-y: auto;
	box-shadow: 0 24px 40px rgba(11, 37, 69, .18);
	background: var(--pt-white) !important;
	border-top: 3px solid var(--pt-blue) !important;
	padding: 8px 0 18px;
}
body.pt-site .et-l--header .et_pb_menu .et_mobile_menu li a {
	font-family: var(--pt-display);
	font-weight: 600;
	font-size: 17px;
	color: var(--pt-ink) !important;
	border-bottom: 1px solid var(--pt-line) !important;
	padding: 14px 20px !important;
	background: transparent !important;
}
body.pt-site .et-l--header .et_pb_menu .et_mobile_menu li ul.sub-menu { padding-inline-start: 14px !important; }
body.pt-site .et-l--header .et_pb_menu .et_mobile_menu li.pt-menu-cta a { margin: 12px 20px 0; border: 2px solid var(--pt-line) !important; border-radius: 999px; text-align: center; }
body.pt-site .et-l--header .et_pb_menu .et_mobile_menu li.pt-menu-cta--solid a { background: var(--pt-blue) !important; border-color: var(--pt-blue) !important; color: var(--pt-white) !important; }

/* ---------- hero (home) -------------------------------------------- */

body.pt-site .et-l .et_pb_section.pt-hero { position: relative; overflow: hidden; background: var(--pt-white) !important; padding: 72px 0 88px; }
body.pt-site .et-l .et_pb_section.pt-hero::after { content: ""; position: absolute; right: -180px; top: -140px; width: 620px; height: 620px; border-radius: 50%; border: 2px dashed rgba(19, 195, 239, .35); pointer-events: none; }
body.pt-site .et-l .pt-hero .et_pb_row { position: relative; z-index: 1; align-items: center; column-gap: 56px; }
body.pt-site .et-l .pt-hero-copy > * + * { margin-top: 24px; }
body.pt-site .pt-h1 { margin: 0; }
body.pt-site .pt-h1 .l1 { display: block; color: var(--pt-navy); }
body.pt-site .pt-h1 .l2 { display: block; color: var(--pt-blue); min-height: 2.05em; }
/* inline + clone: each wrapped line gets its own coral underline (an inline-block would paint one bar across the box) */
body.pt-site .pt-h1 .l2 span { display: inline; background: linear-gradient(transparent 56%, rgba(255, 107, 74, .38) 56%, rgba(255, 107, 74, .38) 77%, transparent 77%); padding-right: .06em; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
body.pt-site .et-l h1.pt-h1 { font-size: clamp(44px, 6vw, 82px); line-height: .98; }
body.pt-site .pt-swap-in { animation: pt-swap .5s ease both; }
@keyframes pt-swap { from { opacity: .15; } to { opacity: 1; } }
body.pt-site .pt-proof { display: flex; flex-wrap: wrap; gap: 10px 22px; font-family: var(--pt-display); font-weight: 600; font-size: 14px; color: var(--pt-navy); }
body.pt-site .pt-proof span { display: inline-flex; align-items: center; gap: 8px; }
body.pt-site .pt-proof span::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--pt-coral); }

/* phone demo */
body.pt-site .pt-demo { display: flex; flex-direction: column; align-items: center; gap: 18px; min-width: 0; }
body.pt-site .pt-phone { width: min(360px, 100%); border-radius: 46px; background: var(--pt-navy); padding: 12px; box-shadow: 0 40px 80px rgba(11, 37, 69, .28), 0 0 0 1px rgba(11, 37, 69, .08); }
body.pt-site .pt-screen { border-radius: 36px; background: #eef3f9; overflow: hidden; display: flex; flex-direction: column; height: 560px; }
body.pt-site .pt-chat-top { background: var(--pt-white); padding: 18px 18px 14px; border-bottom: 1px solid var(--pt-line); display: flex; align-items: center; gap: 12px; }
body.pt-site .pt-chat-top .dot { width: 40px; height: 40px; border-radius: 14px; background: linear-gradient(135deg, var(--pt-blue), var(--pt-cyan)); display: flex; align-items: center; justify-content: center; color: var(--pt-white); font-family: var(--pt-display); font-weight: 800; font-size: 15px; flex: 0 0 auto; }
body.pt-site .pt-chat-top b { display: block; font-family: var(--pt-display); font-size: 16px; color: var(--pt-navy); line-height: 1.3; }
body.pt-site .pt-chat-top small { display: block; font-family: var(--pt-display); font-size: 12px; color: var(--pt-muted); line-height: 1.3; }
body.pt-site .pt-thread { flex: 1 1 auto; padding: 16px 14px; display: flex; flex-direction: column; gap: 12px; overflow: hidden; }
body.pt-site .pt-msg { display: flex; gap: 9px; align-items: flex-end; }
body.pt-site .pt-avatar { width: 32px; height: 32px; border-radius: 50%; flex: 0 0 auto; display: flex; align-items: center; justify-content: center; font-family: var(--pt-display); font-weight: 700; font-size: 13px; color: var(--pt-white); }
body.pt-site .pt-bubble { background: var(--pt-white); border-radius: 18px 18px 18px 6px; padding: 10px 13px; box-shadow: 0 4px 12px rgba(11, 37, 69, .07); min-width: 0; max-width: 250px; }
body.pt-site .pt-bubble .who { display: flex; justify-content: space-between; gap: 10px; font-family: var(--pt-display); font-weight: 700; font-size: 11.5px; color: var(--pt-navy); margin-bottom: 3px; line-height: 1.4; }
body.pt-site .pt-bubble .from { display: inline-flex; align-items: center; gap: 4px; font-weight: 600; color: var(--pt-blue); }
body.pt-site .pt-bubble .txt { font-size: 15.5px; line-height: 1.35; color: var(--pt-ink); overflow-wrap: anywhere; }
body.pt-site .pt-spoken { display: inline-flex; align-items: center; gap: 5px; margin: 2px 0 5px; padding: 3px 8px; border-radius: 999px; background: #fff1ec; font-family: var(--pt-display); font-weight: 700; font-size: 10.5px; letter-spacing: .06em; text-transform: uppercase; color: #b4380f; }
body.pt-site .pt-chat-input { background: var(--pt-white); border-top: 1px solid var(--pt-line); padding: 12px 14px; display: flex; gap: 10px; align-items: center; }
body.pt-site .pt-chat-input .field { flex: 1 1 auto; height: 40px; border-radius: 999px; background: var(--pt-paper); border: 1px solid var(--pt-line); display: flex; align-items: center; padding: 0 14px; font-size: 14px; color: var(--pt-muted); }
body.pt-site .pt-chat-input .mic { width: 40px; height: 40px; border-radius: 50%; background: var(--pt-coral); display: flex; align-items: center; justify-content: center; flex: 0 0 auto; }
body.pt-site .pt-picker { display: flex; flex-direction: column; align-items: center; gap: 10px; width: 100%; }
body.pt-site .pt-picker .label { font-family: var(--pt-display); font-weight: 700; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: var(--pt-muted); }
body.pt-site .pt-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; max-width: 440px; }
body.pt-site .pt-chip {
	min-height: 44px;
	padding: 0 16px;
	border-radius: 999px;
	border: 1.5px solid var(--pt-line);
	background: var(--pt-white);
	color: var(--pt-navy);
	font-family: var(--pt-display);
	font-weight: 600;
	font-size: 14.5px;
	cursor: pointer;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
body.pt-site .pt-chip:hover { border-color: var(--pt-blue); color: var(--pt-blue); }
body.pt-site .pt-chip[aria-pressed="true"] { background: var(--pt-navy); border-color: var(--pt-navy); color: var(--pt-white); }

/* ---------- language marquee ---------------------------------------- */

body.pt-site .et-l .et_pb_section.pt-marquee-band { background: var(--pt-navy) !important; color: var(--pt-white); padding: 40px 0; overflow: hidden; }
body.pt-site .pt-marquee-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 8px 24px; width: var(--pt-wrap); margin: 0 auto 22px; }
body.pt-site .et-l .pt-marquee-head h2 { font-size: clamp(24px, 3vw, 34px); color: var(--pt-white); }
body.pt-site .pt-marquee-head h2 em { font-style: normal; color: var(--pt-coral); }
body.pt-site .pt-marquee-head p { font-size: 17px; color: var(--pt-muted-d); }
body.pt-site .et-l .pt-marquee-band .et_pb_row { width: 100%; }
body.pt-site .pt-marquee { display: flex; flex-direction: column; gap: 12px; }
body.pt-site .pt-track { display: flex; gap: 12px; width: max-content; animation: pt-slide 90s linear infinite; }
body.pt-site .pt-track.rev { animation-direction: reverse; animation-duration: 110s; }
body.pt-site .pt-track span { flex: 0 0 auto; padding: 10px 18px; border-radius: 999px; background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .12); font-family: var(--pt-display), var(--pt-cjk), "Noto Sans Arabic", "Noto Sans Devanagari"; font-weight: 600; font-size: 16px; color: var(--pt-white); white-space: nowrap; }
body.pt-site .pt-marquee:hover .pt-track { animation-play-state: paused; }
@keyframes pt-slide { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ---------- bento (four tools) -------------------------------------- */

body.pt-site .pt-bento { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 20px; }
body.pt-site .pt-tile { background: var(--pt-white); border: 1px solid var(--pt-line); border-radius: var(--pt-radius); padding: 30px; display: flex; flex-direction: column; gap: 14px; min-width: 0; }
body.pt-site .et-l .pt-tile h3 { font-size: 26px; }
body.pt-site .pt-tile p { color: var(--pt-muted); margin: 0; }
body.pt-site .pt-kicker { font-family: var(--pt-display); font-weight: 700; font-size: 12.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--pt-blue); }
body.pt-site .et-l .pt-tile a.more, body.pt-site .et-l .pt-card a.more { margin-top: auto; font-family: var(--pt-display); font-weight: 700; font-size: 15px; text-decoration: none; }
body.pt-site .pt-tile--chat { grid-column: span 4; background: linear-gradient(160deg, #ffffff 0%, #eef7ff 100%); }
body.pt-site .pt-tile--live { grid-column: span 2; background: var(--pt-navy); border-color: var(--pt-navy); }
body.pt-site .et-l .pt-tile--live h3 { color: var(--pt-white); }
body.pt-site .pt-tile--live p { color: var(--pt-muted-d); }
body.pt-site .pt-tile--live .pt-kicker, body.pt-site .et-l .pt-tile--live a.more { color: var(--pt-cyan); }
body.pt-site .pt-tile--bridge, body.pt-site .pt-tile--access { grid-column: span 3; }
body.pt-site .pt-mini-chat { display: flex; flex-direction: column; gap: 8px; margin-top: 4px; }
body.pt-site .pt-mini-row { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
body.pt-site .pt-mini-row .pill { padding: 8px 14px; border-radius: 14px; background: var(--pt-white); border: 1px solid var(--pt-line); font-size: 16px; color: var(--pt-ink); }
body.pt-site .pt-mini-row .pill.alt { background: var(--pt-blue); border-color: var(--pt-blue); color: var(--pt-white); }
body.pt-site .pt-mini-row .arrow { font-family: var(--pt-display); font-weight: 700; color: var(--pt-coral); }
body.pt-site .pt-cc-mini { border-radius: 16px; background: #061a33; padding: 16px; display: flex; flex-direction: column; gap: 8px; margin-top: 4px; }
body.pt-site .pt-cc-mini .live { align-self: flex-start; font-family: var(--pt-display); font-weight: 700; font-size: 11px; letter-spacing: .1em; color: var(--pt-navy); background: var(--pt-coral); padding: 4px 9px; border-radius: 999px; }
body.pt-site .pt-cc-mini .cap { font-family: var(--pt-display); font-weight: 600; font-size: 14px; color: var(--pt-white); background: rgba(0, 0, 0, .35); padding: 6px 10px; border-radius: 8px; line-height: 1.4; }
body.pt-site .pt-cc-mini .cap.dim { color: var(--pt-muted-d); }
body.pt-site .pt-code-pill { display: inline-flex; align-items: center; gap: 10px; align-self: flex-start; padding: 10px 16px; border-radius: 14px; background: var(--pt-paper); border: 1px dashed var(--pt-blue); font-family: var(--pt-display); font-weight: 800; font-size: 22px; letter-spacing: .3em; color: var(--pt-navy); }

/* ---------- icon feature grid ---------------------------------------- */

body.pt-site .pt-features { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
body.pt-site .pt-features--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
body.pt-site .pt-feat { display: flex; gap: 18px; align-items: flex-start; padding: 26px; border-radius: var(--pt-radius); background: var(--pt-paper); min-width: 0; }
body.pt-site .pt-band--paper .pt-feat { background: var(--pt-white); border: 1px solid var(--pt-line); }
body.pt-site .pt-features--3 .pt-feat { flex-direction: column; }
body.pt-site .pt-ico { flex: 0 0 auto; width: 52px; height: 52px; border-radius: 16px; background: var(--pt-white); border: 1px solid var(--pt-line); display: flex; align-items: center; justify-content: center; color: var(--pt-blue); }
body.pt-site .et-l .pt-feat h3 { font-size: 21px; margin-bottom: 6px; }
body.pt-site .pt-feat p { color: var(--pt-muted); font-size: 18px; margin: 0; }

/* ---------- split media (live captions, bridge) --------------------- */

body.pt-site .et-l .pt-split { align-items: center; column-gap: 56px; }
body.pt-site .pt-ticks { list-style: none; padding: 0 !important; margin: 0; display: flex; flex-direction: column; gap: 14px; }
body.pt-site .pt-ticks li {
	position: relative;
	padding-inline-start: 34px;
	font-size: 18.5px;
	line-height: 1.5;
	list-style: none;
}
body.pt-site .pt-ticks li::before {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	top: 3px;
	width: 22px;
	height: 22px;
	background: var(--pt-blue);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / contain no-repeat;
}
body.pt-site .pt-band--navy .pt-ticks li { color: #e6eef8; }
body.pt-site .pt-band--navy .pt-ticks li::before { background: var(--pt-cyan); }

body.pt-site .pt-player { border-radius: 24px; overflow: hidden; background: #061a33; box-shadow: 0 30px 70px rgba(0, 0, 0, .35); border: 1px solid rgba(255, 255, 255, .1); }
body.pt-site .pt-stage { position: relative; aspect-ratio: 16 / 9; max-width: 100%; background: radial-gradient(120% 90% at 30% 20%, #1e4f8f 0%, #0b2545 55%, #061a33 100%); overflow: hidden; }
body.pt-site .pt-stage .board { position: absolute; left: 8%; top: 12%; width: 46%; height: 46%; border-radius: 10px; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .14); }
body.pt-site .pt-stage .board::before, body.pt-site .pt-stage .board::after { content: ""; position: absolute; left: 10%; right: 22%; height: 6px; border-radius: 3px; background: rgba(255, 255, 255, .22); }
body.pt-site .pt-stage .board::before { top: 24%; }
body.pt-site .pt-stage .board::after { top: 44%; right: 40%; }
body.pt-site .pt-stage .speaker { position: absolute; right: 16%; bottom: 0; width: 22%; height: 66%; }
body.pt-site .pt-stage .speaker::before { content: ""; position: absolute; left: 50%; top: 0; width: 44%; aspect-ratio: 1; transform: translateX(-50%); border-radius: 50%; background: #2a6cc2; }
body.pt-site .pt-stage .speaker::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 62%; border-radius: 48% 48% 0 0; background: #1a5aa8; }
body.pt-site .pt-stage .live-tag { position: absolute; left: 14px; top: 14px; display: flex; gap: 8px; align-items: center; font-family: var(--pt-display); font-weight: 700; font-size: 12px; letter-spacing: .1em; color: var(--pt-navy); background: var(--pt-coral); padding: 6px 11px; border-radius: 999px; line-height: 1.2; }
body.pt-site .pt-stage .live-tag::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--pt-navy); }
body.pt-site .pt-stage .title-tag { position: absolute; right: 14px; top: 14px; font-family: var(--pt-display); font-weight: 600; font-size: 12px; color: var(--pt-white); background: rgba(0, 0, 0, .35); padding: 6px 11px; border-radius: 999px; line-height: 1.2; }
body.pt-site .pt-captions { padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 10px; background: #061a33; min-height: 146px; }
body.pt-site .pt-captions .line { font-family: var(--pt-display); font-weight: 600; font-size: clamp(16px, 1.9vw, 19px); line-height: 1.4; color: var(--pt-white); }
body.pt-site .pt-captions .line.prev { color: var(--pt-muted-d); font-weight: 500; }
body.pt-site .pt-cc-bar { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 20px 20px; background: #061a33; }
body.pt-site .pt-cc-bar .pt-chip { background: transparent; color: var(--pt-white); border-color: rgba(255, 255, 255, .28); }
body.pt-site .pt-cc-bar .pt-chip:hover { border-color: var(--pt-cyan); color: var(--pt-cyan); }
body.pt-site .pt-cc-bar .pt-chip[aria-pressed="true"] { background: var(--pt-cyan); border-color: var(--pt-cyan); color: var(--pt-navy); }

body.pt-site .pt-pov { position: relative; border-radius: 24px; overflow: hidden; aspect-ratio: 4 / 3; max-width: 100%; background: linear-gradient(180deg, #bfe6ff 0%, #e9f6ff 46%, #cfe8c9 46%, #a9d39b 100%); box-shadow: var(--pt-shadow); }
body.pt-site .pt-pov .road { position: absolute; left: 38%; right: 38%; bottom: 0; top: 46%; background: linear-gradient(180deg, #8aa0b4, #5e7387); clip-path: polygon(44% 0, 56% 0, 100% 100%, 0 100%); }
body.pt-site .pt-pov .rec { position: absolute; left: 28px; top: 28px; font-family: var(--pt-display); font-weight: 700; font-size: 12px; letter-spacing: .1em; color: var(--pt-white); background: var(--pt-navy); padding: 6px 11px; border-radius: 999px; line-height: 1.2; }
body.pt-site .pt-pov .pin { position: absolute; right: 28px; top: 28px; display: flex; gap: 6px; align-items: center; font-family: var(--pt-display); font-weight: 700; font-size: 12px; color: var(--pt-navy); background: var(--pt-white); padding: 6px 11px; border-radius: 999px; line-height: 1.2; }
body.pt-site .pt-pov .cap { position: absolute; left: 28px; right: 28px; bottom: 28px; display: flex; flex-direction: column; gap: 6px; }
body.pt-site .pt-pov .cap div { font-family: var(--pt-display); font-weight: 600; font-size: 15px; line-height: 1.35; color: var(--pt-white); background: rgba(11, 37, 69, .82); padding: 8px 12px; border-radius: 10px; }
body.pt-site .pt-pov .cap small { display: block; font-weight: 600; font-size: 11.5px; letter-spacing: .06em; color: var(--pt-cyan); text-transform: uppercase; }
body.pt-site .pt-why { padding: 22px 24px; border-radius: 18px; background: var(--pt-paper); border: 1px solid var(--pt-line); }
body.pt-site .et-l .pt-why h3 { font-size: 19px; margin-bottom: 6px; }
body.pt-site .pt-why p { font-size: 17.5px; color: var(--pt-muted); margin: 0; }

/* ---------- use-case cards ------------------------------------------ */

body.pt-site .pt-cases { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
body.pt-site .et-l a.pt-case {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 26px;
	border-radius: var(--pt-radius);
	background: var(--pt-white);
	border: 1px solid var(--pt-line);
	text-decoration: none;
	color: var(--pt-ink);
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
	min-width: 0;
}
body.pt-site .et-l a.pt-case:hover { transform: translateY(-4px); box-shadow: var(--pt-shadow); border-color: var(--pt-sky); color: var(--pt-ink); }
body.pt-site .pt-case .pt-ico, body.pt-site .pt-card .pt-ico { width: 48px; height: 48px; border-radius: 14px; background: var(--pt-paper); border: 0; }
body.pt-site .et-l .pt-case h3 { font-size: 20px; }
body.pt-site .pt-case p { font-size: 17px; color: var(--pt-muted); margin: 0; }
body.pt-site .pt-case .go { margin-top: auto; font-family: var(--pt-display); font-weight: 700; font-size: 14.5px; color: var(--pt-blue); }
body.pt-site .et-l a.pt-case--feature { grid-column: span 2; grid-row: span 2; background: var(--pt-navy); border-color: var(--pt-navy); color: var(--pt-white); padding: 34px; justify-content: flex-end; position: relative; overflow: hidden; }
body.pt-site .pt-case--feature::before { content: ""; position: absolute; right: -60px; top: -60px; width: 260px; height: 260px; border-radius: 50%; background: radial-gradient(circle, rgba(19, 195, 239, .35), transparent 70%); }
body.pt-site .et-l a.pt-case--feature:hover { color: var(--pt-white); border-color: var(--pt-cyan); }
body.pt-site .et-l .pt-case--feature h3 { font-size: clamp(26px, 3vw, 34px); color: var(--pt-white); }
body.pt-site .pt-case--feature p { font-size: 19px; color: var(--pt-muted-d); }
body.pt-site .pt-case--feature .go { color: var(--pt-coral); }
body.pt-site .pt-case--feature .pt-ico { background: rgba(255, 255, 255, .1); color: var(--pt-cyan); }
body.pt-site .pt-badge { align-self: flex-start; font-family: var(--pt-display); font-weight: 700; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--pt-navy); background: var(--pt-coral); padding: 6px 11px; border-radius: 999px; line-height: 1.2; }

/* generic cards (inner pages) */
body.pt-site .pt-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
body.pt-site .pt-cards--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body.pt-site .pt-cards--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
body.pt-site .pt-card { display: flex; flex-direction: column; gap: 12px; padding: 28px; border-radius: var(--pt-radius); background: var(--pt-white); border: 1px solid var(--pt-line); min-width: 0; }
body.pt-site .pt-band--white .pt-card { background: var(--pt-paper); border-color: transparent; }
body.pt-site .pt-band--navy .pt-card { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .12); }
body.pt-site .pt-band--navy .pt-card p { color: var(--pt-muted-d); }
body.pt-site .pt-band--navy .pt-card .pt-ico { background: rgba(255, 255, 255, .1); color: var(--pt-cyan); }
body.pt-site .et-l .pt-card h3 { font-size: 21px; }
body.pt-site .pt-card p { color: var(--pt-muted); font-size: 18px; margin: 0; }

/* stat strip */
body.pt-site .pt-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 16px; }
body.pt-site .pt-hero-media .pt-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
/* steps beside a form (Contact) stack vertically */
body.pt-site .pt-contact-steps .pt-steps { grid-template-columns: minmax(0, 1fr); }
body.pt-site .et-l .pt-split:has(.pt-contact-steps) { align-items: flex-start; }
@media (max-width: 980px) {
	body.pt-site .et-l .pt-split:has(.pt-contact-steps) .pt-form-card { order: -1; margin-top: 0 !important; }
	body.pt-site .et-l .pt-split:has(.pt-contact-steps) .pt-contact-steps { margin-top: 44px !important; }
}
/* the native select arrow is enough; Divi draws a second one */
body.pt-site .et-l .pt-form .et_pb_contact_field[data-type="select"]::after { display: none !important; }
body.pt-site .pt-stat { padding: 22px 24px; border-radius: 20px; background: var(--pt-white); border: 1px solid var(--pt-line); }
body.pt-site .pt-stat b { display: block; font-family: var(--pt-display); font-weight: 800; font-size: clamp(28px, 3vw, 40px); overflow-wrap: anywhere; line-height: 1; color: var(--pt-blue); letter-spacing: -.02em; }
body.pt-site .pt-stat span { display: block; margin-top: 8px; font-family: var(--pt-display); font-weight: 600; font-size: 14.5px; color: var(--pt-navy); }
body.pt-site .pt-band--navy .pt-stat { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .12); }
body.pt-site .pt-band--navy .pt-stat b { color: var(--pt-cyan); }
body.pt-site .pt-band--navy .pt-stat span { color: var(--pt-white); }

/* campus list */
body.pt-site .pt-list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
body.pt-site .pt-list-item { display: flex; gap: 14px; align-items: flex-start; padding: 18px 20px; border-radius: 18px; background: var(--pt-white); border: 1px solid var(--pt-line); }
body.pt-site .pt-band--white .pt-list-item { background: var(--pt-paper); border-color: transparent; }
body.pt-site .pt-list-item b { display: block; font-family: var(--pt-display); font-weight: 700; font-size: 17px; color: var(--pt-navy); line-height: 1.35; }
body.pt-site .pt-list-item span { display: block; font-size: 16.5px; color: var(--pt-muted); line-height: 1.45; }
body.pt-site .pt-list-item svg { flex: 0 0 auto; color: var(--pt-blue); margin-top: 2px; }

/* steps */
body.pt-site .pt-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; list-style: none; padding: 0 !important; margin: 0; }
body.pt-site .pt-step { padding: 30px; border-radius: var(--pt-radius); background: var(--pt-white); border: 1px solid var(--pt-line); display: flex; flex-direction: column; gap: 12px; list-style: none; }
body.pt-site .pt-step .n { width: 54px; height: 54px; border-radius: 16px; background: linear-gradient(135deg, var(--pt-blue), var(--pt-navy)); color: var(--pt-white); display: flex; align-items: center; justify-content: center; font-family: var(--pt-display); font-weight: 800; font-size: 22px; }
body.pt-site .et-l .pt-step h3 { font-size: 22px; }
body.pt-site .pt-step p { color: var(--pt-muted); margin: 0; }

/* honest comparison */
body.pt-site .pt-versus { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
body.pt-site .pt-vs { padding: 24px; border-radius: 20px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12); display: flex; flex-direction: column; gap: 10px; }
body.pt-site .et-l .pt-vs h3 { font-size: 18px; color: var(--pt-white); }
body.pt-site .pt-vs p { font-size: 17px; color: var(--pt-muted-d); margin: 0; }
body.pt-site .pt-vs--ptt { background: var(--pt-white); border-color: var(--pt-white); }
body.pt-site .et-l .pt-vs--ptt h3 { color: var(--pt-blue); }
body.pt-site .pt-vs--ptt p { color: var(--pt-ink); }

/* responsible-use notice */
body.pt-site .pt-notice { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 22px; align-items: start; padding: 32px; border-radius: var(--pt-radius); background: var(--pt-white); border: 1px solid var(--pt-line); }
body.pt-site .pt-notice .pt-ico { width: 56px; height: 56px; border-radius: 18px; background: #fff1ec; color: #c2410c; border: 0; }
body.pt-site .et-l .pt-notice h3 { font-size: 24px; margin-bottom: 8px; }
body.pt-site .pt-notice p { color: var(--pt-muted); margin: 0; }
body.pt-site .pt-notice .links { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 14px; font-family: var(--pt-display); font-weight: 700; font-size: 15px; }

/* FAQ */
body.pt-site .pt-faq { display: flex; flex-direction: column; gap: 12px; max-width: 880px; }
body.pt-site .pt-faq details { background: var(--pt-white); border: 1px solid var(--pt-line); border-radius: 18px; padding: 0 24px; }
body.pt-site .pt-band--white .pt-faq details { background: var(--pt-paper); border-color: transparent; }
body.pt-site .pt-faq summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 64px; font-family: var(--pt-display); font-weight: 700; font-size: 18px; color: var(--pt-navy); line-height: 1.35; padding: 12px 0; }
body.pt-site .pt-faq summary::-webkit-details-marker { display: none; }
body.pt-site .pt-faq summary::after { content: "+"; font-size: 26px; font-weight: 600; color: var(--pt-blue); flex: 0 0 auto; }
body.pt-site .pt-faq details[open] summary::after { content: "\2212"; }
body.pt-site .pt-faq details p { padding-bottom: 22px; color: var(--pt-muted); font-size: 18px; margin: 0; }

/* ---------- CTA band + contact form ---------------------------------- */

body.pt-site .et-l .pt-cta-row {
	border-radius: 32px;
	background: var(--pt-navy);
	color: var(--pt-white);
	padding: 64px 48px !important;
	align-items: center;
	column-gap: 48px;
	position: relative;
	overflow: hidden;
}
body.pt-site .et-l .pt-cta-row::before { content: ""; position: absolute; left: -120px; bottom: -160px; width: 420px; height: 420px; border-radius: 50%; border: 2px dashed rgba(255, 107, 74, .45); pointer-events: none; }
body.pt-site .et-l .pt-cta-row > .et_pb_column { position: relative; z-index: 1; }
body.pt-site .et-l .pt-cta-row h2 { color: var(--pt-white); }
body.pt-site .et-l .pt-cta-row .pt-lead p { color: var(--pt-muted-d); }
body.pt-site .et-l .pt-cta-row.pt-cta-solo { text-align: center; }
body.pt-site .et-l .pt-cta-row.pt-cta-solo .et_pb_column { align-items: center; }
body.pt-site .et-l .pt-cta-row.pt-cta-solo .pt-head { margin-left: auto !important; margin-right: auto !important; }

body.pt-site .et-l .pt-form-card { border-radius: 22px; background: var(--pt-white); color: var(--pt-ink); padding: 28px !important; box-shadow: 0 24px 60px rgba(0, 0, 0, .25); }
body.pt-site .et-l .pt-form-card > * + * { margin-top: 14px; }
body.pt-site .et-l .pt-form-card h3 { font-size: 24px; color: var(--pt-navy); }
body.pt-site .et-l .pt-form-card .pt-fine p { font-size: 14.5px !important; }

/* Divi contact form (.pt-form).
   Markup: #id.et_pb_contact_form_container.pt-form > .et-pb-contact-message + .et_pb_contact > form.et_pb_contact_form
   > .et_pb_contact_field (label + .input) … + .et_contact_bottom_container (captcha + button). Styled after a clean
   Forminator form: labels above, roomy rounded fields, a clear focus ring, one bold button. */
body.pt-site .et-l .pt-form { margin: 0; font-family: var(--pt-display); }
body.pt-site .et-l .pt-form .et_pb_contact_main_title { display: none; }
body.pt-site .et-l .pt-form .et_pb_contact_form { --flex-direction: row; flex-direction: row; flex-wrap: wrap; align-items: flex-start; row-gap: 16px; column-gap: 14px; margin: 0 !important; padding: 0 !important; }
body.pt-site .et-l .pt-form .et_pb_contact_field { --horizontal-gap-parent: 14px; width: 100% !important; flex: 0 0 100%; margin: 0 !important; padding: 0 !important; row-gap: 7px; }
body.pt-site .et-l .pt-form .et_pb_contact_form_label,
body.pt-site .et-l .pt-form .et_pb_contact_field_options_title {
	display: block !important;
	font-family: var(--pt-display);
	font-size: 14px;
	font-weight: 600;
	color: var(--pt-navy);
	margin: 0;
	line-height: 1.3;
}
body.pt-site .et-l .pt-form .et_pb_contact_field:has([data-required_mark="required"]) .et_pb_contact_form_label::after { content: " *"; color: #d9412b; }
body.pt-site .et-l .pt-form .et_pb_contact_field .input,
body.pt-site .et-l .pt-form .et_pb_contact_field select.input {
	width: 100%;
	box-sizing: border-box;
	font-family: var(--pt-display) !important;
	font-size: 16px !important;
	font-weight: 500;
	color: var(--pt-ink) !important;
	background: var(--pt-paper) !important;
	border: 1.5px solid var(--pt-line) !important;
	border-radius: 12px !important;
	padding: 13px 15px !important;
	box-shadow: none !important;
	transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}
body.pt-site .et-l .pt-form .et_pb_contact_field select.input { appearance: auto; min-height: 50px; }
body.pt-site .et-l .pt-form .et_pb_contact_field .input::placeholder { color: transparent; }
body.pt-site .et-l .pt-form .et_pb_contact_field textarea.input { min-height: 150px; resize: vertical; line-height: 1.5; }
body.pt-site .et-l .pt-form .et_pb_contact_field .input:focus {
	border-color: var(--pt-blue) !important;
	background: var(--pt-white) !important;
	box-shadow: 0 0 0 4px rgba(21, 101, 216, .16) !important;
	outline: none;
}
body.pt-site .et-l .pt-form .et_pb_contact_field .input.et_contact_error { border-color: #d9412b !important; }
/* SMS consent checkbox: the label is the consent wording itself, so it reads as fine print */
/* Divi hides the real checkbox and draws <i> in the label; the real one (it carries the value, and the label's `for`
   toggles it) is shown instead, and the field's duplicate top label is dropped in favor of the options title. */
body.pt-site .et-l .pt-form .et_pb_contact_field[data-type="checkbox"] > .et_pb_contact_form_label { display: none !important; }
body.pt-site .et-l .pt-form .et_pb_contact_field_options_wrapper { display: flex; flex-direction: column; gap: 8px; }
body.pt-site .et-l .pt-form .et_pb_contact_field_checkbox { display: flex; gap: 10px; align-items: flex-start; margin: 0; }
body.pt-site .et-l .pt-form .et_pb_contact_field .et_pb_contact_field_checkbox input[type="checkbox"].input {
	display: block !important;
	position: static !important;
	opacity: 1 !important;
	visibility: visible !important;
	appearance: auto !important;
	-webkit-appearance: checkbox !important;
	width: 20px !important;
	height: 20px !important;
	min-height: 0 !important;
	margin: 2px 0 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	box-shadow: none !important;
	accent-color: var(--pt-blue);
	flex: 0 0 auto;
	cursor: pointer;
}
body.pt-site .et-l .pt-form .et_pb_contact_field_checkbox label { font-family: var(--pt-body); font-size: 14.5px; line-height: 1.45; color: var(--pt-muted); cursor: pointer; padding: 0 !important; }
body.pt-site .et-l .pt-form .et_pb_contact_field_checkbox label i { display: none !important; }
body.pt-site .et-l .pt-form-card .et_pb_heading + .pt-form { margin-top: 18px !important; }
body.pt-site .et-l .pt-form .et_contact_bottom_container { float: none !important; width: 100% !important; margin: 6px 0 0 !important; text-align: start !important; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; }
body.pt-site .et-l .pt-form .et_pb_contact_right { display: inline-flex; align-items: center; gap: 8px; font-family: var(--pt-display); font-weight: 600; font-size: 15px; color: var(--pt-navy); margin: 0; }
body.pt-site .et-l .pt-form .et_pb_contact_right .input.et_pb_contact_captcha { width: 64px !important; text-align: center; padding: 10px 8px !important; }
body.pt-site .et-l .pt-form .et_pb_button_wrapper { margin: 0; text-align: start !important; }
body.pt-site .et-l .pt-form .et_pb_button.et_pb_contact_submit {
	margin: 0 !important;
	font-family: var(--pt-display) !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	letter-spacing: 0 !important;
	padding: 14px 30px !important;
	border-radius: 999px !important;
	border: 2px solid var(--pt-blue) !important;
	background: var(--pt-blue) !important;
	color: var(--pt-white) !important;
	box-shadow: 0 12px 26px rgba(21, 101, 216, .28) !important;
	line-height: 1.2 !important;
}
body.pt-site .et-l .pt-form .et_pb_button.et_pb_contact_submit::after { display: none !important; }
body.pt-site .et-l .pt-form .et_pb_button.et_pb_contact_submit:hover { background: var(--pt-blue-hi) !important; border-color: var(--pt-blue-hi) !important; }
body.pt-site .et-l .pt-form .et-pb-contact-message:empty { display: none; }
body.pt-site .et-l .pt-form .et-pb-contact-message { margin: 0 0 16px; font-size: 16px; color: var(--pt-ink); }
body.pt-site .et-l .pt-form .et-pb-contact-message p { margin: 0; }
body.pt-site .et-l .pt-form .et-pb-contact-message > p:only-child { font-family: var(--pt-display); font-weight: 700; font-size: 20px; line-height: 1.35; color: var(--pt-navy); }
body.pt-site .et-l .pt-form .et-pb-contact-message ul { margin: 8px 0 0; padding: 0; padding-inline-start: 1.2em; color: #b4380f; }

/* ---------- inner-page hero ---------------------------------------- */

body.pt-site .et-l .et_pb_section.pt-page-hero { position: relative; overflow: hidden; background: var(--pt-white) !important; padding: 64px 0 80px; }
body.pt-site .et-l .et_pb_section.pt-page-hero::after { content: ""; position: absolute; right: -200px; top: -180px; width: 560px; height: 560px; border-radius: 50%; border: 2px dashed rgba(19, 195, 239, .32); pointer-events: none; }
body.pt-site .et-l .pt-page-hero .et_pb_row { position: relative; z-index: 1; align-items: center; column-gap: 56px; }
body.pt-site .et-l .pt-page-hero h1 { font-size: clamp(40px, 5.6vw, 68px); }
body.pt-site .et-l .pt-page-hero h1 em { font-style: normal; color: var(--pt-blue); background: linear-gradient(transparent 68%, rgba(255, 107, 74, .38) 68%); }
body.pt-site .et-l .pt-page-hero .pt-hero-copy > * + * { margin-top: 22px; }

/* scenario chat (inner pages): one short exchange, read in the language you pick */
body.pt-site .pt-scene { border-radius: 28px; background: var(--pt-navy); padding: 22px; box-shadow: 0 30px 70px rgba(11, 37, 69, .25); color: var(--pt-white); }
body.pt-site .pt-scene-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
body.pt-site .pt-scene-top b { font-family: var(--pt-display); font-weight: 700; font-size: 15px; line-height: 1.3; }
body.pt-site .pt-scene-top small { display: block; font-family: var(--pt-display); font-weight: 500; font-size: 12px; color: var(--pt-muted-d); }
body.pt-site .pt-scene-top .live { font-family: var(--pt-display); font-weight: 700; font-size: 11px; letter-spacing: .1em; color: var(--pt-navy); background: var(--pt-coral); padding: 5px 10px; border-radius: 999px; flex: 0 0 auto; }
body.pt-site .pt-scene-thread { display: flex; flex-direction: column; gap: 10px; border-radius: 20px; background: #eef3f9; padding: 16px 14px; min-height: 250px; }
body.pt-site .pt-scene .pt-bubble { max-width: 300px; }
body.pt-site .pt-scene .pt-msg.me { flex-direction: row-reverse; }
body.pt-site .pt-scene .pt-msg.me .pt-bubble { border-radius: 18px 18px 6px 18px; background: #e4efff; }
body.pt-site .pt-scene .pt-chips { margin-top: 14px; max-width: none; justify-content: flex-start; }
body.pt-site .pt-scene .pt-chip { min-height: 38px; padding: 0 13px; font-size: 13.5px; background: transparent; color: var(--pt-white); border-color: rgba(255, 255, 255, .28); }
body.pt-site .pt-scene .pt-chip:hover { border-color: var(--pt-cyan); color: var(--pt-cyan); }
body.pt-site .pt-scene .pt-chip[aria-pressed="true"] { background: var(--pt-cyan); border-color: var(--pt-cyan); color: var(--pt-navy); }
body.pt-site .pt-scene-label { margin-top: 14px; font-family: var(--pt-display); font-weight: 700; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--pt-muted-d); }

/* ---------- footer (Theme Builder) ---------------------------------- */

body.pt-site .et-l--footer .et_pb_section.pt-footer { background: var(--pt-deep) !important; color: var(--pt-muted-d); padding: 64px 0 36px; font-size: 16px; }
body.pt-site .et-l--footer .pt-footer .et_pb_row { width: var(--pt-wrap); }
body.pt-site .pt-foot-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) repeat(4, minmax(0, 1fr)); gap: 32px; font-size: 16px; }
body.pt-site .et-l .pt-foot-grid h4 { font-size: 14px; letter-spacing: .1em; text-transform: uppercase; color: var(--pt-white); margin-bottom: 14px; }
body.pt-site .pt-foot-grid ul { list-style: none; padding: 0 !important; margin: 0; display: flex; flex-direction: column; gap: 10px; }
body.pt-site .pt-foot-grid li { list-style: none; line-height: 1.4; }
body.pt-site .et-l .pt-foot-grid a { color: var(--pt-muted-d); text-decoration: none; }
body.pt-site .et-l .pt-foot-grid a:hover { color: var(--pt-cyan); }
body.pt-site .pt-foot-brand p { margin-top: 14px; max-width: 300px; color: var(--pt-muted-d); font-size: 16px; }
body.pt-site .pt-foot-brand .pt-brand-word b { color: var(--pt-white); background: linear-gradient(90deg, #ffffff, #8fe3ff); -webkit-background-clip: text; background-clip: text; }
body.pt-site .pt-foot-brand .pt-brand-word span { color: #ff8f7a; }
body.pt-site .et-l .pt-foot-brand a.pt-eecons { color: var(--pt-cyan); }
body.pt-site .pt-foot-bottom { margin-top: 48px; padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, .1); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; font-size: 15px; color: var(--pt-muted-d); }
body.pt-site .et-l .pt-foot-bottom a { color: var(--pt-cyan); }

/* ---------- responsive ---------------------------------------------- */

@media (max-width: 1020px) {
	body.pt-site .pt-cases { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body.pt-site .pt-cards--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 980px) {
	body.pt-site .et-l .et_pb_section.pt-hero { padding: 48px 0 64px; }
	body.pt-site .et-l .et_pb_section.pt-hero::after, body.pt-site .et-l .et_pb_section.pt-page-hero::after { display: none; }
	body.pt-site .et-l .pt-hero .et_pb_column + .et_pb_column,
	body.pt-site .et-l .pt-page-hero .et_pb_column + .et_pb_column,
	body.pt-site .et-l .pt-split .et_pb_column + .et_pb_column { margin-top: 44px !important; }
	body.pt-site .pt-screen { height: 520px; }
	body.pt-site .pt-versus { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body.pt-site .pt-foot-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body.pt-site .pt-foot-brand { grid-column: 1 / -1; }
	body.pt-site .et-l .pt-cta-row { padding: 44px 24px !important; }
	body.pt-site .et-l .pt-cta-row .et_pb_column + .et_pb_column { margin-top: 32px !important; }
}
@media (max-width: 900px) {
	body.pt-site .pt-tile--chat, body.pt-site .pt-tile--live, body.pt-site .pt-tile--bridge, body.pt-site .pt-tile--access { grid-column: span 6; }
	body.pt-site .pt-cards, body.pt-site .pt-features--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body.pt-site .pt-steps { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
	body.pt-site .pt-features { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
	body.pt-site { font-size: 18px; }
	body.pt-site .et-l .et_pb_text, body.pt-site .et-l .et_pb_text p { font-size: 18px; }
	body.pt-site .pt-cards, body.pt-site .pt-cards--2, body.pt-site .pt-cards--4, body.pt-site .pt-features--3 { grid-template-columns: minmax(0, 1fr); }
	body.pt-site .pt-cases, body.pt-site .pt-versus { grid-template-columns: minmax(0, 1fr); }
	body.pt-site .et-l a.pt-case--feature { grid-column: auto; grid-row: auto; }
	body.pt-site .pt-notice { grid-template-columns: minmax(0, 1fr); }
	body.pt-site .pt-foot-grid { grid-template-columns: minmax(0, 1fr); }
	body.pt-site .pt-pov .rec, body.pt-site .pt-pov .pin { top: 14px; }
	body.pt-site .pt-pov .rec { left: 14px; }
	body.pt-site .pt-pov .pin { right: 14px; }
	body.pt-site .pt-pov .cap { left: 14px; right: 14px; bottom: 14px; }
	body.pt-site .pt-pov .cap div { font-size: 13.5px; }
}

/* ---------- motion -------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	body.pt-site a.pt-btn, body.pt-site a.pt-btn:hover, body.pt-site .et-l a.pt-case, body.pt-site .et-l a.pt-case:hover { transition: none; transform: none; }
	body.pt-site .pt-swap-in { animation: none; }
	body.pt-site .pt-track { animation: none; flex-wrap: wrap; width: auto; padding: 0 16px; }
	body.pt-site .pt-track.rev { display: none; }
}

.pt-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* ---------- pages not built by the redesign (body.pt-legacy) -------------
   Legal pages, the login guard's "Access Denied" page, 404 and search keep their own content inside the new
   header and footer: a calm reading column instead of the marketing pages' hero type. */

body.pt-legacy .et-l--post .et_pb_section { padding: clamp(48px, 6vw, 84px) 0; }
body.pt-legacy .et-l--post .et_pb_row { width: min(calc(100% - 32px), 860px) !important; } /* the site's Row preset forces 90% !important */
body.pt-legacy .et-l--post h1 { font-size: clamp(34px, 4.6vw, 52px); letter-spacing: -.025em; line-height: 1.05; margin-bottom: .55em; }
body.pt-legacy .et-l--post h2 { font-size: clamp(26px, 3vw, 34px); margin: 1.3em 0 .4em; }
body.pt-legacy .et-l--post h3 { margin: 1.2em 0 .35em; }
body.pt-legacy .et-l--post .et_pb_text :is(p, li) { font-size: 18px; }
body.pt-legacy .et-l--post .et_pb_text :is(ol, ul) { padding: 0 0 0 1.4em; margin: .8em 0 1em; }
body.pt-legacy .et-l--post .et_pb_text li + li { margin-top: .35em; }
body.pt-legacy .et-l--post .et_pb_text :is(ol, ul) + p { margin-top: 1em; }
body.pt-legacy:is(.error404, .search) #main-content .container { width: min(calc(100% - 32px), 860px); padding: clamp(56px, 7vw, 96px) 0; }
body.pt-legacy:is(.error404, .search) #main-content :is(h1, h2) { font-family: var(--pt-display); font-weight: 800; color: var(--pt-navy); }
/* 404 and search: the blog sidebar (recent posts/comments) is empty on this site, so drop it */
body.pt-legacy:is(.error404, .search) #sidebar { display: none; }
body.pt-legacy:is(.error404, .search) #left-area { width: 100%; padding: 0; float: none; }

/* ---------- languages: header switcher ([pt_langs], i18n.php) ------------ */

body.pt-site .et-l--header .pt-header-row > .et_pb_column.pt-lang-col { flex: 0 0 auto; }
body.pt-site .et-l--header .pt-lang-mod .et_pb_text_inner > p:empty { display: none; }
body.pt-site .pt-lang { position: relative; font-family: var(--pt-display); }
body.pt-site .pt-lang-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 44px;
	padding: 0 12px;
	border: 2px solid var(--pt-line);
	border-radius: 999px;
	background: transparent;
	color: var(--pt-navy);
	font: 700 14px/1 var(--pt-display);
	letter-spacing: .02em;
	cursor: pointer;
	transition: border-color .15s ease, color .15s ease;
}
body.pt-site .pt-lang-btn:hover,
body.pt-site .pt-lang-btn[aria-expanded="true"] { border-color: var(--pt-blue); color: var(--pt-blue); }
body.pt-site .pt-lang-btn svg { flex: 0 0 auto; }
body.pt-site .pt-lang-btn[aria-expanded="true"] .pt-lang-chev { transform: rotate(180deg); }
body.pt-site .pt-lang-panel {
	position: absolute;
	top: calc(100% + 12px);
	inset-inline-end: 0;
	z-index: 1002;
	width: min(460px, calc(100vw - 24px));
	max-height: min(72vh, 640px);
	overflow-y: auto;
	padding: 10px;
	background: var(--pt-white);
	border: 1px solid var(--pt-line);
	border-top: 3px solid var(--pt-blue);
	border-radius: 18px;
	box-shadow: 0 26px 60px rgba(11, 37, 69, .22);
}
body.pt-site .pt-lang-panel[hidden] { display: none; }
body.pt-site .pt-lang-panel ul { list-style: none; margin: 0; padding: 0 !important; display: grid; grid-template-columns: 1fr 1fr; gap: 2px; }
body.pt-site .pt-lang-panel li { margin: 0; padding: 0; list-style: none; }
body.pt-site .pt-lang-panel a {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 8px 12px;
	border-radius: 10px;
	color: var(--pt-ink) !important;
	text-decoration: none !important;
}
body.pt-site .pt-lang-panel a:hover,
body.pt-site .pt-lang-panel a:focus-visible { background: var(--pt-paper); outline-offset: -3px; }
body.pt-site .pt-lang-panel a[aria-current="true"] { background: #e8f1fd; color: var(--pt-blue) !important; }
body.pt-site .pt-lang-panel a { text-align: left; }   /* each link carries its own dir; keep the list aligned */
body.pt-site.pt-rtl .pt-lang-panel a { text-align: right; }
body.pt-site .pt-lang-native {
	font-family: "Poppins", "Noto Sans SC", "Noto Sans JP", "Noto Sans KR", "Noto Sans Arabic", "Noto Sans Hebrew", "Noto Sans Devanagari", "Noto Sans Thai", system-ui, sans-serif;
	font-weight: 600;
	font-size: 15px;
	line-height: 1.3;
}
body.pt-site .pt-lang-name { font-family: "Poppins", system-ui, sans-serif; font-size: 12px; font-weight: 500; line-height: 1.3; color: var(--pt-muted); }
body.pt-site .pt-lang-panel a[aria-current="true"] .pt-lang-name { color: var(--pt-blue); }
body.pt-site .et-l .pt-lang-note,
body.pt-site .pt-lang-note { margin: 8px 12px 4px !important; font-family: var(--pt-body); font-size: 13px !important; line-height: 1.4; color: var(--pt-muted); }
/* Compact header at desktop widths (ptt-i18n.js adds pt-nav-compact when a language's menu does not fit). */
body.pt-site.pt-nav-compact .et-l--header .et_pb_menu .et-menu { display: none !important; }
body.pt-site.pt-nav-compact .et-l--header .et_pb_menu .et_mobile_nav_menu { display: block !important; margin-top: -1px; }
body.pt-site.pt-nav-compact .et-l--header .pt-header-row > .et_pb_column.pt-lang-col { order: 2; margin-inline-start: auto !important; }
body.pt-site.pt-nav-compact .et-l--header .pt-header-row > .et_pb_column.pt-menu-col { order: 3; flex: 0 0 auto; }
@media (min-width: 981px) {
	body.pt-site.pt-nav-compact .et-l--header .et_pb_menu .et_mobile_nav_menu .et_mobile_menu {
		left: auto !important;
		right: max(16px, calc((100vw - 1280px) / 2)) !important;
		width: 400px !important;
		border-radius: 0 0 18px 18px;
	}
	body.pt-site.pt-nav-compact.pt-rtl .et-l--header .et_pb_menu .et_mobile_nav_menu .et_mobile_menu {
		right: auto !important;
		left: max(16px, calc((100vw - 1280px) / 2)) !important;
	}
}
body.pt-site.pt-nav-compact .et-l--header .et_pb_menu .et_mobile_menu li a { text-align: start; }
body.pt-site .et-l--header .pt-lang-col .et_pb_module { margin: 0 !important; }
body.pt-site .et-l--header .pt-lang-mod .et_pb_text_inner { display: flex; align-items: center; }
@media (max-width: 980px) {
	body.pt-site .et-l--header .pt-header-row { gap: 10px; }
	body.pt-site .et-l--header .pt-header-row > .et_pb_column.pt-lang-col { order: 2; margin-inline-start: auto !important; }
	body.pt-site .et-l--header .pt-header-row > .et_pb_column.pt-menu-col { order: 3; flex: 0 0 auto; }
	body.pt-site .pt-lang-btn { min-height: 40px; padding: 0 9px; gap: 5px; }
	body.pt-site .pt-lang-chev { display: none; }
	body.pt-site .pt-lang-panel { position: fixed; top: 84px; inset-inline: 12px; width: auto; max-height: calc(100vh - 100px); }
}
@media (max-width: 480px) { body.pt-site .et-l--header .pt-header-row { gap: 6px; } body.pt-site .pt-lang-btn { padding: 0 8px; gap: 4px; } }
@media (max-width: 389px) { body.pt-site .pt-lang-code { display: none; } }
@media (max-width: 340px) { body.pt-site .pt-lang-panel ul { grid-template-columns: 1fr; } }

/* ---------- languages: fonts per script --------------------------------
   Comic Neue is Latin-only and Poppins has no Cyrillic or Vietnamese, so those languages swap the two families
   (Nunito / Montserrat load only for them; see "fonts" in i18n/languages.json). */

body.pt-site.pt-lang-pl, body.pt-site.pt-lang-tr { --pt-body: "Nunito", system-ui, sans-serif; }
body.pt-site.pt-lang-ru, body.pt-site.pt-lang-uk, body.pt-site.pt-lang-vi {
	--pt-display: "Montserrat", "Segoe UI", system-ui, sans-serif;
	--pt-body: "Nunito", system-ui, sans-serif;
}
body.pt-site.pt-lang-zh-hans { --pt-display: "Noto Sans SC", "Poppins", sans-serif; --pt-body: "Noto Sans SC", "PingFang SC", sans-serif; }
body.pt-site.pt-lang-ja { --pt-display: "Noto Sans JP", "Poppins", sans-serif; --pt-body: "Noto Sans JP", "Hiragino Sans", sans-serif; }
body.pt-site.pt-lang-ko { --pt-display: "Noto Sans KR", "Poppins", sans-serif; --pt-body: "Noto Sans KR", "Apple SD Gothic Neo", sans-serif; }
body.pt-site.pt-lang-ar { --pt-display: "Noto Sans Arabic", "Poppins", sans-serif; --pt-body: "Noto Sans Arabic", system-ui, sans-serif; }
body.pt-site.pt-lang-he { --pt-display: "Noto Sans Hebrew", "Poppins", sans-serif; --pt-body: "Noto Sans Hebrew", system-ui, sans-serif; }
body.pt-site.pt-lang-hi { --pt-display: "Poppins", "Noto Sans Devanagari", sans-serif; --pt-body: "Noto Sans Devanagari", system-ui, sans-serif; }
body.pt-site.pt-lang-th { --pt-display: "Noto Sans Thai", "Poppins", sans-serif; --pt-body: "Noto Sans Thai", system-ui, sans-serif; }
/* Scripts without capitals, or with joined letters: no negative tracking, room for marks above and below. */
body.pt-site:is(.pt-lang-zh-hans, .pt-lang-ja, .pt-lang-ko, .pt-lang-ar, .pt-lang-he, .pt-lang-hi, .pt-lang-th) .et-l :is(h1, h2, h3, h4) { letter-spacing: 0; line-height: 1.22; }
body.pt-site:is(.pt-lang-zh-hans, .pt-lang-ja, .pt-lang-ko, .pt-lang-ar, .pt-lang-he, .pt-lang-hi, .pt-lang-th) .et-l h1.pt-h1 { line-height: 1.15; }
body.pt-site:is(.pt-lang-ar, .pt-lang-he, .pt-lang-hi, .pt-lang-th) .pt-eyebrow-txt,
body.pt-site:is(.pt-lang-ar, .pt-lang-he, .pt-lang-hi, .pt-lang-th) .pt-eyebrow p { letter-spacing: 0 !important; }
body.pt-site:is(.pt-lang-ar, .pt-lang-hi, .pt-lang-th) .et-l :is(p, li) { line-height: 1.75; }

/* ---------- languages: right-to-left (Arabic, Hebrew) -------------------
   Flex/grid layouts and logical properties follow dir="rtl" by themselves; these are the physical leftovers.
   The demos stay left-to-right: they show a chat app, and each message carries its own dir. */

body.pt-site.pt-rtl :is(.pt-demo, .pt-player, .pt-pov, .pt-scene, .pt-marquee) { direction: ltr; }
/* Text in a left-to-right language inside an RTL page (demo bubbles, captions) keeps its own direction, so
   "¿Dónde…?" does not come out as "?Dónde…¿". */
body.pt-site.pt-rtl [lang]:not([lang^="ar"]):not([lang^="he"]) { direction: ltr; unicode-bidi: isolate; }
body.pt-site.pt-rtl .et-l--header .et_pb_menu .et-menu > li.menu-item-has-children > a { padding-right: 12px !important; padding-left: 30px !important; }
body.pt-site.pt-rtl .et-l--header .et_pb_menu .et-menu > li.menu-item-has-children > a::after { right: auto; left: 10px; }
body.pt-site.pt-rtl .et-l--header .et_pb_menu .et-menu li ul.sub-menu { left: auto; right: 0; }
body.pt-site.pt-rtl .et-l--header .et_pb_menu .et-menu > li.pt-menu-cta { padding-left: 0; padding-right: 6px; }
body.pt-site.pt-rtl .pt-h1 .l2 span { padding-right: 0; padding-left: .06em; }

/* ---------- homepage phone: "type anything" (live translation, demo.php) ---------- */

body.pt-site .pt-sr { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
body.pt-site form.pt-chat-input { margin: 0; }
body.pt-site .pt-chat-input input.field {
	width: 100%;
	min-width: 0;
	margin: 0;
	font-family: var(--pt-body);
	font-size: 16px; /* under 16px, iPhones zoom the page on focus */
	color: var(--pt-ink);
	outline: none;
	transition: border-color .15s ease, box-shadow .15s ease;
}
body.pt-site .pt-chat-input input.field::placeholder { color: var(--pt-muted); opacity: 1; }
body.pt-site .pt-chat-input input.field:focus { border-color: var(--pt-blue); box-shadow: 0 0 0 3px rgba(21, 101, 216, .16); }
body.pt-site .pt-chat-input button.mic { border: 0; padding: 0; cursor: pointer; transition: transform .15s ease, background-color .15s ease; }
body.pt-site .pt-chat-input button.mic:hover { background: var(--pt-coral-hi); transform: scale(1.06); }
body.pt-site .pt-chat-input button.mic:focus-visible { outline: 3px solid var(--pt-blue); outline-offset: 2px; }
body.pt-site .pt-chat-input :is(input, button):disabled { opacity: .55; cursor: not-allowed; transform: none; }
body.pt-site .pt-thread.has-you { justify-content: flex-end; }
body.pt-site .pt-msg.you { flex-direction: row-reverse; }
body.pt-site .pt-msg.you .pt-bubble { background: #e4efff; border-radius: 18px 18px 6px 18px; }
body.pt-site .pt-typing { display: inline-flex; gap: 3px; margin-inline-start: 6px; vertical-align: middle; }
body.pt-site .pt-typing i { width: 5px; height: 5px; border-radius: 50%; background: var(--pt-blue); animation: pt-dot 1s infinite ease-in-out; }
body.pt-site .pt-typing i:nth-child(2) { animation-delay: .15s; }
body.pt-site .pt-typing i:nth-child(3) { animation-delay: .3s; }
@keyframes pt-dot { 0%, 80%, 100% { opacity: .25; transform: translateY(0); } 40% { opacity: 1; transform: translateY(-2px); } }
body.pt-site .et-l .pt-try-note {
	max-width: 340px;
	margin: -4px 0 0 !important;
	text-align: center;
	font-family: var(--pt-body);
	font-size: 15px !important;
	line-height: 1.45;
	color: var(--pt-muted);
}
body.pt-site .pt-try-note [data-s] { display: block; }
body.pt-site .pt-try-note [data-s][hidden] { display: none; }
body.pt-site .pt-try-note a { color: var(--pt-blue); font-weight: 700; }
body.pt-site .pt-try-note .pt-try-left { display: block; margin-top: 2px; font-family: var(--pt-display); font-size: 12.5px; font-weight: 600; letter-spacing: .02em; color: var(--pt-blue); }
body.pt-site .pt-try-note .pt-try-left[hidden] { display: none; }
@media (prefers-reduced-motion: reduce) { body.pt-site .pt-typing i { animation: none; opacity: .6; } }
/* ---------- real chat screenshot (the demo chat, host's view) ------------ */
body.pt-site .pt-shot { margin: 0 auto; max-width: 500px; border-radius: 24px; overflow: hidden; background: #f5f5f5; border: 1px solid var(--pt-line); box-shadow: var(--pt-shadow); }
body.pt-site .pt-shot-bar { display: flex; align-items: center; gap: 12px; padding: 12px 16px; background: var(--pt-white); border-bottom: 1px solid var(--pt-line); font: 600 13px/1.2 var(--pt-display); color: var(--pt-muted); }
body.pt-site .pt-shot-bar .dots { display: flex; gap: 6px; }
body.pt-site .pt-shot-bar .dots i { width: 10px; height: 10px; border-radius: 50%; background: var(--pt-line); }
body.pt-site .pt-shot-bar .dots i:first-child { background: var(--pt-coral); }
body.pt-site .pt-shot-bar .live { margin-inline-start: auto; font-size: 11px; letter-spacing: .1em; color: var(--pt-blue); }
body.pt-site .pt-shot img { display: block; width: 100%; height: auto; }
body.pt-site .pt-shot figcaption { padding: 10px 16px 12px; background: var(--pt-white); border-top: 1px solid var(--pt-line); font-family: var(--pt-body); font-size: 13.5px; line-height: 1.45; color: var(--pt-muted); }
body.pt-site .pt-typed-label { margin: 0 0 10px; font: 700 12px/1 var(--pt-display); letter-spacing: .12em; text-transform: uppercase; color: var(--pt-blue); }
body.pt-site .pt-typed ul { list-style: none; margin: 0; padding: 0 !important; display: flex; flex-direction: column; gap: 10px; }
body.pt-site .pt-typed li { margin: 0; padding: 12px 16px; list-style: none; background: var(--pt-paper); border: 1px solid var(--pt-line); border-radius: 16px; }
body.pt-site .pt-band--paper .pt-typed li { background: var(--pt-white); }
body.pt-site .pt-typed .who { display: block; margin-bottom: 4px; font: 700 12.5px/1.2 var(--pt-display); color: var(--pt-muted); }
body.pt-site .pt-typed .said { display: block; font-size: 18px; line-height: 1.5; color: var(--pt-ink); }
body.pt-site .pt-typed .said[dir="rtl"] { text-align: right; }

/* ---------- homepage phone: "try it" prompts --------------------------------
   The sticker points at the input and leaves after the first message; the input pulses until it is focused
   (ptt.js adds pt-try-new / pt-tried). Both stay still for reduced motion. */
body.pt-site .pt-phone { position: relative; }
body.pt-site .pt-try-tag {
	position: absolute;
	z-index: 3;
	right: -38px;
	bottom: 118px;
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 9px 15px 10px;
	border-radius: 14px;
	background: var(--pt-coral);
	color: var(--pt-navy);
	box-shadow: 0 14px 28px rgba(255, 107, 74, .35);
	pointer-events: none;
	transform: rotate(4deg);
	transition: opacity .35s ease, transform .35s ease;
	animation: pt-tag-bob 3.2s ease-in-out infinite;
}
body.pt-site .pt-try-tag small { font: 700 10.5px/1 var(--pt-display); letter-spacing: .14em; text-transform: uppercase; opacity: .85; }
body.pt-site .pt-try-tag b { font: 800 17px/1.15 var(--pt-display); white-space: nowrap; }
body.pt-site .pt-try-tag .arrow { position: absolute; top: 100%; left: 4px; margin-top: 3px; color: var(--pt-coral); }
body.pt-site .pt-demo.pt-tried .pt-try-tag { opacity: 0; transform: rotate(4deg) scale(.85); animation: none; }
@keyframes pt-tag-bob { 0%, 100% { transform: rotate(4deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-5px); } }
body.pt-site form.pt-try-new input.field { animation: pt-try-pulse 2.4s ease-in-out 1.2s infinite; }
@keyframes pt-try-pulse {
	0%, 100% { border-color: var(--pt-line); box-shadow: 0 0 0 0 rgba(255, 107, 74, 0); }
	50% { border-color: var(--pt-coral); box-shadow: 0 0 0 5px rgba(255, 107, 74, .22); }
}
@media (max-width: 980px) { body.pt-site .pt-try-tag { right: -8px; bottom: 112px; padding: 8px 13px 9px; } body.pt-site .pt-try-tag b { font-size: 15.5px; } }
@media (prefers-reduced-motion: reduce) { body.pt-site .pt-try-tag, body.pt-site form.pt-try-new input.field { animation: none; } }

/* ---------- homepage: two phones, one chat --------------------------------
   Left: what the visitor writes (with "I write in"). Right: the same chat in the reader's language, picked with the
   chips or the custom selector (.pt-lsel, every PTT language). Side by side from 701px, stacked below. */
body.pt-site .et-l .pt-hero .et_pb_column.pt-hero-demo { min-width: 0; }
body.pt-site .pt-duo { --pt-phone-w: 318px; width: 100%; }
body.pt-site .pt-duo-row { display: flex; align-items: flex-start; justify-content: center; width: 100%; }
body.pt-site .pt-duo-side { display: flex; flex-direction: column; align-items: center; gap: 14px; flex: 0 1 var(--pt-phone-w); min-width: 0; }
body.pt-site .pt-duo-read { margin-top: 46px; }
body.pt-site .pt-duo .pt-phone { width: 100%; border-radius: 42px; padding: 11px; }
body.pt-site .pt-duo .pt-screen { height: 540px; border-radius: 32px; }
body.pt-site .pt-duo-cap { font-family: var(--pt-display); font-size: 14px; line-height: 1.3; color: var(--pt-muted); text-align: center; }
body.pt-site .pt-duo-cap b { font-weight: 800; font-size: 15px; color: var(--pt-navy); }
body.pt-site .pt-duo-link { position: relative; z-index: 2; flex: 0 0 34px; align-self: center; display: flex; justify-content: center; margin-top: 40px; }
body.pt-site .pt-duo-link span { flex: 0 0 auto; width: 46px; height: 46px; border-radius: 50%; background: var(--pt-coral); color: var(--pt-navy); display: flex; align-items: center; justify-content: center; box-shadow: 0 10px 22px rgba(255, 107, 74, .38), 0 0 0 5px var(--pt-white); }
body.pt-site .pt-duo.pt-busy .pt-duo-link span { animation: pt-link-go .8s ease-in-out infinite; }
@keyframes pt-link-go { 0%, 100% { transform: translateX(-3px); } 50% { transform: translateX(4px); } }
body.pt-site .pt-duo .pt-thread { justify-content: flex-end; padding: 14px 12px; gap: 10px; }
body.pt-site .pt-duo .pt-bubble { max-width: calc(100% - 41px); }
body.pt-site .pt-duo .pt-bubble .txt { font-size: 15px; }
body.pt-site .pt-duo .pt-chat-input { padding: 12px 10px; gap: 8px; }
body.pt-site .pt-duo .pt-chat-input input.field { padding: 0 12px; }
body.pt-site .pt-duo .pt-chat-input input.field::placeholder { font-size: 15px; }
/* the reading phone shows the visitor's messages as incoming */
body.pt-site .pt-duo-read .pt-msg.you { flex-direction: row; }
body.pt-site .pt-duo-read .pt-msg.you .pt-bubble { background: var(--pt-white); border-radius: 18px 18px 18px 6px; box-shadow: 0 4px 12px rgba(11, 37, 69, .07), inset 3px 0 0 var(--pt-coral); }
body.pt-site .pt-duo .pt-swap-in .pt-bubble .txt { animation: pt-swap .45s ease both; }
body.pt-site .pt-duo .pt-thread.pt-swap-in { animation: none; }
/* "I write in" (left phone header) */
body.pt-site .pt-chat-top small.pt-wl-row { display: flex; align-items: center; flex-wrap: wrap; gap: 2px 6px; margin-top: 3px; }
body.pt-site .pt-wl {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	min-height: 28px;
	max-width: 100%;
	padding: 0 10px;
	border: 1.5px solid #cfe0f7;
	border-radius: 999px;
	background: #f2f7fe;
	color: var(--pt-blue);
	font: 700 12px/1 var(--pt-display);
	cursor: pointer;
	transition: border-color .15s ease, background-color .15s ease;
}
body.pt-site .pt-wl .v { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.pt-site .pt-wl:hover { border-color: var(--pt-blue); background: #e8f1fd; }
body.pt-site .pt-wl:focus-visible { outline: 3px solid var(--pt-blue); outline-offset: 2px; }
body.pt-site .pt-wl svg { flex: 0 0 auto; }
/* right phone footer, where its reply box would be */
body.pt-site .pt-chat-foot { background: var(--pt-white); border-top: 1px solid var(--pt-line); min-height: 65px; display: flex; align-items: center; justify-content: center; gap: 7px; font: 600 12.5px/1 var(--pt-display); color: var(--pt-muted); }
body.pt-site .pt-chat-foot svg { color: var(--pt-blue); }
/* chips: seven quick languages + the custom selector */
body.pt-site .pt-duo .pt-picker { gap: 8px; }
body.pt-site .pt-duo .pt-chips { gap: 6px; max-width: calc(var(--pt-phone-w) + 24px); }
body.pt-site .pt-duo .pt-chip { min-height: 38px; padding: 0 12px; font-size: 13.5px; }
body.pt-site .pt-chip-more { display: inline-flex; align-items: center; gap: 6px; border-style: dashed; }
body.pt-site .pt-chip-more[aria-pressed="true"] { border-style: solid; }
body.pt-site .pt-duo .pt-try-note { max-width: var(--pt-phone-w); }
/* the "Type something!" sticker sits on the left phone's outer edge */
body.pt-site .pt-duo .pt-try-tag { --ax: 123px; right: auto; left: -50px; bottom: 115px; min-width: 170px; transform: rotate(-4deg); transform-origin: calc(var(--ax) + 37px) calc(100% + 49px); animation-name: pt-tag-bob-l; }
body.pt-site .pt-duo .pt-try-tag .arrow { left: var(--ax); right: auto; }   /* tip at (37, 46), just above the message box */
body.pt-site .pt-duo.pt-tried .pt-try-tag { transform: rotate(-4deg) scale(.85); }
@keyframes pt-tag-bob-l { 0%, 100% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-5px); } }

/* the custom selector */
html.pt-lsel-open { overflow: hidden; }
body.pt-site .pt-lsel { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(11, 37, 69, .55); }
body.pt-site .pt-lsel[hidden] { display: none; }
body.pt-site .pt-lsel-card {
	display: flex;
	flex-direction: column;
	width: min(580px, 100%);
	max-height: min(720px, calc(100vh - 32px));
	max-height: min(720px, calc(100dvh - 32px));
	overflow: hidden;
	background: var(--pt-white);
	border-top: 4px solid var(--pt-blue);
	border-radius: 22px;
	box-shadow: 0 30px 80px rgba(11, 37, 69, .35);
}
body.pt-site .pt-lsel-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 16px 10px 22px; }
body.pt-site .pt-lsel-head .t { font: 800 20px/1.2 var(--pt-display); color: var(--pt-navy); }
body.pt-site .pt-lsel-x { flex: 0 0 auto; width: 42px; height: 42px; border: 0; border-radius: 50%; background: var(--pt-paper); color: var(--pt-navy); display: flex; align-items: center; justify-content: center; cursor: pointer; }
body.pt-site .pt-lsel-x:hover { background: #e3ebf5; }
body.pt-site input.pt-lsel-q {
	flex: 0 0 auto;
	margin: 0 18px 10px;
	height: 46px;
	padding: 0 18px;
	border: 1.5px solid var(--pt-line);
	border-radius: 999px;
	background: var(--pt-paper);
	color: var(--pt-ink);
	font: 500 16px var(--pt-display);
	outline: none;
}
body.pt-site input.pt-lsel-q:focus { border-color: var(--pt-blue); box-shadow: 0 0 0 3px rgba(21, 101, 216, .16); }
body.pt-site .pt-lsel-list { list-style: none; margin: 0; padding: 4px 14px 18px !important; overflow-y: auto; overscroll-behavior: contain; display: grid; grid-template-columns: 1fr 1fr; align-content: start; gap: 6px; }
body.pt-site .pt-lsel-list li { margin: 0; padding: 0; list-style: none; }
body.pt-site .pt-lsel-list li[hidden] { display: none; }
body.pt-site .pt-lsel-opt {
	display: flex;
	flex-direction: column;
	gap: 2px;
	width: 100%;
	min-height: 52px;
	justify-content: center;
	padding: 8px 14px;
	border: 1.5px solid var(--pt-line);
	border-radius: 12px;
	background: var(--pt-white);
	text-align: left;
	cursor: pointer;
	transition: border-color .12s ease, background-color .12s ease;
}
body.pt-site .pt-lsel-opt b { font: 700 15px/1.25 var(--pt-display); color: var(--pt-navy); }
body.pt-site .pt-lsel-opt span { font-family: "Poppins", "Noto Sans SC", "Noto Sans JP", "Noto Sans KR", "Noto Sans Arabic", "Noto Sans Hebrew", "Noto Sans Devanagari", "Noto Sans Thai", system-ui, sans-serif; font-size: 13.5px; line-height: 1.3; color: var(--pt-muted); text-align: inherit; unicode-bidi: isolate; }
body.pt-site .pt-lsel-opt:hover { border-color: var(--pt-blue); background: #f5f9ff; }
body.pt-site .pt-lsel-opt:focus-visible { outline: 3px solid var(--pt-blue); outline-offset: 1px; }
body.pt-site .pt-lsel-opt[aria-pressed="true"] { background: var(--pt-navy); border-color: var(--pt-navy); }
body.pt-site .pt-lsel-opt[aria-pressed="true"] :is(b, span) { color: var(--pt-white); }
body.pt-site .et-l .pt-lsel-empty, body.pt-site .pt-lsel-empty { margin: 0 22px 20px !important; font-size: 15px; color: var(--pt-muted); }

@media (max-width: 1180px) {
	body.pt-site .et-l .pt-hero .et_pb_row { flex-wrap: wrap; }
	body.pt-site .et-l .pt-hero .et_pb_row > .et_pb_column { width: 100% !important; max-width: 100%; flex: 0 0 100% !important; }
	body.pt-site .et-l .pt-hero .et_pb_row > .et_pb_column.pt-hero-copy { max-width: 760px; }
	body.pt-site .et-l .pt-hero .et_pb_column + .et_pb_column { margin-top: 48px !important; }
}
@media (max-width: 980px) {
	body.pt-site .pt-duo .pt-screen { height: 500px; }
	body.pt-site .pt-duo .pt-try-tag { --ax: 83px; left: -10px; bottom: 115px; }
}
@media (max-width: 700px) {
	body.pt-site .pt-duo { --pt-phone-w: 340px; }
	body.pt-site .pt-duo-row { flex-direction: column; align-items: center; }
	body.pt-site .pt-duo-side { flex: 0 0 auto; width: min(var(--pt-phone-w), 100%); }
	body.pt-site .pt-duo-read { margin-top: 0; }
	body.pt-site .pt-duo-link { flex: 0 0 auto; margin: -2px 0 10px; }
	body.pt-site .pt-duo-link svg { transform: rotate(90deg); }
	body.pt-site .pt-duo-write .pt-screen { height: 440px; }
	body.pt-site .pt-duo-read .pt-screen { height: 460px; }
	body.pt-site .pt-duo .pt-try-tag { --ax: 79px; left: -6px; bottom: 115px; }
	body.pt-site .pt-lsel { align-items: flex-end; padding: 0; }
	body.pt-site .pt-lsel-card { width: 100%; max-height: 88vh; max-height: 88dvh; border-radius: 22px 22px 0 0; }
}
@media (max-width: 380px) { body.pt-site .pt-lsel-list { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) {
	body.pt-site .pt-duo.pt-busy .pt-duo-link span, body.pt-site .pt-duo .pt-swap-in .pt-bubble .txt { animation: none; }
}

/* ---------- homepage phones: language buttons on both phones, Dan's stickers, copy / listen, voice bar, microphone
   The right phone's header button matches the left one (Dan). Speaker, microphone and the voice bar only appear while
   the site's service has a Speech key (ptt.js shows .pt-foot-ctl and #ptMic); copy always works. */
/* Each arrow ends a few px under its language button (left: 79-81 px into the phone, bottom: 89-91 px down) and is placed
   from the sticker's LEFT edge, so a longer or shorter translation never moves the tip (min-width keeps the arrow's
   start on the sticker). --ax is the arrow's left; each sticker tilts around its own arrow tip (transform-origin), so
   the tilt and the bob never move the tip. Measured at 1440 / 1024 / 820 / 701 / 390 / 360 px. */
body.pt-site .pt-tag {
	position: absolute;
	z-index: 4;
	top: 126px;
	width: max-content;
	max-width: 170px;
	padding: 7px 12px 8px;
	border-radius: 12px;
	background: var(--pt-coral);
	color: var(--pt-navy);
	box-shadow: 0 12px 24px rgba(255, 107, 74, .33);
	pointer-events: none;
	transition: opacity .35s ease, transform .35s ease;
}
body.pt-site .pt-tag b { display: block; font: 800 14px/1.2 var(--pt-display); }
body.pt-site .pt-tag .arrow { position: absolute; bottom: 100%; color: var(--pt-coral); }
body.pt-site .pt-tag-wl { --ax: 125px; left: -42px; min-width: 150px; transform: rotate(-3deg); transform-origin: calc(var(--ax) + 24px) -31px; animation: pt-tag-bob-wl 3.2s ease-in-out infinite; }
body.pt-site .pt-tag-wl .arrow { left: var(--ax); }   /* hook straight up to the button; tip at (24, 5) of 34x36 */
body.pt-site .pt-tag-rl { --ax: -78px; left: 181px; transform: rotate(3deg); transform-origin: calc(var(--ax) + 12px) -33px; animation: pt-tag-bob-rl 3.2s ease-in-out infinite; }
body.pt-site .pt-tag-rl .arrow { left: var(--ax); transform: scaleX(-1); }   /* swoosh up and left; tip at (12, 7) of 90x40, mirrored */
/* the bob moves away from the button (down), so a tip never covers it */
@keyframes pt-tag-bob-wl { 0%, 100% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(3px); } }
@keyframes pt-tag-bob-rl { 0%, 100% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(3deg) translateY(3px); } }
body.pt-site .pt-duo.pt-wl-seen .pt-tag-wl, body.pt-site .pt-duo.pt-rl-seen .pt-tag-rl { opacity: 0; animation: none; }

/* copy / listen under every bubble */
body.pt-site .pt-acts { display: flex; justify-content: flex-end; gap: 2px; margin: 2px -8px -7px 0; }
body.pt-site .pt-act {
	position: relative;
	width: 28px;
	height: 28px;
	border: 0;
	padding: 0;
	border-radius: 8px;
	background: transparent;
	color: var(--pt-muted);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: background-color .12s ease, color .12s ease;
}
body.pt-site .pt-act:hover { background: rgba(21, 101, 216, .09); color: var(--pt-blue); }
body.pt-site .pt-act:focus-visible { outline: 2px solid var(--pt-blue); outline-offset: 1px; }
body.pt-site .pt-act .i-b { display: none; }
body.pt-site .pt-act:is(.is-on, .is-done) { color: var(--pt-blue); }
body.pt-site .pt-act:is(.is-on, .is-done) .i-a { display: none; }
body.pt-site .pt-act:is(.is-on, .is-done) .i-b { display: block; }
body.pt-site .pt-act.is-done::before {
	content: attr(aria-label);
	position: absolute;
	bottom: calc(100% + 4px);
	right: 0;
	padding: 4px 8px;
	border-radius: 7px;
	background: var(--pt-navy);
	color: var(--pt-white);
	font: 700 11px/1.2 var(--pt-display);
	white-space: nowrap;
	pointer-events: none;
}
body.pt-site :is(.pt-act, .pt-play).is-wait::after {
	content: "";
	position: absolute;
	inset: 2px;
	border-radius: 50%;
	border: 2px solid currentColor;
	border-right-color: transparent;
	animation: pt-spin .8s linear infinite;
}
@keyframes pt-spin { to { transform: rotate(360deg); } }

/* the microphone, next to Send */
body.pt-site .pt-chat-input .pt-mic {
	position: relative;
	width: 40px;
	height: 40px;
	flex: 0 0 auto;
	border: 0;
	padding: 0;
	border-radius: 50%;
	background: var(--pt-navy);
	color: var(--pt-white);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: transform .15s ease, background-color .15s ease, box-shadow .1s linear;
}
body.pt-site .pt-chat-input .pt-mic[hidden] { display: none; }
body.pt-site .pt-chat-input .pt-mic:hover { background: var(--pt-blue); transform: scale(1.06); }
body.pt-site .pt-chat-input .pt-mic:focus-visible { outline: 3px solid var(--pt-blue); outline-offset: 2px; }
body.pt-site .pt-duo.pt-rec .pt-chat-input .pt-mic { background: #e5383b; box-shadow: 0 0 0 calc(3px + var(--lvl, 0) * 9px) rgba(229, 56, 59, .22); transform: none; }
body.pt-site .pt-duo.pt-rec .pt-chat-input .pt-mic::after { content: ""; position: absolute; inset: -5px; border-radius: 50%; border: 2px solid rgba(229, 56, 59, .55); animation: pt-mic-ring 1.2s ease-out infinite; }
@keyframes pt-mic-ring { from { transform: scale(.92); opacity: 1; } to { transform: scale(1.35); opacity: 0; } }
body.pt-site .pt-duo form.has-mic input.field { padding: 0 11px; }
body.pt-site .pt-duo form.has-mic input.field::placeholder { font-size: 14px; }

/* the reading phone's bar: play, auto-play, voice */
body.pt-site .pt-chat-foot .pt-foot-by { display: inline-flex; align-items: center; gap: 7px; }
body.pt-site .pt-chat-foot :is(.pt-foot-by, .pt-foot-ctl)[hidden] { display: none; }
body.pt-site .pt-foot-ctl { display: flex; align-items: center; gap: 6px; width: 100%; min-width: 0; padding: 0 8px; }
body.pt-site .pt-play {
	position: relative;
	width: 40px;
	height: 40px;
	flex: 0 0 auto;
	border: 0;
	padding: 0;
	border-radius: 50%;
	background: var(--pt-coral);
	color: var(--pt-navy);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: transform .15s ease, background-color .15s ease;
}
body.pt-site .pt-play:hover { background: var(--pt-coral-hi); transform: scale(1.06); }
body.pt-site .pt-play:focus-visible { outline: 3px solid var(--pt-blue); outline-offset: 2px; }
body.pt-site .pt-play .i-stop, body.pt-site .pt-play.is-on .i-play { display: none; }
body.pt-site .pt-play.is-on .i-stop { display: block; }
body.pt-site .pt-auto {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	flex: 0 1 auto;
	min-width: 0;
	min-height: 32px;
	padding: 0 9px 0 5px;
	border: 1.5px solid var(--pt-line);
	border-radius: 999px;
	background: var(--pt-white);
	color: var(--pt-navy);
	font: 700 11.5px/1 var(--pt-display);
	cursor: pointer;
}
body.pt-site .pt-auto > span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.pt-site .pt-auto:hover { border-color: var(--pt-blue); }
body.pt-site .pt-auto:focus-visible { outline: 3px solid var(--pt-blue); outline-offset: 2px; }
body.pt-site .pt-auto .sw { position: relative; flex: 0 0 auto; width: 28px; height: 16px; border-radius: 999px; background: #c7d2df; transition: background-color .15s ease; }
body.pt-site .pt-auto .sw::after { content: ""; position: absolute; top: 2px; left: 2px; width: 12px; height: 12px; border-radius: 50%; background: var(--pt-white); box-shadow: 0 1px 2px rgba(11, 37, 69, .25); transition: transform .15s ease; }
body.pt-site .pt-auto[aria-pressed="true"] .sw { background: var(--pt-blue); }
body.pt-site .pt-auto[aria-pressed="true"] .sw::after { transform: translateX(12px); }
body.pt-site .pt-foot-ctl .pt-voice { margin-inline-start: auto; flex: 0 1 auto; min-width: 0; padding: 0 10px 0 9px; }
body.pt-site .pt-foot-ctl .pt-voice .chev { display: none; }

/* selector: voices, the language it's for, languages that can't be read yet */
body.pt-site .pt-lsel-sub { margin: -4px 22px 10px; font-size: 14px; line-height: 1.35; color: var(--pt-muted); }
body.pt-site .pt-lsel-sub:not(:has(> span:not([hidden]))) { display: none; }
body.pt-site .pt-lsel-lang { font-family: var(--pt-display); font-weight: 700; color: var(--pt-navy); }
body.pt-site .pt-lsel-opt b i {
	display: inline-block;
	margin-inline-start: 7px;
	padding: 2px 6px;
	border-radius: 999px;
	background: #fff1ec;
	color: #b4380f;
	font: 700 9.5px/1.3 var(--pt-display);
	font-style: normal;
	letter-spacing: .05em;
	text-transform: uppercase;
	vertical-align: 2px;
}
body.pt-site .pt-lsel-opt[aria-pressed="true"] b i { background: rgba(255, 255, 255, .18); color: var(--pt-white); }
body.pt-site .pt-lsel-opt[aria-disabled="true"], body.pt-site .pt-lsel-opt[aria-disabled="true"]:hover { cursor: not-allowed; border-color: var(--pt-line); background: var(--pt-paper); }
body.pt-site .pt-lsel-opt[aria-disabled="true"] b { color: var(--pt-muted); }

@media (max-width: 980px) { /* stickers stay inside the screen: less overhang, the right one narrower */
	body.pt-site .pt-tag-wl { --ax: 93px; left: -10px; }
	body.pt-site .pt-tag-rl { --ax: -62px; left: 165px; max-width: 150px; }
}
@media (max-width: 700px) {
	body.pt-site .pt-tag-wl { --ax: 89px; left: -6px; }
}
@media (prefers-reduced-motion: reduce) {
	body.pt-site .pt-tag, body.pt-site .pt-duo.pt-rec .pt-chat-input .pt-mic::after { animation: none; }
}

/* ---------- homepage phones: auto-play reads the chat top to bottom, so the threads scroll (hidden scrollbar) and the
   message being read gets a coral outline; the voice picker's people row sets one voice per person */
body.pt-site .pt-duo .pt-thread, body.pt-site .pt-duo .pt-thread.has-you { justify-content: flex-start; overflow-y: auto; scrollbar-width: none; }
body.pt-site .pt-duo .pt-thread::-webkit-scrollbar { display: none; }
body.pt-site .pt-duo .pt-thread > :first-child { margin-top: auto; } /* still sits at the bottom while it fits */
body.pt-site .pt-duo .pt-msg.is-speaking .pt-bubble { box-shadow: 0 0 0 2px var(--pt-coral), 0 8px 18px rgba(255, 107, 74, .2); transition: box-shadow .2s ease; }
body.pt-site .pt-lsel-who { display: flex; flex-wrap: wrap; gap: 6px; margin: -2px 18px 12px; }
body.pt-site .pt-lsel-who[hidden] { display: none; }
body.pt-site .pt-lsel-person {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	min-height: 36px;
	padding: 0 12px 0 4px;
	border: 1.5px solid var(--pt-line);
	border-radius: 999px;
	background: var(--pt-white);
	color: var(--pt-navy);
	font: 700 13px/1 var(--pt-display);
	cursor: pointer;
}
body.pt-site .pt-lsel-person:hover { border-color: var(--pt-blue); }
body.pt-site .pt-lsel-person:focus-visible { outline: 3px solid var(--pt-blue); outline-offset: 2px; }
body.pt-site .pt-lsel-person[aria-pressed="true"] { background: var(--pt-navy); border-color: var(--pt-navy); color: var(--pt-white); }
body.pt-site .pt-lsel-person .pt-avatar { width: 26px; height: 26px; flex: 0 0 26px; font-size: 12px; }

/* ---------- homepage phones: two people on two devices (Dan). Each phone is labelled with its owner and city, Phone 2 is a
   different model (light frame, smaller corners, buttons on the other side), and the language buttons carry a label */
body.pt-site .pt-duo-cap { display: flex; flex-direction: column; align-items: center; gap: 4px; }
body.pt-site .pt-duo-dev { display: inline-flex; align-items: center; flex-wrap: wrap; justify-content: center; gap: 4px 7px; font: 700 15px/1.25 var(--pt-display); color: var(--pt-navy); }
body.pt-site .pt-duo-dev .n { padding: 3px 9px; border-radius: 999px; background: var(--pt-navy); color: var(--pt-white); font: 800 10.5px/1.3 var(--pt-display); letter-spacing: .1em; text-transform: uppercase; }
body.pt-site .pt-duo-read .pt-duo-dev .n { background: var(--pt-blue); }
body.pt-site .pt-duo-dev .who { font-weight: 800; }
body.pt-site .pt-duo-dev .at { font-weight: 600; color: var(--pt-muted); }
body.pt-site .pt-duo-cap .r { font-size: 13.5px; }
body.pt-site .pt-duo-cap .r b { font-size: 14px; }
/* the language buttons at the top: a small label over the language */
body.pt-site .pt-chat-top .pt-wl { flex-direction: column; align-items: flex-start; gap: 1px; min-height: 0; padding: 4px 11px 5px; border-radius: 12px; }
body.pt-site .pt-chat-top .pt-wl .k { font: 700 9.5px/1.2 var(--pt-display); letter-spacing: .08em; text-transform: uppercase; color: var(--pt-muted); }
body.pt-site .pt-chat-top .pt-wl .row { display: inline-flex; align-items: center; gap: 5px; max-width: 100%; min-width: 0; font: 700 12.5px/1.2 var(--pt-display); color: var(--pt-blue); }
body.pt-site .pt-chat-top .pt-wl .row svg { flex: 0 0 auto; }
/* with auto-play on, a tap on a message in Phone 2 reads from there */
body.pt-site .pt-duo.pt-auto-on .pt-duo-read .pt-msg .pt-bubble { cursor: pointer; }

/* ---------- device frames (build/devices.py): one chat screen, four looks, picked per device (Dan) ------------------
   [data-dev] on the device column: android (graphite, punch-hole camera), iphone (titanium, Dynamic-Island-style notch),
   pc (Windows laptop: window buttons right) and mac (Mac laptop: traffic lights left, silver deck). Phones show a status
   bar with the city's local time; laptops a browser-window bar. The chat inside never changes. */
body.pt-site .pt-devpick { display: inline-flex; flex-wrap: wrap; justify-content: center; gap: 2px; padding: 3px; border: 1px solid var(--pt-line); border-radius: 999px; background: var(--pt-white); }
body.pt-site .pt-devpick button { display: inline-flex; align-items: center; gap: 5px; min-height: 30px; padding: 0 10px; border: 0; border-radius: 999px; background: transparent; color: var(--pt-muted); font: 700 12px/1 var(--pt-display); cursor: pointer; transition: background-color .15s ease, color .15s ease; }
body.pt-site .pt-devpick button:hover { color: var(--pt-navy); background: #eef3f9; }
body.pt-site .pt-devpick button[aria-pressed="true"] { background: var(--pt-navy); color: var(--pt-white); }
body.pt-site .pt-devpick button:focus-visible { outline: 3px solid var(--pt-blue); outline-offset: 2px; }
body.pt-site .pt-duo-dev time.pt-clock { font-variant-numeric: tabular-nums; }
body.pt-site .pt-duo-dev time.pt-clock::before { content: "\00b7"; margin-right: 6px; }

body.pt-site .pt-devside .pt-sbar, body.pt-site .pt-devside .pt-wbar { display: none; }
body.pt-site .pt-devside .pt-chat-top { padding-top: 10px; }
/* phones */
body.pt-site .pt-devside:is([data-dev="android"], [data-dev="iphone"]) .pt-sbar { position: relative; display: flex; align-items: center; justify-content: space-between; flex: 0 0 auto; height: 28px; padding: 0 22px; background: var(--pt-white); color: var(--pt-navy); font: 700 12.5px/1 var(--pt-display); }
body.pt-site .pt-devside .pt-sbar::after { content: ""; position: absolute; left: 50%; background: #0b0f16; }
body.pt-site .pt-devside[data-dev="android"] .pt-sbar::after { top: 9px; width: 10px; height: 10px; margin-left: -5px; border-radius: 50%; }
body.pt-site .pt-devside[data-dev="iphone"] .pt-sbar { height: 36px; padding: 0 28px; }
body.pt-site .pt-devside[data-dev="iphone"] .pt-sbar::after { top: 8px; width: 84px; height: 22px; margin-left: -42px; border-radius: 999px; }
body.pt-site .pt-devside[data-dev="android"] .pt-phone { border-radius: 34px; padding: 9px; background: #1d222b; box-shadow: 0 40px 80px rgba(11, 37, 69, .28), 0 0 0 1px #0f1218; }
body.pt-site .pt-devside[data-dev="android"] .pt-screen { border-radius: 26px; }
body.pt-site .pt-devside[data-dev="iphone"] .pt-phone { border-radius: 52px; padding: 11px; background: linear-gradient(160deg, #eef0f3 0%, #b9c0c9 100%); box-shadow: 0 40px 80px rgba(11, 37, 69, .24), 0 0 0 1px #9aa3ae, inset 0 0 0 2px var(--pt-white); }
body.pt-site .pt-devside[data-dev="iphone"] .pt-screen { border-radius: 42px; box-shadow: 0 0 0 4px #0b0f16; }
/* side buttons: power on the right (Android), volume on the left (iPhone) */
body.pt-site .pt-devside:is([data-dev="android"], [data-dev="iphone"]) .pt-phone::after { content: ""; position: absolute; top: 132px; width: 4px; }
body.pt-site .pt-devside[data-dev="android"] .pt-phone::after { right: -3px; height: 56px; border-radius: 0 3px 3px 0; background: #0e1116; }
body.pt-site .pt-devside[data-dev="iphone"] .pt-phone::after { left: -3px; top: 112px; height: 34px; border-radius: 3px 0 0 3px; background: #a8b0ba; box-shadow: 0 46px 0 #a8b0ba; }
/* laptops */
body.pt-site .pt-devside:is([data-dev="pc"], [data-dev="mac"]) .pt-phone { width: var(--pt-lap-w, 600px); max-width: 100%; margin-bottom: 16px; border-radius: 16px 16px 6px 6px; padding: 10px 10px 12px; box-shadow: 0 34px 70px rgba(11, 37, 69, .26), 0 0 0 1px #0f1218; }
body.pt-site .pt-devside[data-dev="pc"] .pt-phone { background: #14171d; }
body.pt-site .pt-devside[data-dev="mac"] .pt-phone { background: #1b1e24; box-shadow: 0 34px 70px rgba(11, 37, 69, .22), 0 0 0 1px #9aa3ae, 0 0 0 4px #d5dae1; }
body.pt-site .pt-devside:is([data-dev="pc"], [data-dev="mac"]) .pt-screen { height: var(--pt-lap-h, 390px); border-radius: 4px; }
body.pt-site .pt-devside:is([data-dev="pc"], [data-dev="mac"]) .pt-phone::after { content: ""; position: absolute; top: 100%; left: -7%; right: -7%; height: 16px; border-radius: 2px 2px 20px 20px / 2px 2px 14px 14px; }
body.pt-site .pt-devside[data-dev="pc"] .pt-phone::after { background: linear-gradient(#2f343c, #181b21); }
body.pt-site .pt-devside[data-dev="mac"] .pt-phone::after { margin-top: 4px; background: linear-gradient(#eceff3, #b6bdc6); }
body.pt-site .pt-devside:is([data-dev="pc"], [data-dev="mac"]) .pt-phone::before { content: ""; position: absolute; z-index: 1; top: calc(100% + 1px); left: 50%; width: 96px; height: 5px; margin-left: -48px; border-radius: 0 0 8px 8px; background: rgba(11, 15, 22, .22); }
body.pt-site .pt-devside[data-dev="mac"] .pt-phone::before { top: calc(100% + 5px); }
body.pt-site .pt-devside:is([data-dev="pc"], [data-dev="mac"]) .pt-wbar { display: flex; align-items: flex-end; gap: 10px; flex: 0 0 auto; height: 32px; padding: 0 10px; background: #e9edf2; border-bottom: 1px solid var(--pt-line); font: 600 11.5px/1 var(--pt-display); color: var(--pt-navy); }
body.pt-site .pt-wbar .tab { overflow: hidden; max-width: 60%; padding: 8px 14px 7px; border-radius: 8px 8px 0 0; background: var(--pt-white); white-space: nowrap; text-overflow: ellipsis; }
body.pt-site .pt-wbar :is(.lights, .ctl) { display: none; align-self: center; gap: 7px; }
body.pt-site .pt-devside[data-dev="mac"] .pt-wbar .lights { display: inline-flex; }
body.pt-site .pt-wbar .lights i { width: 11px; height: 11px; border-radius: 50%; background: #ff5f57; }
body.pt-site .pt-wbar .lights i:nth-child(2) { background: #febc2e; }
body.pt-site .pt-wbar .lights i:nth-child(3) { background: #28c840; }
body.pt-site .pt-devside[data-dev="pc"] .pt-wbar .ctl { display: inline-flex; gap: 16px; margin-left: auto; padding-right: 4px; color: #4a5566; }
body.pt-site .pt-wbar .ctl i { width: 10px; height: 10px; }
body.pt-site .pt-wbar .ctl i:nth-child(1) { height: 6px; border-bottom: 1.5px solid currentColor; }
body.pt-site .pt-wbar .ctl i:nth-child(2) { border: 1.5px solid currentColor; border-radius: 1px; }
body.pt-site .pt-wbar .ctl i:nth-child(3) { background: linear-gradient(45deg, transparent 44%, currentColor 44%, currentColor 56%, transparent 56%), linear-gradient(-45deg, transparent 44%, currentColor 44%, currentColor 56%, transparent 56%); }
body.pt-site .pt-devside:is([data-dev="pc"], [data-dev="mac"]) .pt-bubble { max-width: min(72%, 440px); }

/* ---------- homepage hero: headline and buttons, then the two devices full width, then the copy (Dan) */
body.pt-site .et-l .pt-hero--devices .et_pb_row { flex-direction: column; align-items: stretch; }
body.pt-site .et-l .pt-hero--devices .et_pb_row + .et_pb_row { margin-top: 44px; }
body.pt-site .et-l .pt-hero-top { text-align: center; }
body.pt-site .et-l .pt-hero-top .pt-ctas, body.pt-site .et-l .pt-hero-after .pt-proof { justify-content: center; }
body.pt-site .et-l .pt-hero--devices h1.pt-h1 { font-size: clamp(40px, 5.4vw, 74px); }
body.pt-site .et-l .pt-hero--devices .pt-h1 .l2 { min-height: 1.05em; }
body.pt-site .et-l :is(.pt-hero-after, .pt-multi-after) { align-self: center; max-width: 780px; margin-left: 0 !important; margin-right: 0 !important; text-align: center; }
body.pt-site .et-l :is(.pt-hero-after, .pt-multi-after) .pt-lead p { text-align: center; }
body.pt-site .et-l .pt-hero-after > * + * { margin-top: 20px; }
body.pt-site .pt-duo { --pt-lap-w: 600px; }
body.pt-site .pt-duo-row { align-items: flex-start; }
body.pt-site .pt-duo-read { margin-top: 0; }
body.pt-site .pt-duo-side:is([data-dev="pc"], [data-dev="mac"]) { flex-basis: var(--pt-lap-w); }
body.pt-site .pt-duo-link { margin-top: 220px; }
body.pt-site .pt-anydev { margin-top: 30px; text-align: center; }
body.pt-site .et-l .pt-anydev .t { margin: 0 auto; max-width: 640px; padding: 0 !important; font: 500 16px/1.5 var(--pt-display); color: var(--pt-muted); }
body.pt-site .pt-anydev .t b { color: var(--pt-navy); font-weight: 800; }
body.pt-site .pt-anydev-more { display: inline-flex; margin-top: 10px; font: 700 15px/1.3 var(--pt-display); color: var(--pt-blue); text-decoration: none; }
body.pt-site .pt-anydev-more:hover { text-decoration: underline; }
@media (max-width: 1040px) { /* a laptop in the pair: one above the other */
	body.pt-site .pt-duo-row:has(> [data-dev="pc"], > [data-dev="mac"]) { flex-direction: column; align-items: center; }
	body.pt-site .pt-duo-row:has(> [data-dev="pc"], > [data-dev="mac"]) .pt-duo-side { flex: 0 0 auto; width: min(var(--pt-phone-w), 100%); }
	body.pt-site .pt-duo-row:has(> [data-dev="pc"], > [data-dev="mac"]) .pt-duo-side:is([data-dev="pc"], [data-dev="mac"]) { width: min(var(--pt-lap-w), 100%); }
	body.pt-site .pt-duo-row:has(> [data-dev="pc"], > [data-dev="mac"]) .pt-duo-link { margin: 6px 0 14px; }
	body.pt-site .pt-duo-row:has(> [data-dev="pc"], > [data-dev="mac"]) .pt-duo-link svg { transform: rotate(90deg); }
}
@media (max-width: 700px) { /* laptops a little narrower, so the keyboard deck stays on screen */
	body.pt-site .pt-devside:is([data-dev="pc"], [data-dev="mac"]) .pt-phone::after { left: -3%; right: -3%; }
	body.pt-site .pt-duo-row .pt-duo-side:is([data-dev="pc"], [data-dev="mac"]) { width: calc(100% - 20px); }
	body.pt-site .pt-devside:is([data-dev="pc"], [data-dev="mac"]) .pt-screen { height: 430px; }
	body.pt-site .et-l .pt-hero--devices .pt-h1 .l2 { min-height: 2.05em; }
}

/* ---------- Live Demo page: four devices, four cities, one chat (#ptMulti) */
body.pt-site .et-l .et_pb_section.pt-multi-band { padding: 8px 0 72px; background: var(--pt-white); }
body.pt-site .pt-multi { --pt-phone-w: 320px; --pt-lap-w: 560px; }
/* two by two: a phone and a laptop per row to start (Android + Mac, iPhone + PC) */
body.pt-site .pt-multi-grid { display: flex; flex-wrap: wrap; justify-content: center; align-items: flex-start; gap: 44px 40px; max-width: 960px; margin: 0 auto; }
body.pt-site .pt-mdev { display: flex; flex-direction: column; align-items: center; gap: 12px; flex: 0 1 var(--pt-phone-w); min-width: 0; }
body.pt-site .pt-mdev:is([data-dev="pc"], [data-dev="mac"]) { flex-basis: var(--pt-lap-w); }
body.pt-site .pt-mdev .pt-phone { width: 100%; }
body.pt-site .pt-mdev .pt-screen { height: 520px; }
body.pt-site .pt-mdev .pt-thread { justify-content: flex-start; overflow-y: auto; scrollbar-width: none; padding: 12px; gap: 10px; }
body.pt-site .pt-mdev .pt-thread::-webkit-scrollbar { display: none; }
body.pt-site .pt-mdev .pt-thread > :first-child { margin-top: auto; }
body.pt-site .pt-mdev .pt-bubble .txt { font-size: 15px; }
body.pt-site .pt-mdev .pt-msg.is-speaking .pt-bubble { box-shadow: 0 0 0 2px var(--pt-coral), 0 8px 18px rgba(255, 107, 74, .2); }
body.pt-site .pt-mdev .pt-chat-input { padding: 12px 10px; gap: 8px; }
body.pt-site .pt-mdev .pt-chat-input input.field { padding: 0 12px; }
body.pt-site .pt-mdev .pt-chat-input input.field::placeholder { font-size: 14px; }
body.pt-site .pt-mauto { flex: 0 0 auto; margin-left: auto; width: 38px; height: 38px; border: 1.5px solid var(--pt-line); border-radius: 50%; background: var(--pt-white); color: var(--pt-muted); display: flex; align-items: center; justify-content: center; cursor: pointer; }
body.pt-site .pt-mauto[hidden] { display: none; }
body.pt-site .pt-mauto:hover { border-color: var(--pt-blue); color: var(--pt-blue); }
body.pt-site .pt-mauto[aria-pressed="true"] { background: var(--pt-blue); border-color: var(--pt-blue); color: var(--pt-white); }
body.pt-site .pt-mauto:focus-visible { outline: 3px solid var(--pt-blue); outline-offset: 2px; }
body.pt-site .pt-multi .pt-multi-note { max-width: 640px; margin: 30px auto 0; text-align: center; }
body.pt-site .et-l .pt-multi-after .pt-ctas { justify-content: center; }
@media (max-width: 700px) {
	body.pt-site .pt-multi { --pt-phone-w: 340px; }
	body.pt-site .pt-mdev, body.pt-site .pt-mdev:is([data-dev="pc"], [data-dev="mac"]) { flex: 0 0 auto; width: min(var(--pt-phone-w), 100%); }
	body.pt-site .pt-mdev:is([data-dev="pc"], [data-dev="mac"]) { width: calc(100% - 20px); }
	body.pt-site .pt-mdev .pt-screen { height: 460px; }
	body.pt-site .pt-mdev:is([data-dev="pc"], [data-dev="mac"]) .pt-screen { height: 430px; }
}

/* ---------- demo bubbles, compact (Dan): Spoken mark, language and the read-aloud / copy buttons share the name line, the
   language buttons sit on one line under the device with no title, and the laptop is taller: more messages per screen */
body.pt-site :is(.pt-duo, .pt-multi) .pt-bubble .who { align-items: center; justify-content: flex-start; gap: 6px; min-width: 0; }
body.pt-site :is(.pt-duo, .pt-multi) .pt-bubble .who .nm { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
body.pt-site :is(.pt-duo, .pt-multi) .pt-bubble .who .from { margin-left: auto; white-space: nowrap; }
body.pt-site :is(.pt-duo, .pt-multi) .pt-bubble .who .pt-acts { display: inline-flex; flex: 0 0 auto; gap: 0; margin: -6px -8px -6px -3px; }
body.pt-site :is(.pt-duo, .pt-multi) .pt-bubble .who .pt-act { width: 26px; height: 26px; }
body.pt-site :is(.pt-duo, .pt-multi) .pt-bubble .who .pt-act svg { width: 14px; height: 14px; }
body.pt-site :is(.pt-duo, .pt-multi) .pt-bubble .who .pt-spoken { flex: 0 0 auto; width: 18px; height: 18px; margin: 0; padding: 0; justify-content: center; border-radius: 50%; letter-spacing: 0; cursor: help; }
body.pt-site :is(.pt-duo, .pt-multi) .pt-bubble .txt { margin-top: 1px; }
body.pt-site .pt-duo .pt-picker { gap: 0; }
body.pt-site .pt-duo .pt-chips { gap: 5px; max-width: min(var(--pt-lap-w), 100%); }
body.pt-site .pt-duo .pt-chip { min-height: 34px; padding: 0 10px; font-size: 13px; }
body.pt-site .pt-duo .pt-chip-more { gap: 5px; }
body.pt-site .pt-duo { --pt-lap-w: 640px; --pt-lap-h: 440px; }
body.pt-site .pt-multi { --pt-lap-h: 440px; }
/* on a laptop the chat title and the language button sit side by side, as a desktop app would have them */
body.pt-site .pt-devside:is([data-dev="pc"], [data-dev="mac"]) .pt-chat-top { padding-top: 8px; padding-bottom: 8px; }
body.pt-site .pt-devside:is([data-dev="pc"], [data-dev="mac"]) .pt-chat-top .dot { width: 34px; height: 34px; border-radius: 12px; font-size: 13px; }
body.pt-site .pt-devside:is([data-dev="pc"], [data-dev="mac"]) .pt-chat-top > div:not(.dot) { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 14px; min-width: 0; }
body.pt-site .pt-devside:is([data-dev="pc"], [data-dev="mac"]) .pt-chat-top small.pt-wl-row { margin-top: 0; }
body.pt-site .pt-duo { --pt-lap-h: 460px; }
