/* The Calendar Widget marketing site, built with Oxygen.
   Page content is edited in Oxygen; these classes give it the look. */

:root {
	--ob: #0B0C0E;
	--gr: #16181C;
	--gr2: #1C1F24;
	--st: #2A2E35;
	--si: #C4C9D1;
	--si-lo: #9AA1AB;
	--pl: #EEF0F3;
	--paper: #F6F7F9;
	--white: #FFFFFF;
	--ink: #111317;
	--ink-2: #2B3038;
	--muted: #5B6270;
	--line: #E1E4E9;
	--gold: #D4AF6A;
	--gold-hi: #E7C987;
	--gold-deep: #8C6A2C;
	--radius: 18px;
	--radius-sm: 12px;
	--wrap: 1440px;
	--gutter: clamp(16px, 4vw, 56px);
	--sec: clamp(64px, 9vw, 128px);
	--font-h: "Sora", "Inter", system-ui, sans-serif;
	--font-b: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
	--i-check: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M5%2012.5l4.2%204.2L19%207%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222.4%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E");
	--i-arrow: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M5%2012h13M13%206l6%206-6%206%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E");
	--i-plus: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M12%205v14M5%2012h14%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E");
	--i-clock: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%228.5%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%2F%3E%3Cpath%20d%3D%22M12%207.5V12l3%202%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E");
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 88px; }
body {
	margin: 0;
	background: var(--ob);
	color: var(--si);
	font: 400 1.0625rem/1.65 var(--font-b);
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}
img, svg { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; }
h1, h2, h3 { font-family: var(--font-h); color: var(--white); margin: 0; letter-spacing: -0.015em; line-height: 1.12; }
h1 { font-weight: 600; font-size: clamp(2.4rem, 4.6vw, 4.2rem); text-wrap: balance; }
h2 { font-weight: 600; font-size: clamp(1.8rem, 3.4vw, 3rem); text-wrap: balance; }
h3 { font-weight: 600; font-size: 1.1rem; line-height: 1.3; letter-spacing: -0.005em; }
p { margin: 0; text-wrap: pretty; }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; border-radius: 4px; }
main:focus { outline: none; }
.tcws-skip { position: absolute; left: 12px; top: -60px; z-index: 100; padding: 10px 16px; background: var(--gold); color: var(--ob); border-radius: 999px; font-weight: 600; text-decoration: none; }
.tcws-skip:focus { top: 12px; }

/* Oxygen structure: every section's inner wrap is the page width */
.ct-section > .ct-section-inner-wrap { width: 100%; max-width: var(--wrap); margin-inline: auto; padding: 0 var(--gutter); display: block; }
.tcws-main > .ct-section-inner-wrap { max-width: none; padding: 0; }
.tcws-main .ct-inner-content { width: 100%; }
/* Oxygen divs default to a flex column; these read as normal blocks */
.tcws-head, .tcws-copy, .tcws-hero__copy, .tcws-formcard, .tcws-contact-side, .tcws-demo__cal, .tcws-livecal,
.tcws-foot__brand, .tcws-foot__col, .tcws-foot__base, .tcws-plan__top, .tcws-pcard__body { display: block; }
.ct-text-block, .ct-headline { max-width: 100%; }

/* Icons */
.tcws-ico { width: 30px; height: 30px; flex: none; color: var(--gold); }
.tcws-icon { display: flex; }
.tcws-light .tcws-ico { color: var(--gold-deep); }
.tcws-badge { width: 28px; height: 28px; border-radius: 50%; background: rgba(212, 175, 106, .16); position: relative; flex: none; }
.tcws-badge::after { content: ""; position: absolute; inset: 5px; background: var(--gold); -webkit-mask: var(--i-check) center / contain no-repeat; mask: var(--i-check) center / contain no-repeat; }
.tcws-badge--soon::after { -webkit-mask-image: var(--i-clock); mask-image: var(--i-clock); }
.tcws-light .tcws-badge { background: rgba(140, 106, 44, .12); }
.tcws-light .tcws-badge::after { background: var(--gold-deep); }

/* Tick lists: plain bulleted text in Oxygen, the checks come from here */
.tcws-ticks ul, .tcws-note ul, .tcws-plan__list ul, .tcws-chips ul { list-style: none; margin: 0; padding: 0; }
.tcws-ticks li, .tcws-note li, .tcws-plan__list li, .tcws-chips li { position: relative; }
.tcws-ticks li::before, .tcws-note li::before, .tcws-plan__list li::before, .tcws-chips li::before {
	content: ""; flex: none; width: 1.1em; height: 1.1em; background: var(--gold);
	-webkit-mask: var(--i-check) center / contain no-repeat; mask: var(--i-check) center / contain no-repeat;
}
.tcws-ticks { margin-top: 28px; }
.tcws-ticks ul { display: grid; gap: 12px; }
.tcws-ticks li { display: flex; gap: 12px; align-items: flex-start; color: #D6DAE0; }
.tcws-ticks li::before { margin-top: 4px; }
.tcws-ticks--ink li { color: var(--ink-2); }
.tcws-ticks--ink li::before { background: var(--gold-deep); }
@media (min-width: 700px) { .tcws-ticks--cols ul { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px; } }

/* Buttons and links */
.tcws-actions { display: flex; flex-direction: row; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.tcws-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 50px; padding: 12px 26px;
	border: 1.5px solid transparent; border-radius: 999px;
	font: 600 1rem/1.2 var(--font-b); text-decoration: none; cursor: pointer; text-align: center;
	transition: background-color .18s, border-color .18s, color .18s, transform .18s, box-shadow .18s;
}
.tcws-btn:hover { transform: translateY(-1px); }
.tcws-btn--gold { background: linear-gradient(180deg, var(--gold-hi), var(--gold)); color: var(--ob); box-shadow: 0 8px 30px -10px rgba(212, 175, 106, .65); }
.tcws-btn--gold:hover { box-shadow: 0 12px 36px -10px rgba(212, 175, 106, .85); color: var(--ob); }
.tcws-btn--ghost { background: rgba(255, 255, 255, .04); color: var(--white); border-color: rgba(196, 201, 209, .45); }
.tcws-btn--ghost:hover { border-color: var(--si); background: rgba(255, 255, 255, .08); color: var(--white); }
.tcws-btn--ink { background: var(--ink); color: var(--white); }
.tcws-btn--ink:hover { background: #000; color: var(--white); }
.tcws-btn--ghost-ink { background: transparent; color: var(--ink); border-color: #B9BEC7; }
.tcws-btn--ghost-ink:hover { border-color: var(--ink); color: var(--ink); }
.tcws-btn--sm { min-height: 40px; padding: 8px 18px; font-size: .95rem; }
.tcws-btn--block { width: 100%; }
.tcws-link { color: var(--white); font-weight: 600; text-decoration: none; }
.tcws-link:hover { text-decoration: underline; text-underline-offset: 4px; color: var(--white); }
.tcws-link--arrow { display: inline-flex; align-items: center; gap: 8px; }
.tcws-link--arrow::after { content: ""; width: 1.1em; height: 1.1em; background: currentColor; -webkit-mask: var(--i-arrow) center / contain no-repeat; mask: var(--i-arrow) center / contain no-repeat; }
.tcws-light .tcws-link, .tcws-light .tcws-link:hover { color: var(--ink); }
.tcws-more { margin-top: 36px; }

/* Header */
.tcws-top {
	position: sticky; top: 0; z-index: 50;
	background: rgba(11, 12, 14, .82);
	backdrop-filter: saturate(140%) blur(14px);
	-webkit-backdrop-filter: saturate(140%) blur(14px);
	border-bottom: 1px solid rgba(196, 201, 209, .1);
}
.admin-bar .tcws-top { top: 32px; }
.tcws-top > .ct-section-inner-wrap { display: flex; flex-direction: row; align-items: center; gap: 24px; min-height: 76px; }
.tcws-logo { display: block; flex: none; }
.tcws-logo img { width: 235px; height: auto; }
.tcws-nav { margin-left: auto; display: flex; flex-direction: row; align-items: center; gap: 28px; }
.tcws-nav__links { display: flex; flex-direction: row; gap: 6px; }
.tcws-nav__links a { display: block; padding: 8px 14px; border-radius: 999px; color: var(--si); text-decoration: none; font-weight: 500; font-size: .98rem; }
.tcws-nav__links a:hover { color: var(--white); background: rgba(255, 255, 255, .06); }
.tcws-nav__links a[aria-current="page"] { color: var(--white); box-shadow: inset 0 -2px 0 var(--gold); border-radius: 0; }
.tcws-nav__actions { display: flex; flex-direction: row; align-items: center; gap: 18px; }
.tcws-menu-btn { display: none; margin-left: auto; width: 46px; height: 46px; border: 1px solid var(--st); border-radius: 12px; color: var(--white); cursor: pointer; place-items: center; }
.tcws-menu-btn svg { width: 24px; height: 24px; }

@media (max-width: 1080px) {
	.tcws-menu-btn { display: grid; }
	.tcws-nav {
		position: absolute; left: 0; right: 0; top: 100%;
		flex-direction: column; align-items: stretch; gap: 16px;
		padding: 16px var(--gutter) 24px;
		background: var(--ob); border-bottom: 1px solid var(--st);
		display: none;
	}
	.tcws-nav.is-open { display: flex; }
	.tcws-nav__links { flex-direction: column; gap: 2px; }
	.tcws-nav__links a { padding: 12px 4px; border-radius: 0; font-size: 1.1rem; }
	.tcws-nav__links a[aria-current="page"] { box-shadow: inset 3px 0 0 var(--gold); padding-left: 14px; }
	.tcws-nav__actions { justify-content: space-between; }
	.tcws-logo img { width: 202px; }
}
@media (max-width: 782px) { .admin-bar .tcws-top { top: 0; } }

/* Hero and page heroes: full-bleed background photo with a dark fade */
.tcws-hero, .tcws-pagehero, .tcws-cta { position: relative; overflow: hidden; isolation: isolate; }
.tcws-hero { padding: clamp(56px, 9vw, 120px) 0 clamp(72px, 10vw, 140px); }
.tcws-bg { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.tcws-hero::before, .tcws-pagehero::before {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background:
		linear-gradient(90deg, rgba(11, 12, 14, .94) 0%, rgba(11, 12, 14, .78) 42%, rgba(11, 12, 14, .25) 100%),
		linear-gradient(0deg, var(--ob) 0%, rgba(11, 12, 14, 0) 30%);
}
.tcws-pagehero--photo::before {
	background:
		linear-gradient(90deg, rgba(11, 12, 14, .95) 0%, rgba(11, 12, 14, .82) 45%, rgba(11, 12, 14, .45) 100%),
		linear-gradient(0deg, var(--ob) 0%, rgba(11, 12, 14, 0) 35%);
}
.tcws-hero__grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: clamp(32px, 5vw, 80px); align-items: center; }
.tcws-hero__lead { margin-top: 24px; font-size: clamp(1.1rem, 1.5vw, 1.3rem); color: #D6DAE0; }
.tcws-note { margin-top: 24px; color: var(--si-lo); font-size: .95rem; }
.tcws-note ul { display: flex; flex-wrap: wrap; gap: 6px 18px; }
.tcws-note li { display: flex; align-items: center; gap: 6px; }

/* Hero product mock (decorative) */
.tcws-hero__demo { position: relative; min-height: 540px; display: block; }
.tcws-mock {
	position: absolute;
	background: linear-gradient(180deg, rgba(28, 31, 36, .92), rgba(17, 19, 23, .94));
	border: 1px solid rgba(196, 201, 209, .18);
	border-radius: var(--radius);
	box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .8), inset 0 1px 0 rgba(255, 255, 255, .06);
	color: var(--si);
	backdrop-filter: blur(8px);
}
.tcws-mock--book { top: 64px; right: 0; width: min(400px, 92%); padding: 22px 24px 24px; display: block; animation: tcws-float 7s ease-in-out infinite; }
.tcws-mock__bar { display: block; height: 3px; margin-bottom: 18px; background: linear-gradient(90deg, var(--gold) 0 32%, transparent 32% 34%, var(--gold) 34% 66%, transparent 66% 68%, var(--st) 68% 100%); border-radius: 3px; }
.tcws-mock__title { font: 600 1.25rem/1.2 var(--font-h); color: var(--white); }
.tcws-mock__meta { margin-top: 4px; font-size: .85rem; color: var(--si-lo); }
.tcws-mock__day { margin: 18px 0 10px; font-weight: 600; color: var(--white); font-size: .95rem; }
.tcws-mock__slots { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.tcws-slot { display: grid; padding: 10px 12px; border: 1px solid var(--st); border-radius: 10px; font-weight: 600; color: var(--white); font-size: .95rem; line-height: 1.4; }
.tcws-slot small { font-weight: 400; color: var(--si-lo); font-size: .78rem; }
.tcws-slot.is-on { border-color: var(--gold); background: rgba(212, 175, 106, .14); box-shadow: 0 0 0 1px var(--gold); }
.tcws-slot.is-on small { color: var(--gold-hi); }
.tcws-slot.is-off { opacity: .45; text-decoration: line-through; }
.tcws-mock__btn { display: block; margin-top: 16px; padding: 12px; text-align: center; border-radius: 999px; background: linear-gradient(180deg, var(--gold-hi), var(--gold)); color: var(--ob); font-weight: 600; }
.tcws-mock--event { left: -8%; bottom: 0; display: flex; flex-direction: row; align-items: center; gap: 14px; padding: 14px 16px; width: min(340px, 80%); animation: tcws-float 8s ease-in-out -2s infinite; }
.tcws-mock--event b { display: block; color: var(--white); font-size: .95rem; }
.tcws-mock--event small { color: var(--si-lo); font-size: .8rem; }
.tcws-mock__date { display: grid; place-items: center; width: 52px; height: 56px; border-radius: 12px; background: var(--ob); border: 1px solid var(--st); font: 600 1.25rem/1 var(--font-h); color: var(--white); flex: none; }
.tcws-mock__date b { font-size: .62rem; letter-spacing: .1em; color: var(--gold); }
.tcws-mock__rsvp { margin-left: auto; padding: 6px 12px; border: 1px solid var(--gold); border-radius: 999px; color: var(--gold-hi); font-size: .8rem; font-weight: 600; }
.tcws-mock--toast { left: -6%; top: 0; z-index: 2; display: flex; flex-direction: row; align-items: center; gap: 12px; padding: 12px 16px; animation: tcws-float 9s ease-in-out -4s infinite; }
.tcws-mock--toast .tcws-badge { width: 28px; height: 28px; background: var(--gold); }
.tcws-mock--toast .tcws-badge::after { background: var(--ob); }
.tcws-mock--toast b { display: block; color: var(--white); font-size: .9rem; }
.tcws-mock--toast small { color: var(--si-lo); font-size: .8rem; }
@keyframes tcws-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }

/* Sub-page hero */
.tcws-pagehero { padding: clamp(64px, 9vw, 120px) 0 clamp(64px, 8vw, 104px); }
.tcws-pagehero--short { padding-bottom: clamp(48px, 6vw, 72px); }
.tcws-pagehero h1 { max-width: 22ch; }
.tcws-pagehero .tcws-hero__lead { max-width: 62ch; }

/* Sections */
.tcws-sec { padding-block: var(--sec); }
.tcws-dark { background: var(--ob); }
.tcws-dark + .tcws-dark { padding-top: 0; }
.tcws-light { background: var(--paper); color: var(--ink-2); }
.tcws-light h2, .tcws-light h3 { color: var(--ink); }
.tcws-head { margin-bottom: clamp(32px, 4vw, 56px); }
.tcws-split .tcws-head { margin-bottom: 0; }
.tcws-lead { margin-top: 18px; font-size: clamp(1.08rem, 1.3vw, 1.22rem); color: var(--si); }
.tcws-light .tcws-lead { color: var(--muted); }

/* Cards: icon and heading share a row; body spans below */
.tcws-cards { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.tcws-cards--3 { grid-template-columns: repeat(auto-fill, minmax(min(100%, 360px), 1fr)); }
.tcws-cards--1 { grid-template-columns: minmax(0, 1fr); }
.tcws-card {
	position: relative;
	display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 14px; row-gap: 10px; align-items: center; align-content: start;
	padding: 24px;
	border-radius: var(--radius);
	background: var(--gr);
	border: 1px solid var(--st);
	transition: border-color .2s, transform .2s;
}
.tcws-card:hover { border-color: rgba(212, 175, 106, .5); }
.tcws-card > p { grid-column: 1 / -1; color: var(--si-lo); font-size: .98rem; }
.tcws-light .tcws-card { background: var(--white); border-color: var(--line); box-shadow: 0 1px 2px rgba(17, 19, 23, .04); }
.tcws-light .tcws-card:hover { border-color: #C9B07A; }
.tcws-light .tcws-card > p { color: var(--muted); }
.tcws-card a { color: inherit; font-weight: 600; }

/* Photo cards ("Who uses it") */
.tcws-pcards { display: grid; gap: 20px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); }
.tcws-pcard { display: block; overflow: hidden; border-radius: var(--radius); background: var(--white); border: 1px solid var(--line); box-shadow: 0 1px 2px rgba(17, 19, 23, .04); transition: border-color .2s, box-shadow .2s; }
.tcws-pcard:hover { border-color: #C9B07A; box-shadow: 0 24px 50px -32px rgba(17, 19, 23, .45); }
.tcws-pcard__img { width: 100%; aspect-ratio: 3 / 2; height: auto; object-fit: cover; }
.tcws-pcard__body { padding: 22px 24px 26px; }
.tcws-pcard__body p { margin-top: 8px; color: var(--muted); font-size: .98rem; }

/* Photo tiles with captions (events page) */
.tcws-tiles { display: grid; gap: 16px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tcws-tile { position: relative; display: block; overflow: hidden; border-radius: var(--radius); background: var(--gr); }
.tcws-tile img { width: 100%; aspect-ratio: 4 / 3; height: auto; object-fit: cover; transition: transform .5s; }
.tcws-tile:hover img { transform: scale(1.03); }
.tcws-tile__cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 48px 20px 18px; color: var(--white); font: 600 1.05rem/1.3 var(--font-h); background: linear-gradient(transparent, rgba(11, 12, 14, .88)); }
@media (max-width: 900px) { .tcws-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .tcws-tiles { grid-template-columns: minmax(0, 1fr); } }

/* Steps */
.tcws-steps { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.tcws-step { position: absolute; top: 16px; right: 18px; font: 600 .8rem/1 var(--font-h); color: var(--gold); letter-spacing: .04em; }

/* Problem / solution */
.tcws-ps { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); }
.tcws-ps__item { padding: 28px; border-radius: var(--radius); background: var(--white); border: 1px solid var(--line); display: grid; gap: 14px; align-content: start; }
.tcws-ps__q { color: var(--muted); font-size: 1.02rem; }
.tcws-ps__a { padding-left: 16px; border-left: 3px solid var(--gold); color: var(--ink); font-size: 1.05rem; }
.tcws-ps b { color: var(--ink); font-weight: 600; }
.tcws-ps--dark .tcws-ps__item { background: var(--gr); border-color: var(--st); }
.tcws-ps--dark .tcws-ps__q { color: var(--si-lo); }
.tcws-ps--dark .tcws-ps__a, .tcws-ps--dark b { color: var(--white); }

/* Split layouts */
.tcws-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 80px); align-items: center; }
.tcws-split--form { align-items: start; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
.tcws-split--head { margin-bottom: clamp(32px, 4vw, 56px); }
.tcws-photo { width: 100%; height: auto; border-radius: var(--radius); aspect-ratio: 16 / 10; object-fit: cover; box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .9); }
.tcws-light .tcws-photo { box-shadow: 0 30px 60px -36px rgba(17, 19, 23, .5); }

/* Live demo */
.tcws-demo { background: radial-gradient(1200px 500px at 85% 20%, rgba(212, 175, 106, .12), transparent 60%), var(--ob); }
.tcws-demo__cal, .tcws-livecal { border-radius: var(--radius); overflow: hidden; background: var(--white); box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .9); min-height: 420px; }
.tcws-livecal { border: 1px solid var(--line); box-shadow: 0 20px 50px -30px rgba(17, 19, 23, .35); }

/* Chips */
.tcws-chips ul { display: flex; flex-wrap: wrap; gap: 10px; }
.tcws-chips li { display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; border-radius: 999px; background: var(--white); border: 1px solid var(--line); color: var(--ink); font-weight: 500; }
.tcws-chips li::before { background: var(--gold-deep); }

/* FAQ: each question is a <details> in a text block */
.tcws-faq { background: var(--ob); }
.tcws-faq__list { display: block; border-top: 1px solid var(--st); }
.tcws-faq details { border-bottom: 1px solid var(--st); }
.tcws-faq summary { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 22px 0; cursor: pointer; list-style: none; font: 600 clamp(1.05rem, 1.4vw, 1.2rem)/1.35 var(--font-h); color: var(--white); }
.tcws-faq summary::-webkit-details-marker { display: none; }
.tcws-faq summary::after { content: ""; flex: none; width: 22px; height: 22px; background: var(--gold); -webkit-mask: var(--i-plus) center / contain no-repeat; mask: var(--i-plus) center / contain no-repeat; transition: transform .2s; }
.tcws-faq details[open] summary::after { transform: rotate(45deg); }
.tcws-faq details p { padding: 0 0 24px; color: var(--si); max-width: 80ch; }

/* Closing CTA */
.tcws-cta { padding-block: clamp(80px, 11vw, 150px); }
.tcws-cta::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(11, 12, 14, .92), rgba(11, 12, 14, .55)); }
.tcws-cta p { margin-top: 18px; font-size: clamp(1.08rem, 1.4vw, 1.25rem); color: #D6DAE0; }

/* Pricing */
.tcws-billing { display: inline-flex; flex-direction: row; gap: 4px; margin-top: 32px; padding: 4px; border-radius: 999px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(196, 201, 209, .25); }
.tcws-billing [role="radio"] { display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 8px 20px; border-radius: 999px; color: var(--si); font: 600 .95rem/1 var(--font-b); cursor: pointer; user-select: none; }
.tcws-billing [aria-checked="true"] { background: var(--white); color: var(--ink); }
.tcws-billing small { padding: 3px 8px; border-radius: 999px; background: rgba(212, 175, 106, .2); color: var(--gold-hi); font-size: .75rem; }
.tcws-billing [aria-checked="true"] small { background: rgba(140, 106, 44, .14); color: var(--gold-deep); }
.tcws-pricing { padding-top: clamp(48px, 6vw, 80px); }
.tcws-plans { display: grid; gap: 20px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); align-items: start; }
.tcws-plan { display: grid; gap: 18px; padding: 32px; border-radius: 22px; background: var(--white); border: 1px solid var(--line); }
.tcws-plan__top { display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: 12px; }
.tcws-plan h2 { font-size: 1.5rem; color: var(--ink); }
.tcws-plan.is-featured { background: var(--ob); border-color: var(--gold); box-shadow: 0 30px 70px -30px rgba(140, 106, 44, .6); }
.tcws-plan.is-featured h2 { color: var(--white); }
.tcws-plan.is-featured .tcws-plan__lead, .tcws-plan.is-featured .tcws-plan__list li { color: var(--si); }
.tcws-plan.is-featured .tcws-plan__amt { color: var(--white); }
.tcws-plan.is-featured .tcws-plan__list li::before { background: var(--gold); }
.tcws-pill { padding: 5px 12px; border-radius: 999px; background: rgba(212, 175, 106, .18); color: var(--gold-hi); font-size: .8rem; font-weight: 600; }
.tcws-plan__price { display: flex; flex-direction: row; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.tcws-plan__amt { font: 600 3.2rem/1 var(--font-h); color: var(--ink); letter-spacing: -0.03em; }
.tcws-plan__per { color: var(--muted); font-size: .95rem; }
.tcws-plan.is-featured .tcws-plan__per { color: var(--si-lo); }
.tcws-plan__lead { color: var(--muted); }
.tcws-plan__list { margin-top: 4px; padding-top: 18px; border-top: 1px solid var(--line); }
.tcws-plan__list ul { display: grid; gap: 10px; }
.tcws-plan.is-featured .tcws-plan__list { border-color: var(--st); }
.tcws-plan__list li { display: flex; gap: 10px; color: var(--ink-2); font-size: .98rem; }
.tcws-plan__list li::before { margin-top: 4px; background: var(--gold-deep); }
.tcws-plan--note { background: transparent; border-style: dashed; border-color: #C5CAD2; }
.tcws-fine { margin-top: 24px; font-size: .9rem; color: var(--muted); }

/* Forms */
.tcws-formcard { padding: clamp(24px, 3vw, 40px); border-radius: 22px; background: var(--white); border: 1px solid var(--line); box-shadow: 0 20px 50px -30px rgba(17, 19, 23, .3); }
.tcws-form { display: grid; gap: 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tcws-field { display: grid; gap: 6px; align-content: start; }
.tcws-field--full, .tcws-form > button { grid-column: 1 / -1; }
.tcws-form > button { justify-self: start; }
.tcws-field label { font-weight: 600; color: var(--ink); font-size: .95rem; }
.tcws-opt { font-weight: 400; color: var(--muted); }
.tcws-field input, .tcws-field select, .tcws-field textarea {
	width: 100%; min-height: 48px; padding: 11px 14px;
	border: 1px solid #C5CAD2; border-radius: 12px; background: var(--white);
	font: 400 1rem/1.4 var(--font-b); color: var(--ink);
}
.tcws-field textarea { resize: vertical; }
.tcws-field input:focus, .tcws-field select:focus, .tcws-field textarea:focus { outline: none; border-color: var(--ink); box-shadow: 0 0 0 3px rgba(212, 175, 106, .45); }
.tcws-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.tcws-alert { margin-bottom: 20px; padding: 14px 16px; border-radius: 12px; background: #FDECEA; color: #7A1C16; border: 1px solid #F3C1BC; }
.tcws-alert--ok { background: #E8F5EE; color: #14532F; border-color: #B9E0C9; }

/* Long-form text (privacy, terms) */
.tcws-prose { max-width: 75ch; color: var(--ink-2); }
.tcws-prose h2 { font-size: 1.6rem; margin: 40px 0 12px; color: var(--ink); }
.tcws-prose p, .tcws-prose ul, .tcws-prose ol { margin: 0 0 16px; }
.tcws-prose a { color: var(--ink); }

/* Footer */
.tcws-foot { background: #070809; border-top: 1px solid var(--st); padding-top: clamp(56px, 7vw, 88px); }
.tcws-foot__grid { display: grid; gap: 40px; grid-template-columns: minmax(0, 2fr) repeat(3, minmax(0, 1fr)); }
.tcws-foot__brand img { width: 220px; }
.tcws-foot__brand p { margin-top: 16px; color: var(--si-lo); max-width: 38ch; }
.tcws-foot h2 { font: 600 .95rem/1.2 var(--font-h); color: var(--white); margin-bottom: 14px; letter-spacing: 0; }
.tcws-foot__links { display: grid; gap: 10px; }
.tcws-foot__links a, .tcws-foot__link { display: block; color: var(--si-lo); text-decoration: none; }
.tcws-foot__links a:hover, .tcws-foot__link:hover { color: var(--white); text-decoration: underline; text-underline-offset: 3px; }
.tcws-foot__links .ct-shortcode { display: grid; gap: 10px; }
.tcws-foot__links .ct-shortcode:empty { display: none; }
.tcws-foot__base { margin-top: 56px; padding-bottom: 24px; color: #7D8590; font-size: .9rem; }
.tcws-foot__row { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 32px; padding-top: 24px; border-top: 1px solid var(--st); }
.tcws-foot__base .tcw-credit { max-width: 520px; }

/* Responsive */
@media (max-width: 1080px) {
	.tcws-hero__grid { grid-template-columns: minmax(0, 1fr); }
	.tcws-hero__demo { min-height: 500px; max-width: 560px; margin-left: 8%; }
	.tcws-foot__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.tcws-foot__brand { grid-column: 1 / -1; }
}
@media (max-width: 860px) {
	.tcws-split, .tcws-split--form { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
	body { font-size: 1rem; }
	.tcws-hero__demo { min-height: 0; margin-left: 0; display: grid; gap: 12px; }
	.tcws-mock { position: relative; inset: auto; width: 100%; animation: none; }
	.tcws-mock--book { top: auto; right: auto; width: 100%; }
	.tcws-mock--event { left: auto; bottom: auto; width: 100%; }
	.tcws-mock--toast { display: none; }
	.tcws-actions .tcws-btn { flex: 1 1 100%; }
	.tcws-form { grid-template-columns: minmax(0, 1fr); }
	.tcws-foot__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tcws-card { padding: 20px; }
	.tcws-ps__item { padding: 22px; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* Photo spacing and phone overlays (0.2.3) */
.tcws-contact-side > .tcws-photo { margin-bottom: 16px; aspect-ratio: 3 / 2; }
@media (max-width: 700px) {
	.tcws-pagehero--photo::before { background: linear-gradient(180deg, rgba(11, 12, 14, .78) 0%, rgba(11, 12, 14, .88) 60%, var(--ob) 100%); }
}
