/* =====================================================
   China Travels · Startseite
   Palette:  Tusche #1B1E24 · Porzellan #F7F5F0 · Siegelrot #A3271E
             Jade #5C6B60 · Graphit #3A3F46
   Schrift:  Spectral (Display) · Public Sans (Text)
   Alle Regeln sind unter body.ct-home gescoped, um Konflikte
   mit dem Parent-Theme zu vermeiden.
   ===================================================== */

/* Design-Tokens global auf :root, damit auch die Rechtsseiten sie
   bekommen. Custom Properties wirken erst dort, wo sie referenziert
   werden — mit dem Parent-Theme kollidiert das nicht. */
:root {
	--ink: #1B1E24;
	--ink-soft: #262B33;
	--paper: #F7F5F0;
	--paper-deep: #EFECE4;
	--seal: #A3271E;
	--seal-dark: #841F18;
	--jade: #5C6B60;
	--gold: #B4924F;
	--graphite: #3A3F46;
	--line: #DAD6CC;
	--line-dark: #3B414B;

	--font-display: "Spectral", Georgia, serif;
	--font-body: "Public Sans", -apple-system, "Segoe UI", sans-serif;

	--shell: 1180px;
	--shell-narrow: 780px;
}

body.ct-home,
body.ct-legal-page {
	margin: 0;
	background: var(--paper);
	color: var(--graphite);
	font-family: var(--font-body);
	font-size: 1.0625rem;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}

/* Seitlichen Überstand begrenzen, ohne einen neuen Scrollcontainer für Sticky zu erzeugen. */
body.ct-home {
	overflow-x: clip;
	overflow-wrap: anywhere;
}

body.ct-home *,
body.ct-home *::before,
body.ct-home *::after,
body.ct-legal-page *,
body.ct-legal-page *::before,
body.ct-legal-page *::after { box-sizing: border-box; }

body.ct-home img, body.ct-home svg,
body.ct-legal-page img, body.ct-legal-page svg { max-width: 100%; height: auto; }

body.ct-home :focus-visible,
body.ct-legal-page :focus-visible {
	outline: 2px solid var(--seal);
	outline-offset: 3px;
	border-radius: 2px;
}

.ct-visually-hidden {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden; clip: rect(0 0 0 0);
	white-space: nowrap;
}

.ct-skip {
	position: absolute; left: -9999px; top: 0;
	background: var(--ink); color: var(--paper);
	padding: .6rem 1rem; z-index: 100;
}
.ct-skip:focus { left: 0; }

/* ---------- Shell ---------- */
.ct-shell { width: min(var(--shell), 100% - 3rem); min-width: 0; margin-inline: auto; }
.ct-shell--narrow { width: min(var(--shell-narrow), 100% - 3rem); }

/* Grid-/Flex-Kinder dürfen unter ihre natürliche Inhaltsbreite schrumpfen. */
.ct-tours__grid > *, .ct-tours__combine > *,
.ct-prep__grid > *, .ct-about__grid > *,
.ct-tiers__list > *, .ct-terms__grid > *, .ct-standards > *,
.ct-form > *, .ct-form__row > *, .ct-form__field > *,
.ct-footer__brand > *, .ct-proof__inner > *, .ct-story__layout > * { min-width: 0; }

/* ---------- Typo ---------- */
body.ct-home h1, body.ct-home h2, body.ct-home h3 {
	font-family: var(--font-display);
	font-weight: 400;
	color: var(--ink);
	margin: 0;
}
.ct-h2 {
	font-size: clamp(1.9rem, 4vw, 2.75rem);
	font-weight: 300;
	letter-spacing: -.01em;
	line-height: 1.15;
	margin-bottom: .75rem;
}
.ct-lead {
	font-size: 1.125rem;
	max-width: 46rem;
	margin: 0;
	color: var(--graphite);
}

.ct-eyebrow {
	display: flex; align-items: center; gap: .7rem;
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--jade);
	margin: 0 0 1rem;
}
.ct-eyebrow::after {
	content: ""; flex: 0 0 2.4rem; height: 1px;
	background: var(--seal);
}
.ct-eyebrow__hanzi {
	font-family: var(--font-display);
	font-size: 1.05rem;
	line-height: 1;
	color: var(--seal);
	border: 1px solid var(--seal);
	padding: .28rem .34rem .2rem;
	border-radius: 2px;
}
.ct-eyebrow--light { color: #A9B4AB; }
.ct-eyebrow--light .ct-eyebrow__hanzi { color: #E2B7B2; border-color: #7A4842; }

/* ---------- Buttons ---------- */
.ct-btn {
	display: inline-block;
	font-family: var(--font-body);
	font-size: .95rem;
	font-weight: 600;
	letter-spacing: .02em;
	text-decoration: none;
	padding: .85rem 1.7rem;
	border-radius: 2px;
	border: 1px solid transparent;
	cursor: pointer;
	transition: background-color .18s ease, color .18s ease, border-color .18s ease;
}
.ct-btn--primary { background: var(--seal); color: #FDFCFA; }
.ct-btn--primary:hover { background: var(--seal-dark); color: #FDFCFA; }
.ct-btn--ghost { border-color: var(--ink); color: var(--ink); background: transparent; }
.ct-btn--ghost:hover { background: var(--ink); color: var(--paper); }
.ct-btn--big { font-size: 1.05rem; padding: 1rem 2.4rem; }

/* ---------- Header ---------- */
.ct-header {
	position: sticky; top: 0; z-index: 50;
	background: color-mix(in srgb, var(--paper) 92%, transparent);
	backdrop-filter: blur(8px);
	border-bottom: 1px solid var(--line);
}
.ct-header__inner {
	display: flex; align-items: center; justify-content: space-between;
	gap: 1.5rem; padding-block: .85rem;
}
.ct-logo {
	display: flex; align-items: center; gap: .65rem;
	text-decoration: none;
}
.ct-logo__seal {
	font-family: var(--font-display);
	font-size: 1.15rem; line-height: 1;
	color: #FDFCFA; background: var(--seal);
	padding: .34rem .38rem .26rem;
	border-radius: 2px;
}
.ct-logo__text {
	font-family: var(--font-display);
	font-size: 1.3rem;
	color: var(--ink);
	letter-spacing: .01em;
}
.ct-nav { display: flex; align-items: center; gap: 1.6rem; }
.ct-nav a {
	font-size: .95rem; font-weight: 500;
	color: var(--graphite); text-decoration: none;
	padding-block: .3rem;
	border-bottom: 1px solid transparent;
}
.ct-nav a:hover { color: var(--ink); border-bottom-color: var(--seal); }
.ct-nav__cta {
	border: 1px solid var(--seal) !important;
	border-radius: 2px;
	color: var(--seal) !important;
	padding: .5rem 1.1rem !important;
}
.ct-nav__cta:hover { background: var(--seal); color: #FDFCFA !important; }

.ct-burger {
	display: none;
	flex-direction: column; gap: 6px;
	background: none; border: 0; padding: .5rem;
	cursor: pointer;
}
.ct-burger span:not(.ct-visually-hidden) {
	width: 26px; height: 2px; background: var(--ink);
	transition: transform .2s ease;
}

/* ---------- 1 · Hero ---------- */
.ct-hero {
	position: relative;
	min-height: min(88vh, 860px);
	display: flex; align-items: center;
	overflow: hidden;
	border-bottom: 1px solid var(--line);
}
.ct-hero__art { position: absolute; inset: 0; z-index: 0; }
.ct-hero__art svg { width: 100%; height: 100%; display: block; }
.ct-hero__content {
	position: relative; z-index: 1;
	padding-block: clamp(4rem, 10vh, 8rem);
	max-width: 46rem;
}
.ct-hero__eyebrow {
	font-size: .82rem; font-weight: 600;
	letter-spacing: .2em; text-transform: uppercase;
	color: var(--jade);
	margin: 0 0 1.4rem;
}
.ct-hero__title {
	font-size: clamp(2.6rem, 6.5vw, 4.6rem);
	font-weight: 300;
	line-height: 1.06;
	letter-spacing: -.015em;
}
.ct-hero__title em {
	font-style: italic;
	color: var(--seal);
}
.ct-hero__sub {
	font-family: var(--font-display);
	font-size: clamp(1.15rem, 2.2vw, 1.45rem);
	font-weight: 300;
	color: var(--graphite);
	margin: 1.4rem 0 2.4rem;
}
.ct-hero__actions { display: flex; flex-wrap: wrap; gap: 1rem; }

/* ---------- 2 · Trust ---------- */
.ct-trust { background: var(--ink); color: #C9CDC6; }
.ct-trust__inner {
	display: flex; flex-wrap: wrap; align-items: center;
	justify-content: space-between; gap: .75rem 2rem;
	padding-block: 1rem;
}
.ct-trust p { margin: 0; font-size: .92rem; letter-spacing: .04em; }
.ct-trust__claim { font-family: var(--font-display); font-size: 1.02rem; color: #EDEBE4; }
.ct-trust__swiss { display: flex; align-items: center; gap: .6rem; }
.ct-swisscross {
	display: inline-block; width: 15px; height: 15px;
	background: var(--seal); border-radius: 2px; position: relative;
	flex: 0 0 auto;
}
.ct-swisscross::before, .ct-swisscross::after {
	content: ""; position: absolute; background: #FDFCFA;
}
.ct-swisscross::before { left: 6.2px; top: 3px; width: 2.6px; height: 9px; }
.ct-swisscross::after  { top: 6.2px; left: 3px; height: 2.6px; width: 9px; }

/* ---------- Sections ---------- */
.ct-section { padding-block: clamp(4rem, 9vw, 7rem); }
.ct-section__head { margin-bottom: clamp(2rem, 5vw, 3.5rem); }

/* ---------- 3 · Problem ---------- */
.ct-problem { background: var(--paper); }
.ct-problem__lines p {
	font-family: var(--font-display);
	font-weight: 300;
	font-size: clamp(1.3rem, 2.6vw, 1.75rem);
	line-height: 1.45;
	color: var(--ink);
	margin: 0 0 1.4rem;
}
.ct-problem__lines em { font-style: italic; }
.ct-problem__answer strong { font-weight: 500; color: var(--seal); }

/* ---------- 4 · Freiheitsgrad (Signatur) ---------- */
.ct-freedom {
	background: var(--ink);
	color: #C9CDC6;
}
.ct-freedom .ct-h2 { color: #F2F0EA; }
.ct-freedom .ct-lead { color: #AEB4AC; }

.ct-freedom__widget {
	background: var(--ink-soft);
	border: 1px solid var(--line-dark);
	border-radius: 4px;
	padding: clamp(1.5rem, 4vw, 3rem);
}
.ct-freedom__slider { position: relative; margin-bottom: 2.2rem; }
.ct-freedom__slider input[type="range"] {
	width: 100%;
	appearance: none; -webkit-appearance: none;
	background: transparent;
	height: 40px;
	cursor: pointer;
	margin: 0;
}
.ct-freedom__slider input[type="range"]::-webkit-slider-runnable-track {
	height: 3px; background: var(--line-dark); border-radius: 2px;
}
.ct-freedom__slider input[type="range"]::-moz-range-track {
	height: 3px; background: var(--line-dark); border-radius: 2px;
}
.ct-freedom__slider input[type="range"]::-webkit-slider-thumb {
	-webkit-appearance: none;
	width: 26px; height: 26px;
	margin-top: -11.5px;
	border-radius: 50%;
	background: var(--seal);
	border: 3px solid #F2F0EA;
	box-shadow: 0 2px 10px rgba(0,0,0,.4);
}
.ct-freedom__slider input[type="range"]::-moz-range-thumb {
	width: 20px; height: 20px;
	border-radius: 50%;
	background: var(--seal);
	border: 3px solid #F2F0EA;
	box-shadow: 0 2px 10px rgba(0,0,0,.4);
}
.ct-freedom__stops {
	display: flex; justify-content: space-between;
	margin-top: .4rem;
}
.ct-freedom__stops button {
	background: none; border: 0; cursor: pointer;
	font-family: var(--font-body);
	font-size: .82rem; font-weight: 600;
	letter-spacing: .12em; text-transform: uppercase;
	color: #7E8780;
	padding: .35rem .2rem;
	transition: color .15s ease;
}
.ct-freedom__stops button.is-active { color: #F2F0EA; }
.ct-freedom__stops button.is-active::after {
	content: ""; display: block; height: 2px; margin-top: .3rem;
	background: var(--seal);
}

.ct-freedom__panel[hidden] { display: none; }
.ct-freedom .ct-freedom__name {
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 300;
	color: #F2F0EA;
	margin-bottom: .4rem;
}
.ct-freedom__desc {
	font-family: var(--font-display);
	font-style: italic;
	font-size: 1.1rem;
	color: #AEB4AC;
	margin: 0 0 1.4rem;
}
.ct-freedom__list {
	list-style: none; margin: 0 0 1.4rem; padding: 0;
	display: grid; gap: .55rem;
}
.ct-freedom__list li {
	padding-left: 1.5rem; position: relative;
	color: #D5D8D1;
}
.ct-freedom__list li::before {
	content: ""; position: absolute; left: 0; top: .62em;
	width: .65rem; height: 1px; background: var(--seal);
}
.ct-freedom__typical {
	font-size: .88rem; letter-spacing: .05em;
	color: #7E8780; margin: 0;
	border-top: 1px solid var(--line-dark);
	padding-top: 1rem;
}
.ct-freedom__foot {
	font-family: var(--font-display);
	font-style: italic;
	text-align: center;
	font-size: 1.15rem;
	color: #AEB4AC;
	margin: 2.4rem 0 0;
}

/* ---------- 5 · Touren ---------- */
.ct-tours { background: var(--paper-deep); }
.ct-tours__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1.4rem;
}
@media (max-width: 760px) {
	.ct-tours__grid { grid-template-columns: 1fr; }
}
.ct-tour {
	background: #FDFCFA;
	border: 1px solid var(--line);
	border-top: 3px solid var(--jade);
	border-radius: 3px;
	padding: 1.8rem 1.7rem 1.5rem;
	display: flex; flex-direction: column;
	transition: transform .2s ease, box-shadow .2s ease;
}
.ct-tour:hover {
	transform: translateY(-4px);
	box-shadow: 0 14px 34px rgba(27,30,36,.10);
}
.ct-tour--summit { border-top-color: var(--seal); }
.ct-tour__tag {
	font-size: .72rem; font-weight: 600;
	letter-spacing: .16em; text-transform: uppercase;
	color: var(--jade);
	margin-bottom: .9rem;
}
.ct-tour--summit .ct-tour__tag { color: var(--seal); }
.ct-tour__title { font-size: 1.55rem; font-weight: 400; margin-bottom: .35rem; }
.ct-tour__claim {
	font-family: var(--font-display);
	font-style: italic;
	color: var(--jade);
	font-size: 1rem;
	margin: 0 0 .9rem;
	min-height: 2.6em;
}
.ct-tour__body { font-size: .96rem; margin: 0 0 1.3rem; flex: 1; }
.ct-tour__meta {
	margin: 0; border-top: 1px solid var(--line);
	padding-top: 1rem;
	display: grid; gap: .4rem;
}
.ct-tour__meta div { display: flex; justify-content: space-between; gap: 1rem; }
.ct-tour__meta dt {
	font-size: .78rem; font-weight: 600;
	letter-spacing: .1em; text-transform: uppercase;
	color: #8A8E86;
}
.ct-tour__meta dd { margin: 0; min-width: 0; overflow-wrap: anywhere; font-size: .9rem; text-align: right; color: var(--ink); }
.ct-tour__meta dt { flex-shrink: 0; }

.ct-tours__combine {
	margin-top: 2.6rem;
	background: var(--ink);
	border-radius: 3px;
	color: #C9CDC6;
	padding: clamp(1.6rem, 4vw, 2.6rem);
	display: grid;
	grid-template-columns: 1.6fr 1fr;
	gap: 2rem;
	align-items: center;
}
body.ct-home .ct-tours__combine h3 {
	color: #F2F0EA; font-weight: 300;
	font-size: 1.5rem; margin-bottom: .6rem;
}
.ct-tours__combine p { margin: 0; font-size: .98rem; }
.ct-tours__combine strong { color: #F2F0EA; font-weight: 500; }
.ct-tours__price {
	font-family: var(--font-display);
	font-size: 1.25rem;
	text-align: right;
	color: #F2F0EA;
	line-height: 1.5;
}
.ct-tours__price strong { color: #E2B7B2; font-weight: 500; }
.ct-tours__price span {
	display: block;
	font-family: var(--font-body);
	font-size: .82rem;
	color: #7E8780;
	margin-top: .4rem;
}

/* ---------- 6 · Pfeiler ---------- */
.ct-pillars__list {
	list-style: none; margin: 0; padding: 0;
	display: grid; gap: 0;
	max-width: 52rem;
}
.ct-pillars__list li {
	padding: 1.3rem 0 1.3rem 1.8rem;
	border-bottom: 1px solid var(--line);
	position: relative;
	font-size: 1.05rem;
}
.ct-pillars__list li:first-child { border-top: 1px solid var(--line); }
.ct-pillars__list li::before {
	content: ""; position: absolute; left: 0; top: 1.95rem;
	width: .8rem; height: 1px; background: var(--seal);
}
.ct-pillars__list strong {
	font-family: var(--font-display);
	font-weight: 500;
	color: var(--ink);
	font-size: 1.12rem;
}

/* ---------- 7 · Vorbereitung ---------- */
.ct-prep { background: var(--paper-deep); }
.ct-prep__grid {
	display: grid;
	grid-template-columns: 1.7fr 1fr;
	gap: clamp(2rem, 5vw, 4rem);
	align-items: start;
}
.ct-prep .ct-h2 { margin-bottom: 1rem; }
.ct-prep__list {
	list-style: none; margin: 1.6rem 0; padding: 0;
	display: grid; gap: .7rem;
}
.ct-prep__list li { padding-left: 1.6rem; position: relative; }
.ct-prep__list li::before {
	content: ""; position: absolute; left: 0; top: .65em;
	width: .7rem; height: 1px; background: var(--seal);
}
.ct-prep__session {
	border-left: 2px solid var(--jade);
	padding-left: 1.2rem;
	font-size: .98rem;
	color: var(--graphite);
	margin: 0;
}
.ct-prep__note {
	background: #FDFCFA;
	border: 1px solid var(--line);
	border-radius: 3px;
	padding: 1.6rem;
	position: sticky; top: 6rem;
}
.ct-prep__note p { margin: 0; font-size: .95rem; }
.ct-prep__note-label {
	font-family: var(--font-display);
	font-size: 1.1rem !important;
	color: var(--seal);
	margin-bottom: .5rem !important;
}

/* ---------- 8 · Über uns / Karte ---------- */
.ct-about__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(2rem, 6vw, 5rem);
	align-items: center;
}
.ct-about__text p { margin: 0 0 1.1rem; }
.ct-about__text .ct-h2 { margin-bottom: 1.2rem; }
.ct-about__credo {
	font-family: var(--font-display);
	font-style: italic;
	font-size: 1.25rem;
	color: var(--seal);
}
.ct-about__map { margin: 0; }
.ct-about__map svg { display: block; width: 100%; }
.ct-map__lines path {
	stroke: var(--jade);
	stroke-dasharray: 5 6;
	opacity: .75;
}
.ct-map__nodes circle { fill: var(--ink); }
.ct-map__nodes .ct-map__node--seal { fill: var(--seal); }
.ct-map__nodes text {
	font-family: var(--font-body);
	font-size: 13px;
	fill: var(--graphite);
	letter-spacing: .02em;
}
.ct-about__map figcaption {
	margin-top: .8rem;
	font-size: .88rem;
	color: #8A8E86;
	text-align: center;
	font-style: italic;
	font-family: var(--font-display);
}

/* ---------- 10 · Erstgespräch ---------- */
.ct-contact { background: var(--paper); border-top: 1px solid var(--line); }
.ct-notice {
	border-radius: 3px;
	padding: 1.1rem 1.4rem;
	margin-bottom: 2rem;
	font-size: .98rem;
}
.ct-notice--ok { background: #EDF3EC; border: 1px solid #BFD2BC; color: #2E4B2E; }
.ct-notice--err { background: #F8ECEA; border: 1px solid #E0BDB8; color: #6E1F18; }

.ct-form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.1rem; }
.ct-form__hp { position: absolute; left: -9999px; top: -9999px; }
.ct-form__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.1rem;
}
.ct-form__field { margin: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: .4rem; }
.ct-form__field label {
	font-size: .85rem; font-weight: 600;
	letter-spacing: .06em; text-transform: uppercase;
	color: var(--graphite);
}
.ct-form__opt { font-weight: 400; text-transform: none; letter-spacing: 0; color: #8A8E86; }
.ct-form__field input,
.ct-form__field select,
.ct-form__field textarea {
	min-width: 0;
	max-width: 100%;
	font-family: var(--font-body);
	font-size: 1rem;
	color: var(--ink);
	background: #FDFCFA;
	border: 1px solid var(--line);
	border-radius: 2px;
	padding: .8rem .95rem;
	width: 100%;
}
.ct-form__field textarea { resize: vertical; }
.ct-form__field input:focus,
.ct-form__field select:focus,
.ct-form__field textarea:focus {
	outline: none;
	border-color: var(--seal);
	box-shadow: 0 0 0 3px rgba(163,39,30,.12);
}
.ct-form__consent {
	display: flex; gap: .7rem; align-items: flex-start;
	font-size: .9rem; margin: .4rem 0 0;
}
.ct-form__consent input { margin-top: .28rem; accent-color: var(--seal); }
.ct-form__consent a { color: var(--seal); }
.ct-form__submit { margin: .6rem 0 0; }

/* ---------- Footer ---------- */
.ct-footer {
	background: var(--ink);
	color: #A9AEA7;
	padding-block: 3rem 2.2rem;
}
.ct-footer__inner { display: grid; gap: 1.6rem; }
.ct-footer__brand { display: flex; align-items: center; gap: .8rem; }
.ct-footer__name {
	font-family: var(--font-display);
	font-size: 1.2rem; color: #F2F0EA; margin: 0;
}
.ct-footer__tag { font-size: .85rem; margin: .1rem 0 0; }
.ct-footer__nav { display: flex; flex-wrap: wrap; gap: 1.4rem; }
.ct-footer__nav a { color: #C9CDC6; text-decoration: none; font-size: .92rem; }
.ct-footer__nav a:hover { color: #F2F0EA; text-decoration: underline; }
.ct-footer__legal { font-size: .82rem; margin: 0; border-top: 1px solid var(--line-dark); padding-top: 1.4rem; }

/* ---------- Scroll-Reveal ---------- */
@media (prefers-reduced-motion: no-preference) {
	body.ct-home .ct-reveal {
		opacity: 0;
		transform: translateY(22px);
		transition: opacity .6s ease, transform .6s ease;
	}
	body.ct-home .ct-reveal.is-visible {
		opacity: 1;
		transform: none;
	}
}

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
	.ct-prep__grid, .ct-about__grid { grid-template-columns: 1fr; }
	.ct-prep__note { position: static; }
	.ct-tours__combine { grid-template-columns: 1fr; }
	.ct-tours__price { text-align: left; }
}

@media (max-width: 760px) {
	.ct-burger { display: flex; }
	.ct-nav {
		position: absolute; top: 100%; left: 0; right: 0;
		background: var(--paper);
		border-bottom: 1px solid var(--line);
		flex-direction: column; align-items: stretch;
		gap: 0;
		padding: .6rem 1.5rem 1.2rem;
		display: none;
	}
	.ct-nav.is-open { display: flex; }
	.ct-nav a { padding-block: .8rem; border-bottom: 0; }
	.ct-nav__cta { text-align: center; margin-top: .6rem; }
	.ct-form__row { grid-template-columns: 1fr; }
	.ct-hero { min-height: 0; }
	.ct-hero__content { padding-bottom: clamp(7rem, 34vw, 11rem); }
}

/* =====================================================
   v2 · Dynamik: Parallax, Ticker, Foto-Slots, Stagger
   ===================================================== */

/* ---------- Scroll-Fortschritt ---------- */
.ct-progress {
	position: fixed; top: 0; left: 0; right: 0; height: 3px;
	z-index: 60; background: transparent; pointer-events: none;
}
.ct-progress span {
	display: block; height: 100%; width: 100%;
	background: var(--seal);
	transform: scaleX(0);
	transform-origin: left center;
}

/* ---------- Foto-Platzhalter (durch <img class="ct-ph__img"> ersetzen) ---------- */
.ct-ph {
	position: relative;
	width: 100%; height: 100%;
	background:
		linear-gradient(145deg, #E9E6DE 0%, #D8D4C9 45%, #C8CCC3 100%);
	overflow: hidden;
}
.ct-ph::after {
	content: attr(data-label);
	position: absolute; inset: auto 0 0 0;
	padding: .5rem .8rem;
	font-family: var(--font-body);
	font-size: .72rem; letter-spacing: .08em; text-transform: uppercase;
	color: #8A8E86;
	background: rgba(247,245,240,.72);
}
.ct-ph--dark { background: linear-gradient(145deg, #2A2F38 0%, #1B1E24 60%, #23282F 100%); }
.ct-ph--dark::after { color: #7E8780; background: rgba(27,30,36,.7); }
body.ct-home .ct-ph__img {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	display: block;
}
.ct-ph:has(.ct-ph__img)::after { display: none; }

/* ---------- Hero v2 ---------- */
.ct-hero__media {
	position: absolute; inset: 0;
	z-index: 0;
	will-change: transform;
}
.ct-hero__media .ct-ph--hero { position: absolute; inset: 0; }
.ct-hero__media .ct-ph--hero::after { bottom: auto; top: 0; text-align: right; }
body.ct-home .ct-hero__ink { position: absolute; inset: 0; width: 100%; height: 100%; }
.ct-hero__scrim {
	position: absolute; inset: 0;
	background:
		linear-gradient(180deg, rgba(247,245,240,.35) 0%, rgba(247,245,240,0) 22%),
		linear-gradient(100deg, rgba(247,245,240,.97) 0%, rgba(247,245,240,.93) 34%, rgba(247,245,240,.72) 56%, rgba(247,245,240,.18) 82%, rgba(247,245,240,0) 100%);
}

@media (prefers-reduced-motion: no-preference) {
	body.ct-home .ct-stagger {
		opacity: 0;
		transform: translateY(26px);
		animation: ctRise .8s cubic-bezier(.22,.8,.32,1) forwards;
		animation-delay: var(--d, 0s);
	}
	@keyframes ctRise { to { opacity: 1; transform: none; } }
}

.ct-hero__scrollcue {
	position: absolute; left: 50%; bottom: 1.6rem; z-index: 2;
	transform: translateX(-50%);
	width: 28px; height: 46px;
	border: 1.5px solid rgba(27,30,36,.45);
	border-radius: 15px;
	display: block;
}
.ct-hero__scrollcue span {
	position: absolute; left: 50%; top: 8px;
	width: 4px; height: 9px; border-radius: 3px;
	background: var(--seal);
	transform: translateX(-50%);
}
@media (prefers-reduced-motion: no-preference) {
	.ct-hero__scrollcue span { animation: ctCue 1.8s ease-in-out infinite; }
	@keyframes ctCue {
		0%, 100% { transform: translate(-50%, 0); opacity: 1; }
		55% { transform: translate(-50%, 16px); opacity: .2; }
	}
}

/* ---------- Trust-Ticker ---------- */
.ct-ticker {
	background: var(--ink);
	overflow: hidden;
	padding-block: .95rem;
}
.ct-ticker__track {
	display: flex; align-items: center; gap: 2.2rem;
	width: max-content;
	white-space: nowrap;
}
.ct-ticker__track span {
	font-family: var(--font-display);
	font-size: 1.02rem;
	color: #EDEBE4;
	letter-spacing: .04em;
}
.ct-ticker__track i {
	font-style: normal;
	color: var(--seal);
}
.ct-ticker__swiss { display: inline-flex; align-items: center; gap: .55rem; }
@media (prefers-reduced-motion: no-preference) {
	.ct-ticker__track { animation: ctTicker 28s linear infinite; }
	@keyframes ctTicker { to { transform: translateX(-50%); } }
	.ct-ticker:hover .ct-ticker__track { animation-play-state: paused; }
}

/* ---------- Pakete v2: 3 Karten mit Bildkopf ---------- */
.ct-tours__grid {
	grid-template-columns: repeat(3, 1fr);
	gap: 1.6rem;
}
.ct-tour {
	padding: 0;
	border-top: 1px solid var(--line);
	overflow: hidden;
}
.ct-tour__media {
	position: relative;
	aspect-ratio: 16 / 10;
	overflow: hidden;
}
.ct-tour__media .ct-ph { position: absolute; inset: 0; }
@media (prefers-reduced-motion: no-preference) {
	.ct-tour__media .ct-ph, .ct-tour__media .ct-ph__img { transition: transform .7s cubic-bezier(.22,.8,.32,1); }
	.ct-tour:hover .ct-tour__media .ct-ph,
	.ct-tour:hover .ct-tour__media .ct-ph__img { transform: scale(1.055); }
}
.ct-tour__media .ct-tour__tag {
	position: absolute; top: .9rem; left: .9rem; z-index: 2;
	margin: 0;
	background: rgba(247,245,240,.92);
	color: var(--ink);
	padding: .35rem .7rem;
	border-radius: 2px;
	font-size: .7rem;
}
.ct-tour__body { padding: 1.6rem 1.6rem 1.5rem; display: flex; flex-direction: column; flex: 1; }
.ct-tour__text { font-size: .96rem; margin: 0 0 1.3rem; flex: 1; }
.ct-tour__cta {
	margin-top: 1.1rem;
	font-weight: 600; font-size: .93rem;
	color: var(--seal); text-decoration: none;
	display: inline-flex; align-items: center; gap: .2rem;
}
.ct-tour__cta span { transition: transform .2s ease; display: inline-block; }
.ct-tour__cta:hover span { transform: translateX(4px); }
@media (prefers-reduced-motion: no-preference) {
	body.ct-home .ct-tour.ct-reveal { transition-delay: var(--d, 0s); }
}

/* ---------- Tibet-Premium-Band ---------- */
.ct-summit {
	margin-top: 2.4rem;
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	background: var(--ink);
	border-radius: 3px;
	overflow: hidden;
	min-height: 380px;
}
.ct-summit__media { position: relative; overflow: hidden; }
.ct-summit__media .ct-ph { position: absolute; inset: -12% 0; height: auto; bottom: -12%; }
.ct-summit__body {
	padding: clamp(1.8rem, 4vw, 3.2rem);
	display: flex; flex-direction: column; justify-content: center;
	color: #C9CDC6;
}
.ct-summit__label {
	font-size: .74rem; font-weight: 600;
	letter-spacing: .2em; text-transform: uppercase;
	color: #E2B7B2;
	margin: 0 0 .8rem;
}
body.ct-home .ct-summit__title {
	font-size: clamp(1.7rem, 3vw, 2.3rem);
	font-weight: 300; color: #F2F0EA;
	margin-bottom: .8rem;
}
.ct-summit__text { margin: 0 0 1.6rem; font-size: .98rem; }
.ct-btn--ghostlight {
	border-color: #C9CDC6; color: #F2F0EA;
	align-self: flex-start;
}
.ct-btn--ghostlight:hover { background: #F2F0EA; color: var(--ink); border-color: #F2F0EA; }

/* ---------- Foto-Band ---------- */
.ct-strip {
	background: var(--paper-deep);
	border-block: 1px solid var(--line);
	padding-block: 2.6rem 2.2rem;
	overflow: clip;
}
.ct-strip__label {
	display: flex; align-items: center; gap: .7rem;
	width: min(var(--shell), 100% - 3rem);
	margin: 0 auto 1.6rem;
	font-size: .78rem; font-weight: 600;
	letter-spacing: .18em; text-transform: uppercase;
	color: var(--jade);
}
.ct-strip__track {
	display: flex; gap: 1rem;
	padding-inline: max(1.5rem, calc(50vw - var(--shell) / 2));
	overflow-x: auto;
	/* Kein eigener vertikaler Scrollbereich: schon ein Pixel Überstand
	   kann Rad-/Wischgesten vom weiteren Seitenlauf abfangen. */
	overflow-y: hidden;
	scroll-snap-type: x proximity;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}
.ct-strip__track::-webkit-scrollbar { display: none; }
.ct-strip__item {
	flex: 0 0 clamp(240px, 26vw, 360px);
	margin: 0;
	scroll-snap-align: start;
}
.ct-strip__item .ct-ph {
	aspect-ratio: 4 / 3;
	height: auto;
	border-radius: 3px;
}
.ct-strip__item figcaption {
	margin-top: .5rem;
	font-family: var(--font-display);
	font-style: italic;
	font-size: .92rem;
	color: var(--graphite);
}
@media (prefers-reduced-motion: no-preference) {
	.ct-strip__item { transition: transform .5s cubic-bezier(.22,.8,.32,1); }
	.ct-strip__item:hover { transform: translateY(-6px); }
}

/* ---------- Freiheitsgrad: Panel-Übergang ---------- */
@media (prefers-reduced-motion: no-preference) {
	.ct-freedom__panel.is-active { animation: ctPanel .4s cubic-bezier(.22,.8,.32,1); }
	@keyframes ctPanel {
		from { opacity: 0; transform: translateY(14px); }
		to   { opacity: 1; transform: none; }
	}
}

/* ---------- Routenkarte: Linien zeichnen sich ---------- */
@media (prefers-reduced-motion: no-preference) {
	#ct-route-map .ct-map__lines path {
		stroke-dasharray: none; /* JS setzt dasharray/dashoffset */
	}
	/* WICHTIG: kein CSS-transform auf den <g>-Nodes — das würde deren
	   SVG-translate-Attribut überschreiben und alle Punkte in den
	   Nullpunkt kollabieren lassen. Nur Opacity animieren. */
	#ct-route-map.is-drawing .ct-map__nodes g {
		opacity: 0;
		transition: opacity .5s ease;
	}
	#ct-route-map.is-drawn .ct-map__nodes g { opacity: 1; }
}

/* ---------- Portrait ---------- */
.ct-about__portrait {
	margin-top: 1.8rem;
	display: flex; align-items: center; gap: 1.1rem;
}
.ct-about__portrait .ct-ph--portrait {
	width: 88px; height: 88px;
	border-radius: 50%;
	flex: 0 0 auto;
}
.ct-about__portrait .ct-ph--portrait::after {
	font-size: .55rem; padding: .2rem .3rem; text-align: center;
}
.ct-about__name { margin: 0; font-size: .95rem; color: var(--graphite); }

/* ---------- Responsive v2 ---------- */
@media (max-width: 1024px) {
	.ct-tours__grid { grid-template-columns: repeat(3, 1fr); gap: 1rem; }
}
@media (max-width: 900px) {
	.ct-tours__grid { grid-template-columns: 1fr; }
	.ct-summit { grid-template-columns: 1fr; min-height: 0; }
	.ct-summit__media { aspect-ratio: 16 / 9; }
	.ct-summit__media .ct-ph { inset: 0; }
}

/* =====================================================
   v3 · Animierte Hero-Tuschegrafik + Rechtsseiten
   ===================================================== */

@media (prefers-reduced-motion: no-preference) {
	.ct-ink__mist--a { animation: ctMistA 46s linear infinite alternate; }
	.ct-ink__mist--b { animation: ctMistB 34s linear infinite alternate; }
	@keyframes ctMistA { from { transform: translateX(0); } to { transform: translateX(340px); } }
	@keyframes ctMistB { from { transform: translateX(0); } to { transform: translateX(-300px); } }

	.ct-ink__sun {
		transform-box: fill-box;
		transform-origin: center;
		animation: ctSun 9s ease-in-out infinite;
	}
	@keyframes ctSun {
		0%, 100% { opacity: .82; transform: scale(1); }
		50% { opacity: .62; transform: scale(1.045); }
	}

	.ct-ink__birds { animation: ctBirds 38s linear infinite; }
	@keyframes ctBirds {
		0%   { transform: translate(0, 0); opacity: 0; }
		6%   { opacity: .85; }
		78%  { opacity: .85; }
		100% { transform: translate(560px, -120px); opacity: 0; }
	}
}

/* ---------- Rechtsseiten (Impressum / Datenschutz / AGB) ----------
   Gleiche Bausteine wie die Startseite: Kopf, Titelband mit Eyebrow,
   Spectral für Überschriften, identischer Fuss. */
body.ct-legal-page { line-height: 1.7; }

.ct-legal__shell { width: min(780px, 100% - 3rem); margin-inline: auto; }

/* Titelband — optisch das Gegenstück zu einem Section-Head der Startseite */
.ct-legal__band {
	background: var(--paper-deep);
	border-bottom: 1px solid var(--line);
	padding-block: clamp(2.6rem, 6vw, 4.5rem);
}
.ct-legal__title {
	font-family: var(--font-display);
	font-weight: 300;
	font-size: clamp(2rem, 5vw, 3rem);
	line-height: 1.12;
	letter-spacing: -.01em;
	color: var(--ink);
	margin: 0;
}
.ct-legal__stand {
	color: var(--jade);
	font-size: .92rem;
	margin: .8rem 0 0;
}

.ct-legal__body { padding-block: clamp(2.6rem, 6vw, 4rem); }

.ct-legal__intro {
	font-family: var(--font-display);
	font-weight: 300;
	font-size: clamp(1.15rem, 2.2vw, 1.4rem);
	line-height: 1.5;
	color: var(--ink);
	margin: 0 0 2.4rem;
	padding-bottom: 2rem;
	border-bottom: 1px solid var(--line);
}

body.ct-legal-page h2 {
	font-family: var(--font-display);
	font-weight: 400;
	font-size: clamp(1.3rem, 2.6vw, 1.6rem);
	color: var(--ink);
	margin: 2.6rem 0 .6rem;
	padding-top: 1.4rem;
	border-top: 1px solid var(--line);
}
body.ct-legal-page h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }

body.ct-legal-page h3 {
	font-family: var(--font-body);
	font-weight: 600;
	font-size: 1rem;
	letter-spacing: .01em;
	color: var(--ink);
	margin: 1.8rem 0 .4rem;
}

.ct-legal p { margin: 0 0 1.1rem; }
.ct-legal a { color: var(--seal); }
.ct-legal a:hover { color: var(--seal-dark); }
.ct-legal ul { padding-left: 1.3rem; margin: .7rem 0 1.2rem; }
.ct-legal li { margin-bottom: .4rem; }
.ct-legal li::marker { color: var(--seal); }
.ct-legal strong { color: var(--ink); font-weight: 600; }

.ct-legal .ct-todo {
	background: #F8ECEA;
	border: 1px dashed var(--seal);
	border-radius: 3px;
	padding: .15rem .45rem;
	font-weight: 600;
	color: #6E1F18;
}

/* Interner Block — sticht bewusst heraus, damit er vor dem Livegang auffällt */
.ct-legal__hinweis {
	background: var(--paper-deep);
	border: 1px solid var(--line);
	border-left: 3px solid var(--seal);
	border-radius: 3px;
	padding: 1.2rem 1.4rem;
	font-size: .93rem;
	line-height: 1.6;
	color: var(--graphite);
	margin: 3rem 0 0;
}
.ct-legal__hinweis strong { color: var(--ink); }

/* Der Fuss der Rechtsseiten trägt einen Link mehr als der der Startseite */
body.ct-legal-page .ct-footer { margin-top: 0; }

/* =====================================================
   v4 · Umbau nach Verbesserungsdokument
   Vergleichstabelle · Galerie-Filter & Lightbox · App-Guide
   Unterlagen-Stufen · Ansprechpartner · Konditionen
   ===================================================== */

/* ---------- Kleiner Button, Gold-Akzent ---------- */
.ct-btn--small { font-size: .85rem; padding: .6rem 1.15rem; }

/* Goldene Haarlinie unter dem Siegel — Markenrichtung Entwurf A/D */
.ct-logo__seal { position: relative; }
.ct-logo__seal::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: -3px;
	height: 2px; background: var(--gold);
	border-radius: 1px;
}

/* Header verträgt sechs Einträge erst ab grossen Breiten */
@media (max-width: 1080px) {
	.ct-nav { gap: 1.1rem; }
	.ct-nav a { font-size: .88rem; }
}

/* ---------- Vergleichstabelle Freiheitsgrad ---------- */
.ct-compare { margin-top: 2.4rem; }
.ct-compare__label {
	font-size: .78rem; font-weight: 600;
	letter-spacing: .18em; text-transform: uppercase;
	color: #7E8780;
	margin: 0 0 1rem;
}
.ct-compare__scroll {
	overflow-x: auto;
	border: 1px solid var(--line-dark);
	border-radius: 4px;
	background: var(--ink-soft);
}
.ct-compare__scroll:focus-visible { outline: 2px solid var(--seal); outline-offset: 2px; }
.ct-compare__table {
	width: 100%;
	min-width: 620px;
	border-collapse: collapse;
	font-size: .92rem;
}
.ct-compare__table th,
.ct-compare__table td {
	text-align: left;
	padding: .85rem 1.1rem;
	border-bottom: 1px solid var(--line-dark);
	vertical-align: top;
}
.ct-compare__table tbody tr:last-child th,
.ct-compare__table tbody tr:last-child td { border-bottom: 0; }
.ct-compare__table thead th {
	font-family: var(--font-display);
	font-weight: 400;
	font-size: 1.02rem;
	color: #F2F0EA;
	border-bottom: 1px solid var(--seal);
	width: 24%;
}
.ct-compare__table thead th:first-child { width: 28%; }
.ct-compare__stage {
	display: block;
	font-family: var(--font-body);
	font-size: .68rem; font-weight: 600;
	letter-spacing: .16em; text-transform: uppercase;
	color: var(--gold);
	margin-bottom: .25rem;
}
.ct-compare__table tbody th {
	font-family: var(--font-body);
	font-weight: 500;
	color: #AEB4AC;
}
.ct-compare__table td { color: #D5D8D1; }
.ct-compare__table td.ct-no { color: #6E7670; }
.ct-yes {
	display: inline-block;
	width: .6rem; height: .32rem;
	margin-right: .5rem;
	border-left: 2px solid var(--gold);
	border-bottom: 2px solid var(--gold);
	transform: rotate(-45deg) translateY(-2px);
}
.ct-compare__note {
	font-size: .88rem;
	color: #7E8780;
	margin: .9rem 0 0;
}
.ct-compare__note strong { color: #AEB4AC; font-weight: 600; }

/* ---------- Touren: Routenzeile und Kombinations-Hinweis ---------- */
.ct-tour__variant {
	display: block;
	font-size: .82rem;
	color: var(--jade);
	font-style: italic;
	margin-top: .15rem;
}
.ct-tours__hint {
	font-family: var(--font-display);
	font-size: 1.08rem;
	line-height: 1.55;
	color: #C9CDC6;
	text-align: right;
	margin: 0;
}
.ct-tours__hint strong { color: #F2F0EA; font-weight: 400; }
@media (max-width: 900px) { .ct-tours__hint { text-align: left; } }

/* ---------- Galerie: Kopf mit Filter ---------- */
.ct-strip__head {
	width: min(var(--shell), 100% - 3rem);
	margin: 0 auto 1.5rem;
	display: flex; flex-wrap: wrap;
	align-items: center; justify-content: space-between;
	gap: .9rem 1.6rem;
}
.ct-strip__head .ct-strip__label { width: auto; margin: 0; }
.ct-strip__filter { display: flex; flex-wrap: wrap; gap: .45rem; }
.ct-strip__filter button {
	font-family: var(--font-body);
	font-size: .82rem; font-weight: 500;
	color: var(--graphite);
	background: transparent;
	border: 1px solid var(--line);
	border-radius: 999px;
	padding: .38rem .95rem;
	cursor: pointer;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.ct-strip__filter button:hover { border-color: var(--seal); color: var(--seal); }
.ct-strip__filter button.is-active {
	background: var(--ink); border-color: var(--ink); color: var(--paper);
}
.ct-strip__item[hidden] { display: none; }

/* Bildfläche wird zum Auslöser der Grossansicht */
.ct-strip__open {
	display: block; width: 100%;
	padding: 0; margin: 0;
	background: none; border: 0;
	cursor: zoom-in;
}
.ct-strip__open .ct-ph { position: relative; }
.ct-strip__open .ct-ph::before {
	content: "";
	position: absolute; inset: 0;
	background: rgba(27,30,36,0);
	transition: background-color .2s ease;
	z-index: 2;
}
.ct-strip__open:hover .ct-ph::before { background: rgba(27,30,36,.16); }

.ct-strip__empty {
	width: min(var(--shell), 100% - 3rem);
	margin: 1.2rem auto 0;
	font-size: .9rem;
	font-style: italic;
	color: var(--jade);
}

/* ---------- Lightbox ---------- */
.ct-lightbox {
	position: fixed; inset: 0; z-index: 200;
	display: flex; align-items: center; justify-content: center;
	gap: clamp(.4rem, 2vw, 1.5rem);
	padding: clamp(1rem, 4vw, 3rem);
	background: rgba(20, 22, 27, .94);
}
.ct-lightbox[hidden] { display: none; }
.ct-lightbox__figure {
	margin: 0;
	min-width: 0;
	max-width: min(1100px, 100%);
	max-height: 100%;
	display: flex; flex-direction: column; align-items: center;
	gap: .9rem;
}
.ct-lightbox__figure img {
	max-width: 100%;
	max-height: 78vh;
	width: auto;
	object-fit: contain;
	border-radius: 3px;
	box-shadow: 0 24px 60px rgba(0,0,0,.5);
}
.ct-lightbox__figure figcaption {
	font-family: var(--font-display);
	font-style: italic;
	font-size: 1.02rem;
	color: #D5D8D1;
	text-align: center;
}
.ct-lightbox__close,
.ct-lightbox__nav {
	flex: 0 0 auto;
	background: rgba(247,245,240,.08);
	border: 1px solid rgba(247,245,240,.2);
	color: #F2F0EA;
	border-radius: 50%;
	cursor: pointer;
	line-height: 1;
	transition: background-color .15s ease;
}
.ct-lightbox__close:hover,
.ct-lightbox__nav:hover { background: rgba(247,245,240,.2); }
.ct-lightbox__nav {
	width: 46px; height: 46px;
	font-size: 1.9rem;
	padding-bottom: .22em;
}
.ct-lightbox__close {
	position: absolute; top: 1rem; right: 1rem;
	width: 42px; height: 42px;
	font-size: 1.6rem;
}
.ct-lightbox__nav[hidden] { display: none; }
@media (max-width: 620px) {
	.ct-lightbox__nav { width: 38px; height: 38px; font-size: 1.5rem; }
	.ct-lightbox__figure img { max-height: 66vh; }
}

/* ---------- Vor der Reise: Nummerierung und Dossier-Aufruf ---------- */
/* Aus der Liste wird eine <ol> — die Nummer macht das Versprechen
   «vier von zwanzig» sichtbar und ersetzt den bisherigen Strich. */
.ct-prep__list { counter-reset: ctPrep; }
.ct-prep__list li {
	counter-increment: ctPrep;
	padding-left: 2.5rem;
}
.ct-prep__list li::before {
	content: counter(ctPrep, decimal-leading-zero);
	position: absolute; left: 0; top: 0;
	width: auto; height: auto;
	background: none;
	font-family: var(--font-display);
	font-size: .95rem;
	color: var(--seal);
	letter-spacing: .06em;
}
.ct-prep__rest {
	display: flex; flex-wrap: wrap; align-items: center;
	gap: .9rem 1.2rem;
	margin: 1.6rem 0 0;
	padding: 1.2rem 1.4rem;
	background: var(--paper-deep);
	border-left: 3px solid var(--gold);
	font-size: 1rem;
}
.ct-prep__rest strong { color: var(--ink); }
.ct-prep__stamp {
	margin: .9rem 0 0 !important;
	font-size: .78rem; font-weight: 600;
	letter-spacing: .14em; text-transform: uppercase;
	color: var(--gold);
}

/* ---------- App-Guide-Auszug ---------- */
.ct-apps { margin-top: clamp(2.5rem, 6vw, 4rem); }
.ct-apps__title {
	font-size: clamp(1.35rem, 2.6vw, 1.8rem);
	font-weight: 300;
	margin-bottom: .5rem;
}
.ct-apps__intro { max-width: 46rem; margin: 0 0 1.4rem; }
.ct-apps__scroll {
	overflow-x: auto;
	border: 1px solid var(--line);
	border-radius: 4px;
	background: #FDFCFA;
}
.ct-apps__scroll:focus-visible { outline: 2px solid var(--seal); outline-offset: 2px; }
.ct-apps__table {
	width: 100%; min-width: 680px;
	border-collapse: collapse;
	font-size: .92rem;
}
.ct-apps__table th,
.ct-apps__table td {
	text-align: left;
	padding: .8rem 1.1rem;
	border-bottom: 1px solid var(--line);
	vertical-align: top;
}
.ct-apps__table tbody tr:last-child th,
.ct-apps__table tbody tr:last-child td { border-bottom: 0; }
.ct-apps__table thead th {
	font-size: .72rem; font-weight: 600;
	letter-spacing: .14em; text-transform: uppercase;
	color: var(--jade);
	background: var(--paper-deep);
	border-bottom: 1px solid var(--line);
}
.ct-apps__table tbody th {
	font-family: var(--font-display);
	font-weight: 400;
	font-size: 1.05rem;
	color: var(--ink);
	white-space: nowrap;
}
.ct-apps__must,
.ct-apps__we {
	display: inline-block;
	font-size: .72rem; font-weight: 600;
	letter-spacing: .1em; text-transform: uppercase;
	padding: .22rem .55rem;
	border-radius: 2px;
}
.ct-apps__must { background: rgba(163,39,30,.1); color: var(--seal); }
.ct-apps__we { background: rgba(92,107,96,.14); color: var(--jade); }
.ct-apps__foot {
	margin: 1rem 0 0;
	font-size: .92rem;
	color: var(--jade);
}

/* ---------- Unterlagen in drei Stufen ---------- */
.ct-tiers { margin-top: clamp(2.5rem, 6vw, 4rem); }
.ct-tiers__title {
	font-size: clamp(1.35rem, 2.6vw, 1.8rem);
	font-weight: 300;
	margin-bottom: 1.4rem;
}
.ct-tiers__list {
	list-style: none; margin: 0; padding: 0;
	display: grid; grid-template-columns: repeat(3, 1fr);
	gap: 1.4rem;
}
.ct-tiers__list li {
	background: #FDFCFA;
	border: 1px solid var(--line);
	border-top: 2px solid var(--gold);
	border-radius: 3px;
	padding: 1.5rem 1.6rem;
}
.ct-tiers__num {
	display: block;
	font-family: var(--font-display);
	font-size: 1.5rem;
	color: var(--line);
	line-height: 1;
	margin-bottom: .7rem;
}
body.ct-home .ct-tiers__list h4 {
	font-family: var(--font-display);
	font-weight: 400;
	font-size: 1.22rem;
	color: var(--ink);
	margin: 0 0 .5rem;
}
.ct-tiers__list p { margin: 0; font-size: .95rem; }
.ct-tiers__list a {
	display: inline-block;
	margin-top: .8rem;
	font-size: .9rem; font-weight: 600;
	color: var(--seal); text-decoration: none;
	border-bottom: 1px solid transparent;
}
.ct-tiers__list a:hover { border-bottom-color: var(--seal); }
@media (max-width: 860px) {
	.ct-tiers__list { grid-template-columns: 1fr; }
}

/* ---------- Ansprechpartner mit Namen und Adresse ---------- */
.ct-person {
	margin-top: 2rem;
	padding: 1.4rem 1.5rem;
	background: var(--paper-deep);
	border-left: 3px solid var(--seal);
	display: flex; align-items: center; gap: 1.3rem;
}
/* Ein gemeinsames Foto beider Gründer statt eines Einzelportraits.
   Das Original ist hochkant (3:4) — der quadratische Ausschnitt mit
   object-position holt die beiden aus dem Himmel nach vorne. */
.ct-person__photo {
	margin: 0;
	flex: 0 0 auto;
	width: 150px;
}
.ct-person__photo .ct-ph {
	aspect-ratio: 1 / 1;
	height: auto;
	border-radius: 3px;
}
body.ct-home .ct-person__photo .ct-ph__img { object-position: center 68%; }
.ct-person__photo figcaption {
	margin-top: .45rem;
	font-family: var(--font-display);
	font-style: italic;
	font-size: .8rem;
	color: var(--jade);
	text-align: center;
}
.ct-person__body { min-width: 0; }
.ct-person__name {
	font-family: var(--font-display);
	font-size: 1.24rem;
	line-height: 1.3;
	color: var(--ink);
	margin: 0;
}
.ct-person__role {
	font-size: .82rem; font-weight: 600;
	letter-spacing: .12em; text-transform: uppercase;
	color: var(--jade);
	margin: .2rem 0 .7rem;
}
.ct-person__contact { margin: 0; font-size: .95rem; }
.ct-person__contact a {
	color: var(--seal); font-weight: 600;
	text-decoration: none;
	border-bottom: 1px solid rgba(163,39,30,.35);
	overflow-wrap: anywhere;
}
.ct-person__contact a:hover { border-bottom-color: var(--seal); }
.ct-person__contact span {
	display: block;
	font-size: .85rem;
	color: var(--jade);
	margin-top: .25rem;
}
@media (max-width: 520px) {
	.ct-person { flex-direction: column; align-items: flex-start; gap: 1rem; }
	.ct-person__photo { width: 128px; }
}

/* ---------- Routenkarte: Farben je Grundroute ---------- */
/* Die alte Regel .ct-map__lines path zeichnete pauschal gestrichelt.
   Hier wieder auf durchgezogen setzen — gestrichelt ist nur noch die
   Variante, das ist jetzt ihre Bedeutung in der Legende. */
#ct-route-map .ct-map__lines path { stroke-dasharray: none; opacity: 1; }
#ct-route-map .ct-map__line--kompakt { stroke: var(--seal); }
#ct-route-map .ct-map__line--delta   { stroke: var(--graphite); }
#ct-route-map .ct-map__line--westen  { stroke: var(--jade); }
#ct-route-map .ct-map__line--tibet   { stroke: var(--gold); }
#ct-route-map .ct-map__lines path.ct-map__line--back { opacity: .55; }
/* Die Variantenlinie behält ihr Strichmuster und ist deshalb von der
   Zeichen-Animation in main.js ausgenommen — sie blendet nur ein. */
#ct-route-map .ct-map__lines path.ct-map__line--variant {
	stroke-dasharray: 6 5;
	opacity: .75;
}
@media (prefers-reduced-motion: no-preference) {
	/* Nur wenn animiert wird, startet sie unsichtbar — sonst bliebe sie
	   dauerhaft weg, weil .is-drawn dann nie gesetzt wird. */
	#ct-route-map.is-drawing .ct-map__lines path.ct-map__line--variant {
		opacity: 0;
		transition: opacity .6s ease .9s;
	}
	#ct-route-map.is-drawn .ct-map__lines path.ct-map__line--variant { opacity: .75; }
}
#ct-route-map .ct-node--kompakt circle { fill: var(--seal); }
#ct-route-map .ct-node--delta circle   { fill: var(--graphite); }
#ct-route-map .ct-node--westen circle  { fill: var(--jade); }
#ct-route-map .ct-node--tibet circle   { fill: var(--gold); }
/* Papierfarbener Halo hinter jeder Beschriftung: Linien und Punkte
   laufen so nie sichtbar durch den Text, auch wenn es eng wird. */
#ct-route-map text {
	font-family: var(--font-body);
	font-size: 12px;
	letter-spacing: 0;
	fill: var(--graphite);
	paint-order: stroke fill;
	stroke: var(--paper);
	stroke-width: 3.5px;
	stroke-linejoin: round;
}

.ct-map__legend {
	list-style: none; margin: 1rem 0 0; padding: 0;
	display: flex; flex-wrap: wrap; gap: .5rem 1.2rem;
	font-size: .82rem;
	color: var(--graphite);
}
.ct-map__legend li { display: flex; align-items: center; gap: .45rem; }
.ct-map__key {
	width: 1.4rem; height: 2px;
	border-radius: 1px;
	flex: 0 0 auto;
}
.ct-map__key--kompakt { background: var(--seal); }
.ct-map__key--delta   { background: var(--graphite); }
.ct-map__key--westen  { background: var(--jade); }
.ct-map__key--tibet   { background: var(--gold); }
.ct-map__key--variant {
	height: 0; border-top: 2px dashed var(--jade);
}

/* ---------- Konditionen ---------- */
.ct-terms { background: var(--paper-deep); border-top: 1px solid var(--line); }
.ct-terms__grid {
	display: grid; grid-template-columns: 1fr 1fr;
	gap: 1.4rem;
	margin-top: 2rem;
}
.ct-terms__card {
	background: #FDFCFA;
	border: 1px solid var(--line);
	border-top: 2px solid var(--seal);
	border-radius: 3px;
	padding: 1.7rem 1.8rem;
}
.ct-terms__label {
	font-size: .74rem; font-weight: 600;
	letter-spacing: .16em; text-transform: uppercase;
	color: var(--jade);
	margin: 0 0 .7rem;
}
.ct-terms__figure {
	font-family: var(--font-display);
	font-size: clamp(1.6rem, 3.2vw, 2.1rem);
	font-weight: 300;
	color: var(--ink);
	line-height: 1.1;
	margin: 0 0 .9rem;
}
.ct-terms__text { margin: 0; font-size: .96rem; }
.ct-terms__text strong { color: var(--ink); }
.ct-terms__foot {
	margin: 1.6rem 0 0;
	font-family: var(--font-display);
	font-style: italic;
	font-size: 1.05rem;
	color: var(--graphite);
}
@media (max-width: 720px) {
	.ct-terms__grid { grid-template-columns: 1fr; }
}

/* ---------- Antwortversprechen und Direktkontakt ---------- */
.ct-promise {
	display: flex; align-items: flex-start; gap: .75rem;
	margin: 0 0 1.8rem;
	padding: .95rem 1.2rem;
	background: var(--paper-deep);
	border-left: 3px solid var(--jade);
	font-size: 1rem;
}
.ct-promise strong { color: var(--ink); }
.ct-promise__dot {
	flex: 0 0 auto;
	width: .55rem; height: .55rem;
	margin-top: .45rem;
	border-radius: 50%;
	background: var(--jade);
}

.ct-direct {
	margin: 1.8rem 0 0;
	padding-top: 1.4rem;
	border-top: 1px solid var(--line);
	font-size: .95rem;
	color: var(--graphite);
}
.ct-direct a {
	color: var(--seal); font-weight: 600;
	text-decoration: none;
	border-bottom: 1px solid rgba(163,39,30,.35);
	overflow-wrap: anywhere;
}
.ct-direct a:hover { border-bottom-color: var(--seal); }

.ct-notice a { color: inherit; font-weight: 600; overflow-wrap: anywhere; }
.ct-notice:focus-visible { outline: 2px solid var(--seal); outline-offset: 3px; }

/* ---------- Formular: Themenauswahl ---------- */
.ct-form__interests {
	min-width: 0; max-width: 100%; border: 0; padding: 0; margin: .4rem 0 0;
}
.ct-form__interests legend {
	max-width: 100%;
	padding: 0;
	font-size: .85rem; font-weight: 600;
	letter-spacing: .06em; text-transform: uppercase;
	color: var(--graphite);
	margin-bottom: .7rem;
}
.ct-chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.ct-chip input {
	position: absolute;
	width: 1px; height: 1px;
	overflow: hidden; clip: rect(0 0 0 0);
	white-space: nowrap;
}
.ct-chip label {
	display: inline-block;
	font-size: .88rem;
	color: var(--graphite);
	background: #FDFCFA;
	border: 1px solid var(--line);
	border-radius: 999px;
	padding: .42rem 1rem;
	cursor: pointer;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.ct-chip label:hover { border-color: var(--seal); color: var(--seal); }
.ct-chip input:checked + label {
	background: var(--seal); border-color: var(--seal); color: #FDFCFA;
}
.ct-chip input:focus-visible + label {
	outline: 2px solid var(--seal); outline-offset: 2px;
}

.ct-form__consent--dossier {
	padding: .9rem 1.1rem;
	background: var(--paper-deep);
	border-left: 3px solid var(--gold);
	margin-top: .8rem;
}
.ct-form__consent--dossier strong { color: var(--ink); }

/* ---------- Fusszeile: Direktadresse ---------- */
.ct-footer__mail { margin: .5rem 0 0; font-size: .92rem; }
.ct-footer__mail a {
	color: #C9CDC6;
	text-decoration: none;
	border-bottom: 1px solid rgba(201,205,198,.35);
}
.ct-footer__mail a:hover { color: #F2F0EA; border-bottom-color: #F2F0EA; }

/* ---------- Mobile Navigation ab 1024px ---------- */
@media (max-width: 1024px) {
	.ct-burger { display: flex; }
	.ct-nav {
		position: absolute; top: 100%; left: 0; right: 0;
		background: var(--paper);
		border-bottom: 1px solid var(--line);
		flex-direction: column; align-items: stretch;
		gap: 0;
		padding: .6rem 1.5rem 1.2rem;
		display: none;
	}
	.ct-nav.is-open { display: flex; }
	.ct-nav a { padding-block: .8rem; border-bottom: 0; font-size: 1rem; }
	.ct-nav__cta { text-align: center; margin-top: .6rem; }
}

/* =====================================================
   v5 · Branchenstandards auf der Startseite
   ===================================================== */

/* Rolle, Preisbasis, Versicherung, Dokumente — die Angaben, die
   kleine Schweizer Anbieter offen ausweisen. */
.ct-standards {
	list-style: none;
	margin: 2.6rem 0 0;
	padding: 1.8rem 0 0;
	border-top: 1px solid var(--line);
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1.6rem 2.4rem;
}
.ct-standards li { margin: 0; }
body.ct-home .ct-standards h3 {
	font-family: var(--font-body);
	font-size: .74rem;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--jade);
	margin: 0 0 .45rem;
	padding-left: 1.1rem;
	position: relative;
}
body.ct-home .ct-standards h3::before {
	content: "";
	position: absolute; left: 0; top: .5em;
	width: .6rem; height: 1px;
	background: var(--seal);
}
.ct-standards p {
	margin: 0;
	font-size: .93rem;
	line-height: 1.6;
	color: var(--graphite);
	padding-left: 1.1rem;
}
.ct-standards strong { color: var(--ink); }
@media (max-width: 720px) {
	.ct-standards { grid-template-columns: 1fr; gap: 1.3rem; }
}

.ct-terms__legal {
	margin: 1.8rem 0 0;
	padding-top: 1.4rem;
	border-top: 1px solid var(--line);
	font-size: .88rem;
	color: #8A8E86;
}
.ct-terms__legal a { color: var(--seal); }

/* Hinweis direkt beim Absende-Knopf */
.ct-form__submit { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1.2rem; }
.ct-form__terms {
	font-size: .85rem;
	color: #8A8E86;
	max-width: 28rem;
}
.ct-form__terms a { color: var(--seal); }

/* Dieselben Tabellen und Spalten auf allen Bildschirmgrössen. */
.ct-table-hint { display: none; }
@media (max-width: 720px) {
	.ct-table-hint { display: flex; align-items: center; gap: .6rem; margin: .7rem 0; font-size: .78rem; color: var(--jade); }
	.ct-table-hint--light { color: #d8c9a8; }
	.ct-compare__scroll, .ct-apps__scroll { overscroll-behavior-x: contain; scrollbar-width: thin; scrollbar-color: var(--gold) transparent; }
}

/* ---------- Routenkarte: Beschriftung skaliert mit ---------- */
/* Der viewBox ist 548 Einheiten breit. In einer 340-px-Spalte werden aus
   12 px rund 7 px — unlesbar. Deshalb schrittweise grösser. */
@media (max-width: 900px) {
	#ct-route-map text { font-size: 15px; stroke-width: 4px; }
}
@media (max-width: 560px) {
	#ct-route-map text { font-size: 18px; stroke-width: 5px; }
	#ct-route-map .ct-map__lines path { stroke-width: 3.2px; }
	#ct-route-map circle { r: 6; }
}

@media (max-width: 600px) {
	/* Galerie: der Streifen klebte links am Rand */
	.ct-strip__track { padding-inline: 1.5rem; }

	/* Grössere Tippflächen für die Filter- und Themen-Chips */
	.ct-strip__filter button,
	.ct-chip label { padding-block: .55rem; }
}

@media (max-width: 480px) {
	/* Zwei unterschiedlich breite Knöpfe untereinander wirkten ausgefranst */
	.ct-hero__actions { flex-direction: column; align-items: stretch; }
	.ct-hero__actions .ct-btn { text-align: center; }

	.ct-form__submit .ct-btn--big { width: 100%; text-align: center; }
	.ct-btn--big { font-size: 1rem; padding: .95rem 1.6rem; }
}

/* =====================================================
   v6 · Reisetagebuch: klare Typografie, echte Bilder,
   Reisemomente zum Auswählen. Inhalte bleiben ohne JS sichtbar.
   ===================================================== */
body.ct-home { --shell: 1280px; }
body.ct-home [hidden] { display: none !important; }
body.ct-home :is(section, article, aside)[id] { scroll-margin-top: 6.5rem; }
body.ct-home .ct-header__inner { padding-block: 1.1rem; }
body.ct-home .ct-logo__seal { padding: .5rem; }
body.ct-home .ct-nav { gap: clamp(.8rem, 1.5vw, 1.6rem); }
body.ct-home .ct-nav a { font-size: .85rem; }
body.ct-home .ct-btn { min-height: 48px; }

.ct-hero--editorial {
	min-height: 0;
	overflow: clip;
	background: radial-gradient(ellipse at 82% 28%, #e9e4d9 0, transparent 52%), var(--paper);
}
.ct-hero__layout {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	gap: clamp(2rem, 5vw, 5.2rem);
	padding-block: 4.8rem 5rem;
}
.ct-hero__intro { padding-block: 1.5rem; position: relative; z-index: 2; }
.ct-hero--editorial .ct-hero__eyebrow {
	display: flex; align-items: center; gap: .75rem;
	font-size: .67rem; letter-spacing: .13em; margin-bottom: 2rem;
}
.ct-hero__eyebrow .ct-swisscross { background: var(--seal); flex-shrink: 0; }
body.ct-home .ct-hero--editorial .ct-hero__title {
	font-size: clamp(3.2rem, 5.6vw, 5.1rem);
	line-height: 1.08; letter-spacing: -.04em;
}
.ct-hero--editorial .ct-hero__title em { color: var(--seal); font-weight: 300; }
.ct-hero__slogan { font-size: .94rem; font-weight: 600; margin: 1.7rem 0 .6rem; }
.ct-hero--editorial .ct-hero__sub {
	font-family: var(--font-body); font-size: 1rem; font-weight: 400;
	line-height: 1.8; max-width: 28rem; margin: 0 0 1.8rem;
}
.ct-hero--editorial .ct-hero__actions { align-items: center; gap: 1.3rem; }
.ct-hero--editorial .ct-btn { display: inline-flex; align-items: center; gap: 1.8rem; padding: .95rem 1.25rem; font-size: .84rem; }
.ct-hero--editorial .ct-btn span { font-size: 1.3rem; line-height: 1; }
.ct-hero__link { display: inline-flex; gap: 1rem; align-items: center; min-height: 48px; color: var(--ink); font-size: .84rem; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.ct-hero__note { font-size: .75rem; margin: .8rem 0 2.2rem; color: #62675e; }
.ct-hero__signature { display: flex; gap: .8rem; align-items: center; max-width: 27rem; }
body.ct-home .ct-hero__signature img { width: 52px; height: 52px; object-fit: cover; border-radius: 50%; }
.ct-hero__signature p { display: grid; gap: .1rem; margin: 0; font-size: .72rem; }
.ct-hero__signature strong { color: var(--ink); font-size: .85rem; font-weight: 500; }
.ct-hero__signature-line { flex: 1; height: 1px; background: var(--line); margin-left: .6rem; }
.ct-hero__visual { display: grid; gap: 1rem; position: relative; min-width: 0; padding: 0; }
.ct-hero__visual-meta { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-width: 0; }
.ct-hero__frame {
	position: relative; height: auto; width: 100%; aspect-ratio: 16 / 10; transform: none;
	overflow: hidden; background: var(--jade);
	border-radius: 3px;
}
body.ct-home .ct-hero__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; object-position: center; transform: none; }
.ct-hero__frame::after { content: none; }
.ct-hero__stamp { position: static; display: grid; flex: 0 0 auto; gap: .25rem; text-align: center; padding: .45rem .65rem; color: var(--seal); background: var(--paper); border: 1px solid var(--seal); transform: none; font-size: 1.1rem; line-height: 1.15; }
.ct-hero__stamp span { font-size: .45rem; letter-spacing: .08em; text-transform: uppercase; }
.ct-hero__caption {
	position: static; width: 100%; min-height: 0; padding: .25rem 0 .75rem;
	background: none; box-shadow: none; border: 0; border-bottom: 1px solid var(--line);
}
.ct-hero__chapter { margin: 0 0 .7rem; font-size: .7rem; letter-spacing: .13em; color: var(--jade); text-transform: uppercase; }
body.ct-home .ct-hero__caption h2 { font-size: 1.55rem; line-height: 1.15; letter-spacing: -.025em; }
.ct-hero__caption h2 + p { font-size: .8rem; line-height: 1.6; margin: .65rem 0 1.1rem; max-width: 17rem; }
.ct-hero__caption a { display: flex; align-items: center; justify-content: space-between; gap: .8rem; min-height: 44px; padding-top: .8rem; border-top: 1px solid var(--line); color: var(--seal); font-weight: 600; font-size: .875rem; text-decoration: none; }
.ct-hero__caption a > span { font-weight: 400; color: var(--graphite); font-size: .8rem; display: flex; align-items: center; gap: .6rem; }
.ct-hero__caption a > span > span { color: var(--seal); font-size: 1.1rem; }
.ct-hero__caption a:hover { text-decoration: underline; text-underline-offset: 3px; }
.ct-hero__choices { position: static; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; }
.ct-hero__choices button { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: .4rem; padding: .4rem; min-height: 80px; background: none; color: #62675e; border: 0; border-bottom: 2px solid transparent; cursor: pointer; font-family: var(--font-body); font-size: .8125rem; }
body.ct-home .ct-hero__choices img { width: 56px; height: 34px; object-fit: cover; border-radius: 2px; }
.ct-hero__choices button span { font-size: inherit; color: inherit; }
.ct-hero__choices button[aria-pressed="true"] { color: var(--seal); border-color: var(--seal); }
.ct-hero__choices button:hover { background: var(--paper-deep); }
.ct-hero__load-status:empty { display: none; }
.ct-hero__load-status:not(:empty) { position: static; margin: 0; font-size: .75rem; line-height: 1.5; color: var(--seal); }

.ct-proof { background: var(--paper-deep); border-bottom: 1px solid var(--line); }
.ct-proof__inner { display: grid; grid-template-columns: 1.2fr 1fr 1fr 1.1fr; align-items: center; gap: 1.5rem; padding-block: 1.6rem; }
.ct-proof__inner p { margin: 0; display: grid; gap: .15rem; font-size: .75rem; }
.ct-proof__inner p:first-child { display: flex; align-items: center; gap: .8rem; }
.ct-proof__inner p + p { border-left: 1px solid #d7d1c2; padding-left: 1.5rem; }
.ct-proof__inner strong { font-size: .8rem; font-weight: 500; color: var(--ink); }
.ct-proof__mark { font-size: 2rem; color: var(--seal); line-height: 1; }

/* Weniger Tabellen auf einmal, Details genau dort, wo sie gebraucht werden. */
.ct-disclosure { border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); padding-block: 1rem; }
.ct-disclosure > summary { cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 44px; list-style: none; color: #eeeae1; font-size: .95rem; }
.ct-disclosure > summary::-webkit-details-marker { display: none; }
.ct-disclosure > summary > span { font-size: 1.4rem; font-weight: 300; }
.ct-disclosure[open] > summary > span { transform: rotate(45deg); }
.ct-disclosure[open] > summary { margin-bottom: 1rem; }
.ct-strip__navigation { width: min(var(--shell), 100% - 3rem); margin: 0 auto 1.3rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.ct-strip__navigation > span { font-family: var(--font-display); font-size: 1.25rem; }
.ct-strip__navigation > div { display: flex; gap: .5rem; }
.ct-strip__navigation button { width: 46px; height: 46px; font-size: 1.2rem; background: transparent; border: 1px solid var(--line); color: var(--ink); cursor: pointer; border-radius: 50%; }
.ct-strip__navigation button:hover:enabled { color: var(--paper); background: var(--ink); border-color: var(--ink); }
.ct-strip__navigation button:disabled { opacity: .35; cursor: default; }
.ct-apps__sources { font-size: .78rem; color: var(--graphite); margin-top: .7rem; }
.ct-apps__sources a { color: var(--seal); text-underline-offset: 3px; }
body.ct-home .ct-tour { border: 1px solid var(--line); background: #fdfcf9; border-radius: 3px; }
body.ct-home .ct-tour__title { font-size: 1.8rem; }
body.ct-home .ct-tour__media .ct-ph { transition: none; transform: none; }
body.ct-home .ct-section { padding-block: clamp(3.5rem, 7vw, 6.5rem); }

@media (max-width: 1120px) {
	body.ct-home .ct-nav { gap: .8rem; }
	body.ct-home .ct-nav a { font-size: .78rem; }
	.ct-hero__layout { gap: 2.5rem; padding-block: 3rem 4rem; }
	.ct-hero--editorial .ct-hero__actions { gap: .4rem 1rem; }
	.ct-hero--editorial .ct-hero__eyebrow { font-size: .6rem; letter-spacing: .08em; }
}
@media (max-width: 980px) {
	body.ct-home .ct-burger { display: flex; min-width: 44px; min-height: 44px; justify-content: center; }
	body.ct-home .ct-nav { position: absolute; top: 100%; left: 0; right: 0; display: none; flex-direction: column; align-items: stretch; background: var(--paper); border-bottom: 1px solid var(--line); gap: 0; padding: .6rem 1.5rem 1.2rem; }
	body.ct-home .ct-nav.is-open { display: flex; }
	body.ct-home .ct-nav a { padding-block: .8rem; font-size: .95rem; }
	.ct-hero__layout { gap: 2rem; }
	body.ct-home .ct-hero--editorial .ct-hero__title { font-size: clamp(2.8rem, 5.3vw, 3.6rem); }
	.ct-hero--editorial .ct-hero__eyebrow { max-width: 15rem; line-height: 1.7; }
	.ct-hero__signature { margin-top: 1.4rem; }
	.ct-proof__inner { grid-template-columns: repeat(2, 1fr); gap: 1.3rem; }
	.ct-proof__inner p:nth-child(3) { border-left: 0; padding-left: 0; }
}
@media (max-width: 720px) {
	.ct-hero__layout { grid-template-columns: 1fr; padding-block: 1.9rem 3.7rem; gap: 2.5rem; }
	.ct-hero__intro { padding: 0; }
	.ct-hero--editorial .ct-hero__eyebrow { max-width: none; margin-bottom: 1.3rem; font-size: .6rem; }
	body.ct-home .ct-hero--editorial .ct-hero__title { font-size: clamp(3rem, 9.8vw, 4.4rem); }
	.ct-hero__slogan { margin-top: 1.2rem; font-size: .87rem; }
	.ct-hero--editorial .ct-hero__sub { max-width: 34rem; font-size: .9rem; margin-bottom: 1.4rem; }
	.ct-hero--editorial .ct-hero__actions { flex-direction: row; align-items: center; gap: .4rem 1.1rem; }
	.ct-hero--editorial .ct-btn { font-size: .77rem; gap: .9rem; padding: .9rem 1rem; }
	.ct-hero__link { font-size: .77rem; gap: .5rem; }
	.ct-hero__note { font-size: .7rem; margin-bottom: 0; }
	.ct-proof__inner { gap: 1rem .75rem; padding-block: 1.3rem; }
	.ct-proof__inner strong { font-size: .73rem; }
	.ct-proof__inner p { font-size: .7rem; }
	.ct-proof__inner p + p { padding-left: .8rem; }
	.ct-proof__inner p:nth-child(3) { padding-left: 0; }
	.ct-proof__mark { font-size: 1.6rem; }
	.ct-strip__navigation > span { font-size: 1rem; }
}
@media (max-width: 480px) {
	.ct-hero--editorial .ct-hero__actions { flex-direction: column; align-items: stretch; }
	.ct-hero--editorial .ct-btn, .ct-hero__link { justify-content: center; font-size: .9rem; }
	.ct-hero__caption a { flex-wrap: wrap; gap: .35rem .75rem; }
}
@media (prefers-reduced-motion: reduce) {
	body.ct-home *, body.ct-home *::before, body.ct-home *::after {
		animation: none !important; transition: none !important; scroll-behavior: auto !important;
	}
	body.ct-home .ct-reveal { opacity: 1 !important; transform: none !important; }
}
