/* ===========================================================================
   Software product pages — single-software.php (/software/<slug>/).
   Enqueued from inc/cm-pages.php on is_singular( 'software' ).

   Built from the approved 2026-10 software comps
   (assets/images/Cosmick-Media.png, -1, -3, -4). Everything hangs off
   `main.cm-sw` plus a tone modifier that sets the product's palette:
     --sage  Unified Kennel Management    --mist   AI Chatbot
     --peach MediaHub                     --slate  Dripley CRM

   cosmick-2026.css and cm-interior.css are hard-coded <link>s printed after
   wp_head(), so every rule here is at least (0,2,0) and wins on specificity,
   never on order and never with !important.
   =========================================================================== */

.cm-sw {
	--sw-paper:  #fbf8f5;
	--sw-sand:   #f0e9e2;
	--sw-bar:    #efe7de;
	--sw-ink:    #262423;
	--sw-body:   #4a4542;
	--sw-muted:  #5e5853;
	--sw-rule:   #ddd2c8;
	--sw-coral:  #ff675b;
	--sw-brick:  #b8352b;
	--sw-brick-hover: #9c2c23;
	--sw-outline: #9a8573;

	/* Tone defaults (sand), overridden per product below. */
	--sw-plate:   #f3ece5;
	--sw-plate-2: #f8f4ef;
	--sw-edge:    #dccfc3;
	--sw-tone:    #7a4b36;
	--sw-tone-strong: #6b4330;

	/* cosmick-2026.css styles the homepage software CARD as `.cm-sw`
	   (flex column, overflow hidden); main.cm-sw takes those back. */
	display: block;
	overflow: visible;
	background: var(--sw-paper);
	color: var(--sw-body);
}

.cm-sw.cm-sw--sage  { --sw-plate: #e4e7da; --sw-plate-2: #eef0e7; --sw-edge: #c6cbb6; --sw-tone: #4b5d3a; --sw-tone-strong: #4f6142; }
.cm-sw.cm-sw--mist  { --sw-plate: #e2e8ea; --sw-plate-2: #edf1f2; --sw-edge: #c3cfd3; --sw-tone: #2f5563; --sw-tone-strong: #33586a; }
.cm-sw.cm-sw--peach { --sw-plate: #f3e3d9; --sw-plate-2: #f8ede6; --sw-edge: #e0c5b4; --sw-tone: #8b4a2f; --sw-tone-strong: #8b4a2f; }
.cm-sw.cm-sw--slate { --sw-plate: #e4e7f0; --sw-plate-2: #eef0f5; --sw-edge: #c5cbdb; --sw-tone: #35518a; --sw-tone-strong: #35518a; }

/* The legacy cosmick-modern.css paints `section::before` (z-index 1) over every
   section and clips it with overflow:hidden. Neither belongs on these pages. */
.cm-sw section::before { content: none; }
.cm-sw section { overflow: visible; }

.cm-sw .cm-sw-icon { flex: 0 0 auto; }

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

.cm-sw .cm-sw-eyebrow,
.cm-sw .cm-sw-kicker {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 18px;
	font-family: var(--cm26-font-display);
	font-size: 11px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--sw-ink);
}

.cm-sw .cm-sw-eyebrow::before,
.cm-sw .cm-sw-kicker::before {
	content: "";
	width: 7px;
	height: 7px;
	background: var(--sw-coral);
	flex: 0 0 auto;
}

.cm-sw .cm-sw-h2 {
	margin: 0;
	font-family: var(--cm26-font-display);
	font-size: clamp(30px, 2.9vw, 46px);
	font-weight: 700;
	line-height: 1.06;
	letter-spacing: -.035em;
	color: var(--sw-ink);
}

.cm-sw .cm-sw-h2--sm { font-size: clamp(28px, 2.6vw, 40px); margin-bottom: 32px; }

.cm-sw .cm-sw-h3 {
	margin: 0 0 14px;
	padding: 0;
	font-family: var(--cm26-font-display);
	font-size: clamp(22px, 1.8vw, 28px);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -.02em;
	color: var(--sw-ink);
}

.cm-sw .cm-sw-h4 {
	margin: 0 0 10px;
	padding: 0;
	font-family: var(--cm26-font-display);
	font-size: clamp(18px, 1.4vw, 22px);
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: -.015em;
	color: var(--sw-ink);
}

.cm-sw .cm-sw-mini {
	margin: 0 0 14px;
	font-family: var(--cm26-font-display);
	font-size: 11px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--sw-tone);
}

.cm-sw .cm-sw-copy {
	margin: 0;
	font-size: 15px;
	line-height: 1.75;
	color: var(--sw-muted);
}

.cm-sw .cm-sw-copy p { margin: 0 0 12px; }
.cm-sw .cm-sw-copy p:last-child { margin-bottom: 0; }

.cm-sw .cm-sw-note {
	margin: 14px 0 0;
	font-size: 11.5px;
	line-height: 1.5;
	color: var(--sw-muted);
}

.cm-sw .cm-sw-section { padding-block: clamp(56px, 7vw, 104px); }

/* ---------------------------------------------------------------------------
   Buttons
   ------------------------------------------------------------------------ */

.cm-sw .cm-sw-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	min-height: 50px;
	padding: 0 24px;
	border: 1px solid transparent;
	border-radius: 2px;
	background: none;
	font-family: var(--cm26-font-display);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}

.cm-sw .cm-sw-btn .cm-sw-icon { transition: transform .15s ease; }
.cm-sw .cm-sw-btn:hover .cm-sw-icon { transform: translateX(3px); }
.cm-sw .cm-sw-btn--line:hover .cm-sw-icon[class] { transform: none; }

.cm-sw .cm-sw-btn--solid {
	background: var(--sw-brick);
	border-color: var(--sw-brick);
	color: #fff;
	box-shadow: 0 1px 2px rgba(38, 36, 35, .12);
}

.cm-sw .cm-sw-btn--solid:hover { background: var(--sw-brick-hover); border-color: var(--sw-brick-hover); color: #fff; }

.cm-sw .cm-sw-btn--outline {
	border-color: var(--sw-outline);
	color: var(--sw-ink);
}

.cm-sw .cm-sw-btn--outline:hover { border-color: var(--sw-ink); background: rgba(255, 255, 255, .45); color: var(--sw-ink); }

.cm-sw .cm-sw-btn--line {
	min-height: 44px;
	padding: 0 2px;
	gap: 28px;
	border-width: 0 0 1px;
	border-color: var(--sw-ink);
	border-radius: 0;
	font-size: 13px;
	color: var(--sw-ink);
}

.cm-sw .cm-sw-btn--line:hover { color: var(--sw-brick); border-color: var(--sw-brick); }

.cm-sw .cm-sw-btn:focus-visible,
.cm-sw a:focus-visible,
.cm-sw summary:focus-visible,
.cm-sw [role="tab"]:focus-visible,
.cm-sw [role="tabpanel"]:focus-visible {
	outline: 2px solid var(--sw-brick);
	outline-offset: 3px;
}

/* ---------------------------------------------------------------------------
   Product bar
   ------------------------------------------------------------------------ */

.cm-sw .cm-sw-bar {
	background: var(--sw-bar);
	border-bottom: 1px solid var(--sw-rule);
}

.cm-sw .cm-sw-bar-inner {
	display: flex;
	align-items: stretch;
	justify-content: space-between;
	gap: 24px;
	min-height: 54px;
}

.cm-sw .cm-sw-bar a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	font-weight: 500;
	color: var(--sw-body);
	text-decoration: none;
	white-space: nowrap;
}

.cm-sw .cm-sw-bar a:hover { color: var(--sw-brick); }

.cm-sw .cm-sw-bar-list {
	display: flex;
	align-items: stretch;
	gap: 28px;
	margin: 0;
	padding: 0;
	list-style: none;
	overflow-x: auto;
	scrollbar-width: none;
}

.cm-sw .cm-sw-bar-list::-webkit-scrollbar { display: none; }
.cm-sw .cm-sw-bar-list li { display: flex; }

.cm-sw .cm-sw-bar-list a[aria-current="page"] {
	color: var(--sw-brick);
	font-weight: 600;
	box-shadow: inset 0 -2px 0 var(--sw-brick);
}

/* ---------------------------------------------------------------------------
   Hero
   ------------------------------------------------------------------------ */

.cm-sw .cm-sw-hero {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background: var(--sw-paper);
}

/* The coral wedge: from ~66% across at the top to ~60% at the bottom. */
.cm-sw .cm-sw-hero::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 60%;
	z-index: -1;
	background: var(--sw-coral);
	clip-path: polygon(16% 0, 100% 0, 100% 100%, 0 100%);
	pointer-events: none;
}

.cm-sw .cm-sw-hero-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: center;
	gap: clamp(32px, 5vw, 96px);
	padding-block: 26px clamp(56px, 6vw, 72px);
}

.cm-sw .cm-sw-hero-copy .cm-crumbs { margin-bottom: clamp(40px, 6vw, 84px); }
.cm-sw .cm-sw-hero-copy .cm-crumbs ol { font-size: 11.5px; }

.cm-sw .cm-sw-title {
	margin: 0 0 22px;
	max-width: 14ch;
	font-family: var(--cm26-font-display);
	font-size: clamp(40px, 4vw, 72px);
	font-weight: 700;
	line-height: 1.02;
	letter-spacing: -.045em;
	color: var(--sw-ink);
}

.cm-sw .cm-sw-tagline {
	margin: 0 0 18px;
	max-width: 27ch;
	font-family: var(--cm26-font-body);
	font-size: clamp(20px, 1.6vw, 26px);
	font-weight: 400;
	line-height: 1.38;
	color: var(--sw-ink);
}

.cm-sw .cm-sw-summary {
	margin: 0;
	max-width: 46ch;
	font-size: 14.5px;
	line-height: 1.75;
	color: var(--sw-muted);
}

.cm-sw .cm-sw-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 18px 30px;
	margin-top: 36px;
}

/* The product card */
.cm-sw .cm-sw-card {
	position: relative;
	margin: 0;
	padding: 24px 24px 22px;
	background: var(--sw-plate);
	border: 1px solid var(--sw-edge);
	box-shadow: 12px 12px 0 rgba(255, 103, 91, .3), 0 24px 40px -28px rgba(38, 36, 35, .45);
}

.cm-sw .cm-sw-card-top,
.cm-sw .cm-sw-card-cap {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
}

.cm-sw .cm-sw-card-top { margin-bottom: 18px; }

.cm-sw .cm-sw-card-name {
	font-family: var(--cm26-font-display);
	font-size: 13px;
	font-weight: 700;
	color: var(--sw-tone);
}

.cm-sw .cm-sw-card-kind {
	font-family: var(--cm26-font-display);
	font-size: 9.5px;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	text-align: right;
	color: var(--sw-muted);
}

.cm-sw .cm-sw-card-shot {
	display: flex;
	justify-content: center;
	align-items: center;
}

.cm-sw .cm-sw-card-img {
	display: block;
	max-width: 100%;
	height: auto;
}

.cm-sw .cm-sw-card--full .cm-sw-card-img {
	width: 100%;
	border: 1px solid var(--sw-edge);
	box-shadow: 0 10px 24px -18px rgba(38, 36, 35, .5);
}

/* AI Chatbot: a detail of the published image — the chat widget, which sits in
   the middle third of a wide grey canvas. */
.cm-sw .cm-sw-card--detail .cm-sw-card-img {
	width: auto;
	height: clamp(220px, 22vw, 330px);
	aspect-ratio: 34 / 70;
	object-fit: cover;
	object-position: 51% 50%;
	box-shadow: 0 14px 28px -16px rgba(38, 36, 35, .45);
}

/* Dripley: the logo on its own cream ground. */
.cm-sw .cm-sw-card--logo .cm-sw-card-img {
	width: min(56%, 300px);
	aspect-ratio: 1;
	object-fit: contain;
}

.cm-sw .cm-sw-card-cap {
	margin-top: 18px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--sw-edge);
	font-size: 11px;
	color: var(--sw-muted);
}

.cm-sw .cm-sw-card-foot {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
	margin-top: 14px;
}

.cm-sw .cm-sw-card-tags {
	display: flex;
	flex-wrap: wrap;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 11.5px;
	color: var(--sw-tone);
}

.cm-sw .cm-sw-card-tags li:not(:last-child)::after {
	content: "/";
	margin: 0 12px;
	color: var(--sw-edge);
}

.cm-sw .cm-sw-card-orig {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 11.5px;
	color: var(--sw-tone);
	text-decoration: underline;
	text-underline-offset: 4px;
	text-decoration-thickness: 1px;
}

.cm-sw .cm-sw-card-orig:hover { color: var(--sw-ink); }

/* ---------------------------------------------------------------------------
   Explore bar
   ------------------------------------------------------------------------ */

.cm-sw .cm-sw-explore {
	border-block: 1px solid var(--sw-rule);
	background: var(--sw-paper);
}

.cm-sw .cm-sw-explore-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 24px;
	min-height: 54px;
	padding-block: 6px;
}

.cm-sw .cm-sw-explore-label {
	margin: 0;
	font-family: var(--cm26-font-display);
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--sw-tone);
}

.cm-sw .cm-sw-explore ul {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 32px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.cm-sw .cm-sw-explore a {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	font-size: 12px;
	font-weight: 500;
	color: var(--sw-ink);
	text-decoration: none;
}

.cm-sw .cm-sw-explore a:hover { color: var(--sw-brick); text-decoration: underline; text-underline-offset: 5px; }

/* ---------------------------------------------------------------------------
   Inside <product>: heading row
   ------------------------------------------------------------------------ */

.cm-sw .cm-sw-head {
	display: grid;
	grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr);
	align-items: end;
	gap: 24px clamp(32px, 5vw, 96px);
	margin-bottom: clamp(32px, 3.5vw, 44px);
}

.cm-sw .cm-sw-head-lede {
	margin: 0;
	max-width: 50ch;
	padding-bottom: 4px;
	font-size: 14px;
	line-height: 1.75;
	color: var(--sw-muted);
}

/* ---------------------------------------------------------------------------
   Module: tabs (Unified KM)
   ------------------------------------------------------------------------ */

.cm-sw .cm-sw-tabs {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
	border: 1px solid var(--sw-edge);
	background: var(--sw-plate-2);
}

.cm-sw .cm-sw-tablist {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 28px 28px;
}

/* Without JS every panel is shown, stacked, and the tab buttons would do
   nothing — so they only appear once the script has run. */
.cm-sw .cm-sw-tabs:not(.is-ready) { grid-template-columns: minmax(0, 1fr); }
.cm-sw .cm-sw-tabs:not(.is-ready) .cm-sw-tablist { display: none; }
.cm-sw .cm-sw-tabs:not(.is-ready) .cm-sw-tabpanel + .cm-sw-tabpanel { border-top: 1px solid var(--sw-edge); }

.cm-sw .cm-sw-tab {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	width: 100%;
	min-height: 70px;
	padding: 0 22px;
	border: 1px solid var(--sw-edge);
	border-radius: 0;
	background: rgba(255, 255, 255, .55);
	font-family: var(--cm26-font-display);
	font-size: 15px;
	font-weight: 600;
	text-align: left;
	color: var(--sw-ink);
	cursor: pointer;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}

.cm-sw .cm-sw-tab:hover { background: #fff; border-color: var(--sw-tone); }

.cm-sw .cm-sw-tab[aria-selected="true"] {
	background: var(--sw-tone-strong);
	border-color: var(--sw-tone-strong);
	color: #fff;
}

.cm-sw .cm-sw-tabpanels { background: var(--sw-plate); }

.cm-sw .cm-sw-tabpanel { padding: clamp(28px, 3vw, 44px) clamp(24px, 3vw, 44px); }
.cm-sw .cm-sw-tabpanel[hidden] { display: none; }
.cm-sw .cm-sw-tabpanel .cm-sw-copy { max-width: 62ch; }

.cm-sw .cm-sw-checks {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 28px;
	margin: 28px 0 0;
	padding: 0;
	list-style: none;
}

.cm-sw .cm-sw-checks li {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 14px 0;
	border-top: 1px solid var(--sw-edge);
	font-size: 13.5px;
	color: var(--sw-ink);
}

.cm-sw .cm-sw-checks .cm-sw-icon { color: var(--sw-tone); }

/* ---------------------------------------------------------------------------
   Module: orbit (AI Chatbot)
   ------------------------------------------------------------------------ */

.cm-sw .cm-sw-orbit { margin: 0; }

.cm-sw .cm-sw-orbit-plate {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	align-items: center;
	padding: clamp(36px, 4vw, 64px) clamp(24px, 3vw, 44px);
	border: 1px solid var(--sw-edge);
	background: var(--sw-plate);
}

.cm-sw .cm-sw-orbit-side .cm-sw-h4 { margin-bottom: 0; padding-bottom: 18px; }

.cm-sw .cm-sw-orbit-side ul {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid #9fb0b6;
}

.cm-sw .cm-sw-orbit-side li {
	padding: 16px 0;
	border-bottom: 1px solid var(--sw-edge);
	font-size: 13.5px;
	color: var(--sw-ink);
}

.cm-sw .cm-sw-orbit-side--right { padding-left: 0; }
.cm-sw .cm-sw-orbit-side--right .cm-sw-mini,
.cm-sw .cm-sw-orbit-side--right .cm-sw-h4,
.cm-sw .cm-sw-orbit-side--right li { padding-left: 24px; }
.cm-sw .cm-sw-orbit-side--left .cm-sw-mini,
.cm-sw .cm-sw-orbit-side--left .cm-sw-h4,
.cm-sw .cm-sw-orbit-side--left li { padding-right: 24px; }

.cm-sw .cm-sw-orbit-core {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: clamp(220px, 21vw, 320px);
	aspect-ratio: 1;
	border: 1px solid #8c9ea5;
	border-radius: 50%;
	background: rgba(255, 255, 255, .22);
	text-align: center;
	color: var(--sw-tone);
}

.cm-sw .cm-sw-orbit-core strong {
	font-family: var(--cm26-font-display);
	font-size: 17px;
	font-weight: 700;
	color: var(--sw-ink);
}

.cm-sw .cm-sw-orbit-core span {
	font-family: var(--cm26-font-display);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--sw-tone);
}

/* ---------------------------------------------------------------------------
   Disclosure rows (AI Chatbot's extra notes, the full feature list, FAQ)
   ------------------------------------------------------------------------ */

.cm-sw .cm-sw-rows { margin-top: 28px; border-top: 1px solid var(--sw-rule); }

.cm-sw .cm-sw-row { border-bottom: 1px solid var(--sw-rule); }

.cm-sw .cm-sw-row > summary {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 66px;
	padding: 12px 0;
	list-style: none;
	font-family: var(--cm26-font-display);
	font-size: 15px;
	font-weight: 600;
	color: var(--sw-ink);
	cursor: pointer;
}

.cm-sw .cm-sw-row > summary::-webkit-details-marker { display: none; }
.cm-sw .cm-sw-row > summary:hover { color: var(--sw-brick); }

.cm-sw .cm-sw-row-mark { transition: transform .15s ease; }
.cm-sw .cm-sw-row[open] > summary .cm-sw-row-mark { transform: rotate(90deg); }

.cm-sw .cm-sw-row > .cm-sw-copy,
.cm-sw .cm-sw-row > .cm-sw-feats { padding: 0 0 26px 22px; max-width: 78ch; }

.cm-sw .cm-sw-feats {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 0 36px;
	max-width: none;
	margin: 0;
	list-style: none;
}

.cm-sw .cm-sw-row > .cm-sw-feats { max-width: none; }

.cm-sw .cm-sw-feats li { padding: 16px 0; border-top: 1px solid var(--sw-rule); }

.cm-sw .cm-sw-feat-title {
	margin: 0 0 6px;
	padding: 0;
	font-family: var(--cm26-font-display);
	font-size: 14.5px;
	font-weight: 700;
	line-height: 1.35;
	color: var(--sw-ink);
}

.cm-sw .cm-sw-feats p { margin: 0; font-size: 13.5px; line-height: 1.65; color: var(--sw-muted); }

/* ---------------------------------------------------------------------------
   Module: partner (MediaHub)
   ------------------------------------------------------------------------ */

.cm-sw .cm-sw-partner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
	gap: clamp(28px, 2.4vw, 40px);
	align-items: stretch;
}

.cm-sw .cm-sw-partner-card {
	display: flex;
	flex-direction: column;
	min-height: clamp(380px, 31vw, 470px);
	padding: clamp(24px, 2.4vw, 32px);
	border: 1px solid var(--sw-edge);
	background: var(--sw-plate);
}

.cm-sw .cm-sw-partner-rings {
	position: relative;
	display: grid;
	place-items: center;
	width: 120px;
	height: 120px;
	margin: clamp(24px, 3vw, 44px) auto auto;
	border: 1px solid #c79a83;
	border-radius: 50%;
	color: var(--sw-tone);
}

.cm-sw .cm-sw-partner-rings::before {
	content: "";
	position: absolute;
	inset: 16px;
	border: 1px solid #c79a83;
	border-radius: 50%;
}

.cm-sw .cm-sw-partner-lines {
	margin: 32px 0 0;
	font-family: var(--cm26-font-display);
	font-size: clamp(22px, 1.8vw, 28px);
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: -.02em;
	color: var(--sw-ink);
}

.cm-sw .cm-sw-partner-rows {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--sw-rule);
}

.cm-sw .cm-sw-partner-rows li {
	display: grid;
	grid-template-columns: 30px minmax(0, 1fr);
	gap: 14px;
	padding: clamp(24px, 2.4vw, 34px) 0;
	border-bottom: 1px solid var(--sw-rule);
}

.cm-sw .cm-sw-partner-rows .cm-sw-icon { color: var(--sw-tone); margin-top: 3px; }
.cm-sw .cm-sw-partner-rows .cm-sw-copy { max-width: 52ch; font-size: 14px; }

/* ---------------------------------------------------------------------------
   Module: hosted (Dripley CRM)
   ------------------------------------------------------------------------ */

.cm-sw .cm-sw-hosted { margin: 0; }

.cm-sw .cm-sw-hosted-plate {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
	align-items: center;
	gap: clamp(28px, 3vw, 48px);
	padding: clamp(28px, 2.6vw, 38px);
	border: 1px solid var(--sw-edge);
	background: var(--sw-plate);
}

.cm-sw .cm-sw-hosted-copy > .cm-sw-icon { color: var(--sw-tone); margin-bottom: 26px; }
.cm-sw .cm-sw-hosted-copy .cm-sw-h3 { max-width: 13ch; font-size: clamp(24px, 2vw, 32px); font-weight: 600; }
.cm-sw .cm-sw-hosted-copy .cm-sw-copy { font-size: 13.5px; }

.cm-sw .cm-sw-hosted-box {
	padding: clamp(18px, 2vw, 28px);
	border: 1px dashed #7d8db3;
	background: rgba(255, 255, 255, .28);
}

.cm-sw .cm-sw-hosted-box-label {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 0 0 20px;
	font-family: var(--cm26-font-display);
	font-size: 12px;
	font-weight: 600;
	color: var(--sw-tone);
}

.cm-sw .cm-sw-hosted-tiles {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.cm-sw .cm-sw-hosted-tiles li {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 14px;
	min-height: 120px;
	padding: 12px;
	border: 1px solid var(--sw-edge);
	background: #dde1ec;
	font-size: 12.5px;
	color: var(--sw-ink);
}

.cm-sw .cm-sw-hosted-tiles .cm-sw-icon { color: var(--sw-tone); }

.cm-sw .cm-sw-hosted-foot {
	margin: 24px 0 0;
	padding-top: 16px;
	border-top: 1px solid var(--sw-edge);
	font-size: 11.5px;
	color: var(--sw-tone);
}

/* ---------------------------------------------------------------------------
   Product details band
   ------------------------------------------------------------------------ */

.cm-sw .cm-sw-details {
	background: var(--sw-sand);
	border-block: 1px solid var(--sw-rule);
}

.cm-sw .cm-sw-details-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(240px, 300px);
	gap: clamp(40px, 8vw, 200px);
	align-items: start;
}

.cm-sw .cm-sw-details-main { max-width: 700px; }

.cm-sw .cm-sw-h2--about {
	max-width: 19ch;
	margin-bottom: 30px;
	font-size: clamp(30px, 2.6vw, 42px);
}

.cm-sw .cm-sw-prose { font-size: 15px; line-height: 1.85; color: var(--sw-body); }
.cm-sw .cm-sw-prose > * { margin: 0 0 16px; }
.cm-sw .cm-sw-prose > :last-child { margin-bottom: 0; }
.cm-sw .cm-sw-prose p:empty { display: none; }
.cm-sw .cm-sw-prose h3 { padding-bottom: 0; }
.cm-sw .cm-sw-prose strong { font-weight: 600; color: var(--sw-ink); }
.cm-sw .cm-sw-prose ul { padding-left: 20px; }
.cm-sw .cm-sw-prose li { margin-bottom: 10px; }
.cm-sw .cm-sw-prose li::marker { color: var(--sw-ink); }
.cm-sw .cm-sw-prose a { color: var(--sw-brick); text-underline-offset: 3px; }

/* A table in the stored body: ruled rows, and it scrolls inside itself
   rather than widening the page on a phone. */
.cm-sw .cm-sw-prose table {
	display: block;
	max-width: 100%;
	overflow-x: auto;
	border-collapse: collapse;
	font-size: 14px;
}

.cm-sw .cm-sw-prose th,
.cm-sw .cm-sw-prose td {
	padding: 10px 18px 10px 0;
	border-bottom: 1px solid var(--sw-rule);
	text-align: left;
	vertical-align: top;
}

.cm-sw .cm-sw-prose th { font-weight: 600; color: var(--sw-ink); }

.cm-sw .cm-sw-glance {
	padding-top: 22px;
	border-top: 2px solid var(--sw-brick);
}

.cm-sw .cm-sw-glance-title {
	margin: 0 0 14px;
	font-family: var(--cm26-font-display);
	font-size: 19px;
	font-weight: 700;
	letter-spacing: -.01em;
	color: var(--sw-ink);
}

.cm-sw .cm-sw-glance dl { margin: 0 0 28px; }

.cm-sw .cm-sw-glance dl > div {
	padding: 18px 0;
	border-bottom: 1px solid var(--sw-rule);
}

.cm-sw .cm-sw-glance dt {
	margin-bottom: 6px;
	font-family: var(--cm26-font-display);
	font-size: 9.5px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--sw-muted);
}

.cm-sw .cm-sw-glance dd {
	margin: 0;
	font-size: 13.5px;
	line-height: 1.55;
	color: var(--sw-ink);
}

.cm-sw .cm-sw-glance-links { display: flex; flex-direction: column; gap: 4px; }
.cm-sw .cm-sw-glance-links a { color: var(--sw-brick); text-underline-offset: 3px; overflow-wrap: anywhere; }

.cm-sw .cm-sw-glance .cm-sw-btn { width: 100%; }

/* ---------------------------------------------------------------------------
   Record extras: screens, demo, plans, testimonials, FAQ
   ------------------------------------------------------------------------ */

.cm-sw .cm-sw-screens + .cm-sw-section,
.cm-sw .cm-sw-demo + .cm-sw-section,
.cm-sw .cm-sw-plans + .cm-sw-section,
.cm-sw .cm-sw-quotes + .cm-sw-section { border-top: 1px solid var(--sw-rule); }

.cm-sw .cm-sw-shots {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 24px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.cm-sw .cm-sw-shot { margin: 0; }

.cm-sw .cm-sw-shot a {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 16 / 10;
	padding: 12px;
	border: 1px solid var(--sw-edge);
	background: var(--sw-plate);
	transition: border-color .15s ease;
}

.cm-sw .cm-sw-shot a { position: relative; overflow: hidden; cursor: zoom-in; }
.cm-sw .cm-sw-shot a:hover,
.cm-sw .cm-sw-shot a:focus-visible { border-color: var(--sw-tone); }

.cm-sw .cm-sw-shot-img { transition: transform .35s var(--cm26-ease); }
.cm-sw .cm-sw-shot a:hover .cm-sw-shot-img { transform: scale(1.025); }

/* "View" chip: always visible on touch, slides in on hover with a mouse. */
.cm-sw .cm-sw-shot-zoom {
	position: absolute;
	right: 12px;
	bottom: 12px;
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 7px 12px;
	background: var(--sw-ink);
	font-family: var(--cm26-font-display);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #fff;
	transition: opacity .2s ease, transform .2s ease;
}

@media (hover: hover) {
	.cm-sw .cm-sw-shot-zoom { opacity: 0; transform: translateY(6px); }
	.cm-sw .cm-sw-shot a:hover .cm-sw-shot-zoom,
	.cm-sw .cm-sw-shot a:focus-visible .cm-sw-shot-zoom { opacity: 1; transform: none; }
}

.cm-sw .cm-sw-shot-img {
	display: block;
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
	box-shadow: 0 8px 18px -14px rgba(38, 36, 35, .5);
}

.cm-sw .cm-sw-shot figcaption { margin-top: 10px; font-size: 12px; color: var(--sw-muted); }

.cm-sw .cm-sw-demo { background: var(--sw-sand); }

.cm-sw .cm-sw-video {
	max-width: 980px;
	aspect-ratio: 16 / 9;
	border: 1px solid var(--sw-rule);
	background: var(--sw-ink);
}

.cm-sw .cm-sw-video iframe { display: block; width: 100%; height: 100%; border: 0; }

.cm-sw .cm-sw-plan-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 20px;
	align-items: start;
}

.cm-sw .cm-sw-plan {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 30px 28px;
	border: 1px solid var(--sw-rule);
	border-top: 3px solid var(--sw-rule);
	background: #fffdfb;
}

.cm-sw .cm-sw-plan.is-featured { border-top-color: var(--sw-brick); box-shadow: 0 24px 40px -30px rgba(38, 36, 35, .5); }

.cm-sw .cm-sw-plan-badge {
	margin: 0 0 12px;
	font-family: var(--cm26-font-display);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--sw-brick);
}

.cm-sw .cm-sw-price { display: flex; align-items: baseline; gap: 10px; margin: 6px 0 22px; }

.cm-sw .cm-sw-price span {
	font-family: var(--cm26-font-display);
	font-size: 38px;
	font-weight: 700;
	letter-spacing: -.03em;
	color: var(--sw-ink);
}

.cm-sw .cm-sw-price small { font-size: 13px; color: var(--sw-muted); }

.cm-sw .cm-sw-plan-list {
	margin: 0 0 26px;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--sw-rule);
}

.cm-sw .cm-sw-plan-list li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 9px 0;
	border-bottom: 1px solid #ece4dc;
	font-size: 13px;
	line-height: 1.5;
	color: var(--sw-ink);
}

.cm-sw .cm-sw-plan-list .cm-sw-icon { margin-top: 3px; color: var(--sw-tone); }
.cm-sw .cm-sw-plan-foot { margin: auto 0 0; }
.cm-sw .cm-sw-plan-foot .cm-sw-btn { width: 100%; }

.cm-sw .cm-sw-quote-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
	gap: 32px;
}

.cm-sw .cm-sw-quote {
	margin: 0;
	padding-left: 26px;
	border-left: 3px solid var(--sw-coral);
}

.cm-sw .cm-sw-quote blockquote { margin: 0; }

.cm-sw .cm-sw-quote blockquote p {
	margin: 0;
	max-width: 70ch;
	font-size: 17px;
	line-height: 1.75;
	color: var(--sw-ink);
}

.cm-sw .cm-sw-quote figcaption { margin-top: 16px; font-size: 13px; font-weight: 600; color: var(--sw-muted); }

.cm-sw .cm-sw-stars { display: flex; gap: 3px; margin: 0 0 14px; color: var(--sw-rule); }
.cm-sw .cm-sw-stars .cm-sw-icon.is-on { color: var(--sw-brick); fill: currentColor; }

.cm-sw .cm-sw-faq-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
	gap: 24px clamp(32px, 5vw, 96px);
	align-items: start;
}

.cm-sw .cm-sw-faq .cm-sw-rows { margin-top: 0; }

/* ---------------------------------------------------------------------------
   More from the software studio
   ------------------------------------------------------------------------ */

.cm-sw .cm-sw-more-head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px 32px;
	margin-bottom: clamp(28px, 3vw, 40px);
}

.cm-sw .cm-sw-list {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--sw-rule);
}

.cm-sw .cm-sw-list li { border-bottom: 1px solid var(--sw-rule); }

.cm-sw .cm-sw-list a {
	display: grid;
	grid-template-columns: 56px minmax(0, 1.4fr) minmax(0, 1fr) 24px;
	align-items: center;
	gap: 16px;
	min-height: 82px;
	padding: 14px 0;
	text-decoration: none;
	color: var(--sw-ink);
}

.cm-sw .cm-sw-list-num { font-size: 10.5px; color: var(--sw-muted); }

.cm-sw .cm-sw-list-name {
	font-family: var(--cm26-font-display);
	font-size: clamp(18px, 1.5vw, 23px);
	font-weight: 600;
	letter-spacing: -.015em;
}

.cm-sw .cm-sw-list-note { font-size: 12.5px; color: var(--sw-muted); }
.cm-sw .cm-sw-list .cm-sw-icon { justify-self: end; transition: transform .15s ease; }
.cm-sw .cm-sw-list a:hover .cm-sw-list-name { color: var(--sw-brick); }
.cm-sw .cm-sw-list a:hover .cm-sw-icon { transform: translateX(4px); }

/* ---------------------------------------------------------------------------
   Closing CTA: the comps' square panel with a brick wedge on the right edge.
   ------------------------------------------------------------------------ */

.cm-sw .cm-cta-panel { border-radius: 0; background: #332e2b; }
.cm-sw .cm-cta-panel > .cm-orbital,
.cm-sw .cm-cta-panel > .cm-cta-edge { display: none; }

/* cosmick-2026.css turns the panel's .cm-grain::after off (display:none,
   inset:0, opacity .5); this takes the same pseudo-element back for the wedge. */
.cm-sw .cm-cta-panel::after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: auto;
	z-index: -1;
	display: block;
	width: min(17%, 200px);
	opacity: 1;
	background: #a1463c;
	clip-path: polygon(78% 0, 100% 0, 100% 100%, 0 100%);
	pointer-events: none;
}

.cm-sw .cm-cta-inner > div:first-child { border-left: 0; padding-left: 0; }

/* ---------------------------------------------------------------------------
   Screens viewer (assets/js/cm-software.js). The <dialog> is appended to
   <body>, outside main.cm-sw, so it carries its own tokens.
   ------------------------------------------------------------------------ */

html.cm-sw-lb-locked { overflow: hidden; }

dialog.cm-sw-lb {
	--lb-ink:    #ece6e0;
	--lb-soft:   #ddd5ce;
	--lb-muted:  #bdb3aa;
	--lb-line:   rgba(255, 255, 255, .14);
	--lb-coral:  #ff675b;
	--lb-link:   #ff9a90;

	width: 100vw;
	height: 100vh;
	height: 100dvh;
	max-width: none;
	max-height: none;
	margin: 0;
	padding: 0;
	border: 0;
	/* Solid: the dialog fills the viewport, so nothing on the page reads through. */
	background: #1c1918;
	color: var(--lb-ink);
	overflow: hidden;
}

dialog.cm-sw-lb::backdrop { background: rgba(28, 25, 24, .9); }
dialog.cm-sw-lb[open] { display: block; }

.cm-sw-lb .cm-sw-lb-inner {
	display: grid;
	grid-template-rows: auto minmax(0, 1fr) auto;
	gap: clamp(14px, 2vh, 24px);
	height: 100%;
	padding:
		max(16px, env(safe-area-inset-top, 0px))
		var(--cm26-gutter)
		max(16px, env(safe-area-inset-bottom, 0px));
	box-sizing: border-box;
}

.cm-sw-lb .cm-sw-lb-bar,
.cm-sw-lb .cm-sw-lb-foot {
	width: 100%;
	max-width: 1240px;
	margin-inline: auto;
}

.cm-sw-lb .cm-sw-lb-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding-bottom: clamp(12px, 1.6vh, 18px);
	border-bottom: 1px solid var(--lb-line);
}

.cm-sw-lb .cm-sw-lb-heading { min-width: 0; }

.cm-sw-lb .cm-sw-lb-kicker {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 4px;
	font-family: var(--cm26-font-display);
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--lb-link); /* 6.9:1 on the backdrop */
}

.cm-sw-lb .cm-sw-lb-kicker::before {
	content: "";
	width: 7px;
	height: 7px;
	background: var(--lb-coral);
	flex: 0 0 auto;
}

.cm-sw-lb .cm-sw-lb-title {
	margin: 0;
	overflow: hidden;
	font-family: var(--cm26-font-display);
	font-size: clamp(16px, 1.4vw, 20px);
	font-weight: 700;
	letter-spacing: -.01em;
	line-height: 1.3;
	white-space: nowrap;
	text-overflow: ellipsis;
	color: var(--lb-ink);
}

.cm-sw-lb .cm-sw-lb-tools {
	display: flex;
	align-items: center;
	gap: clamp(12px, 2vw, 26px);
	flex: 0 0 auto;
}

.cm-sw-lb .cm-sw-lb-count {
	font-family: var(--cm26-font-display);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .1em;
	font-variant-numeric: tabular-nums;
	color: var(--lb-muted);
}

.cm-sw-lb .cm-sw-lb-full {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 44px;
	font-family: var(--cm26-font-display);
	font-size: 12.5px;
	font-weight: 600;
	color: var(--lb-ink);
	text-decoration: underline;
	text-decoration-color: rgba(236, 230, 224, .4);
	text-underline-offset: 5px;
}

.cm-sw-lb .cm-sw-lb-full:hover { color: #fff; text-decoration-color: var(--lb-coral); }

/* Square, outlined controls: the software pages' sharp studio language. */
.cm-sw-lb .cm-sw-lb-btn {
	display: inline-grid;
	place-items: center;
	flex: 0 0 auto;
	width: 46px;
	height: 46px;
	margin: 0;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, .3);
	border-radius: 0;
	background: rgba(255, 255, 255, .04);
	color: var(--lb-ink);
	cursor: pointer;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}

.cm-sw-lb .cm-sw-lb-btn:hover {
	background: var(--lb-ink);
	border-color: var(--lb-ink);
	color: #262423;
}

.cm-sw-lb .cm-sw-lb-btn[hidden] { display: none; }

.cm-sw-lb .cm-sw-lb-btn:focus-visible,
.cm-sw-lb .cm-sw-lb-full:focus-visible,
.cm-sw-lb .cm-sw-lb-thumb:focus-visible {
	outline: 2px solid var(--lb-link);
	outline-offset: 3px;
}

.cm-sw-lb .cm-sw-lb-stage {
	display: grid;
	grid-template-columns: 46px minmax(0, 1fr) 46px;
	align-items: center;
	gap: clamp(12px, 2vw, 28px);
	width: 100%;
	max-width: 1360px;
	min-height: 0;
	margin-inline: auto;
	touch-action: pan-y;
}

.cm-sw-lb.is-single .cm-sw-lb-stage { grid-template-columns: minmax(0, 1fr); }

.cm-sw-lb .cm-sw-lb-figure {
	display: grid;
	place-items: center;
	height: 100%;
	min-height: 0;
	margin: 0;
}

.cm-sw-lb .cm-sw-lb-img {
	display: block;
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: 100%;
	border: 1px solid rgba(255, 255, 255, .12);
	background: #3a3532;
	box-shadow: 18px 18px 0 rgba(255, 103, 91, .22), 0 40px 90px -40px rgba(0, 0, 0, .8);
	object-fit: contain;
	opacity: 0;
	user-select: none;
	-webkit-user-drag: none;
}

.cm-sw-lb .cm-sw-lb-img.is-ready { opacity: 1; }

.cm-sw-lb .cm-sw-lb-foot {
	display: grid;
	justify-items: center;
	gap: clamp(10px, 1.6vh, 16px);
}

.cm-sw-lb .cm-sw-lb-cap {
	display: -webkit-box;
	max-width: 80ch;
	margin: 0;
	overflow: hidden;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	font-size: 14px;
	line-height: 1.6;
	text-align: center;
	color: var(--lb-soft); /* 11:1 on the backdrop */
}

.cm-sw-lb .cm-sw-lb-cap[hidden] { display: none; }

.cm-sw-lb .cm-sw-lb-strip {
	display: flex;
	gap: 8px;
	max-width: 100%;
	margin: 0;
	padding: 4px;
	list-style: none;
	overflow-x: auto;
	scrollbar-width: thin;
	scrollbar-color: rgba(255, 255, 255, .25) transparent;
}

.cm-sw-lb .cm-sw-lb-strip[hidden] { display: none; }

.cm-sw-lb .cm-sw-lb-thumb {
	display: block;
	width: 84px;
	height: 54px;
	margin: 0;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, .22);
	border-radius: 0;
	background: #3a3532;
	opacity: .5;
	cursor: pointer;
	transition: opacity .15s ease, border-color .15s ease;
}

.cm-sw-lb .cm-sw-lb-thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top center;
}

.cm-sw-lb .cm-sw-lb-thumb:hover { opacity: .85; }

.cm-sw-lb .cm-sw-lb-thumb.is-current {
	opacity: 1;
	border-color: var(--lb-coral);
	box-shadow: 0 0 0 1px var(--lb-coral);
}

@media (prefers-reduced-motion: no-preference) {
	.cm-sw-lb .cm-sw-lb-img { transition: opacity .25s ease; }
	dialog.cm-sw-lb[open] { animation: cm-sw-lb-in .22s ease-out; }
	dialog.cm-sw-lb[open] .cm-sw-lb-img.is-ready { animation: cm-sw-lb-rise .3s var(--cm26-ease); }
}

@keyframes cm-sw-lb-in   { from { opacity: 0; } to { opacity: 1; } }
@keyframes cm-sw-lb-rise { from { transform: translateY(8px); } to { transform: none; } }

@media (max-width: 767px) {
	/* Arrows sit over the image's edges; the strip keeps the bottom. */
	.cm-sw-lb .cm-sw-lb-stage { position: relative; grid-template-columns: minmax(0, 1fr); }
	.cm-sw-lb .cm-sw-lb-nav {
		position: absolute;
		top: 50%;
		z-index: 1;
		transform: translateY(-50%);
		background: rgba(28, 25, 24, .78);
	}
	.cm-sw-lb .cm-sw-lb-prev { left: 0; }
	.cm-sw-lb .cm-sw-lb-next { right: 0; }
	.cm-sw-lb .cm-sw-lb-img { box-shadow: 10px 10px 0 rgba(255, 103, 91, .22); }
	.cm-sw-lb .cm-sw-lb-full { font-size: 0; gap: 0; width: 44px; justify-content: center; border: 1px solid rgba(255, 255, 255, .3); }
	.cm-sw-lb .cm-sw-lb-full svg { width: 18px; height: 18px; }
	.cm-sw-lb .cm-sw-lb-thumb { width: 64px; height: 42px; }
	.cm-sw-lb .cm-sw-lb-cap { font-size: 13px; }
}

/* ---------------------------------------------------------------------------
   Responsive
   ------------------------------------------------------------------------ */

@media (max-width: 1023px) {
	.cm-sw .cm-sw-hero-grid { grid-template-columns: minmax(0, 1fr); gap: 44px; }
	.cm-sw .cm-sw-title { max-width: none; }

	/* The wedge drops behind the lower half of the card. */
	.cm-sw .cm-sw-hero::before {
		top: auto;
		left: 0;
		height: 34%;
		clip-path: polygon(0 42%, 100% 0, 100% 100%, 0 100%);
	}

	.cm-sw .cm-sw-head { grid-template-columns: minmax(0, 1fr); }
	.cm-sw .cm-sw-orbit-plate { grid-template-columns: minmax(0, 1fr); gap: 32px; justify-items: stretch; }
	.cm-sw .cm-sw-orbit-core { justify-self: center; order: -1; }
	.cm-sw .cm-sw-orbit-side--left .cm-sw-mini,
	.cm-sw .cm-sw-orbit-side--left .cm-sw-h4,
	.cm-sw .cm-sw-orbit-side--left li,
	.cm-sw .cm-sw-orbit-side--right .cm-sw-mini,
	.cm-sw .cm-sw-orbit-side--right .cm-sw-h4,
	.cm-sw .cm-sw-orbit-side--right li { padding-inline: 0; }

	.cm-sw .cm-sw-partner,
	.cm-sw .cm-sw-hosted-plate,
	.cm-sw .cm-sw-details-grid,
	.cm-sw .cm-sw-faq-grid { grid-template-columns: minmax(0, 1fr); }

	.cm-sw .cm-sw-partner-card { min-height: 0; }
	.cm-sw .cm-sw-glance { max-width: 420px; }
}

@media (max-width: 767px) {
	.cm-sw .cm-sw-bar-inner { flex-direction: column; align-items: flex-start; gap: 0; padding-top: 12px; }
	.cm-sw .cm-sw-bar-list { flex-wrap: wrap; width: 100%; gap: 0 22px; overflow-x: visible; }
	.cm-sw .cm-sw-bar-all,
	.cm-sw .cm-sw-bar-list a { min-height: 44px; }

	.cm-sw .cm-sw-hero-copy .cm-crumbs { margin-bottom: 36px; }
	.cm-sw .cm-sw-card { padding: 18px 16px 16px; box-shadow: 8px 8px 0 rgba(255, 103, 91, .3); }

	.cm-sw .cm-sw-tabs.is-ready { grid-template-columns: minmax(0, 1fr); }
	.cm-sw .cm-sw-tablist { padding: 16px; gap: 8px; }
	.cm-sw .cm-sw-tab { min-height: 56px; padding: 0 16px; font-size: 14px; }
	.cm-sw .cm-sw-checks { grid-template-columns: minmax(0, 1fr); }

	.cm-sw .cm-sw-hosted-tiles li { min-height: 96px; }

	.cm-sw .cm-sw-list a { grid-template-columns: 32px minmax(0, 1fr) 20px; gap: 4px 12px; }
	.cm-sw .cm-sw-list-note { grid-column: 2; grid-row: 2; }
	.cm-sw .cm-sw-list .cm-sw-icon { grid-column: 3; grid-row: 1 / span 2; }

	.cm-sw .cm-cta-panel::after { width: 18%; }
}

@media (prefers-reduced-motion: reduce) {
	.cm-sw .cm-sw-btn .cm-sw-icon,
	.cm-sw .cm-sw-list .cm-sw-icon,
	.cm-sw .cm-sw-row-mark,
	.cm-sw .cm-sw-shot-img,
	.cm-sw .cm-sw-shot-zoom,
	.cm-sw-lb .cm-sw-lb-btn,
	.cm-sw-lb .cm-sw-lb-thumb { transition: none; }

	.cm-sw .cm-sw-shot a:hover .cm-sw-shot-img { transform: none; }
}
