/* ==========================================================================
   KAUSTYA ROBOTICS — home template

   A deliberately different register from the corporate pages: technical
   rather than glossy. Rules and numbering instead of drop shadows, a
   monospace voice for anything that behaves like a specification, and a dark
   hero with a faint engineering grid behind it.
   ========================================================================== */

.rb {
	--rb-ink: #0A1628;
	--rb-ink-2: #33445E;
	--rb-line: rgba(10, 22, 40, .12);
	--rb-line-soft: rgba(10, 22, 40, .07);
	--rb-alt: #F4F7FB;
	--rb-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
}

[data-theme="dark"] .rb {
	--rb-ink: #F1F5F9;
	--rb-ink-2: rgba(241, 245, 249, .72);
	--rb-line: rgba(255, 255, 255, .13);
	--rb-line-soft: rgba(255, 255, 255, .08);
	--rb-alt: rgba(255, 255, 255, .03);
}

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

.rb-eyebrow {
	margin: 0 0 12px;
	font-family: var(--rb-mono);
	font-size: .74rem;
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--color-primary);
}

.rb-eyebrow--light { color: #7FC0FF; }

.rb-h2 {
	margin: 0;
	font-family: var(--font-display);
	font-size: clamp(1.55rem, 3.4vw, 2.5rem);
	font-weight: 800;
	line-height: 1.14;
	letter-spacing: -.02em;
	color: var(--rb-ink);
}

.rb-h3 {
	margin: 0 0 16px;
	font-family: var(--font-display);
	font-size: 1.12rem;
	font-weight: 700;
	color: var(--rb-ink);
}

.rb-lead {
	margin: 16px 0 0;
	max-width: 62ch;
	font-size: 1rem;
	line-height: 1.7;
	color: var(--rb-ink-2);
}

.rb-head { margin-bottom: 44px; max-width: 900px; }
.rb-head--light .rb-h2,
.rb-head--light .rb-lead { color: #fff; }
.rb-head--light .rb-lead { color: rgba(255, 255, 255, .76); }

.rb-abbr {
	display: inline-block;
	margin-left: 12px;
	padding: 4px 12px;
	font-family: var(--rb-mono);
	font-size: .68em;
	font-weight: 600;
	letter-spacing: .08em;
	color: #7FC0FF;
	border: 1px solid rgba(127, 192, 255, .45);
	border-radius: 999px;
	vertical-align: middle;
}

.rb-section { padding: clamp(56px, 8vw, 104px) 0; }
.rb-section--alt { background: var(--rb-alt); }

.rb-section--dark {
	background: var(--rb-ink, #0A1628);
	background-image: linear-gradient(160deg, #0A1628 0%, #12294A 100%);
}

[data-theme="dark"] .rb-section--dark { background-image: linear-gradient(160deg, #060F1E 0%, #0E2140 100%); }

/* ---------------- buttons ---------------- */

.rb-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 14px 28px;
	font-family: var(--font-body);
	font-size: .99rem;
	font-weight: 700;
	text-decoration: none;
	border: 1px solid transparent;
	border-radius: 999px;
	cursor: pointer;
	transition: background-color .16s ease, color .16s ease, border-color .16s ease, transform .16s ease;
}

.rb-btn--solid { color: #fff; background: var(--color-primary); }
.rb-btn--solid:hover { background: var(--color-primary-dark, var(--color-primary)); transform: translateY(-1px); color: #fff; }

.rb-btn--line { color: #fff; border-color: rgba(255, 255, 255, .42); background: transparent; }
.rb-btn--line:hover { border-color: #fff; background: rgba(255, 255, 255, .1); color: #fff; }

.rb-section--alt .rb-btn--line,
.rb-section .rb-btn--line { color: var(--rb-ink); border-color: var(--rb-line); }

/* ---------------- hero ---------------- */

.rb-hero {
	position: relative;
	overflow: hidden;
	padding: clamp(90px, 13vw, 150px) 0 0;
	background: #0A1628;
	background-image: linear-gradient(155deg, #0A1628 0%, #123059 55%, #0D2244 100%);
	color: #fff;
}

.rb-hero__grid {
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(127, 192, 255, .07) 1px, transparent 1px),
		linear-gradient(90deg, rgba(127, 192, 255, .07) 1px, transparent 1px);
	background-size: 56px 56px;
	mask-image: radial-gradient(120% 90% at 20% 0%, #000 35%, transparent 78%);
	-webkit-mask-image: radial-gradient(120% 90% at 20% 0%, #000 35%, transparent 78%);
	pointer-events: none;
}

.rb-hero__inner { position: relative; padding-bottom: clamp(50px, 7vw, 82px); }

.rb-hero__title {
	margin: 0 0 20px;
	max-width: 16ch;
	font-family: var(--font-display);
	font-size: clamp(2.3rem, 6.2vw, 4.4rem);
	font-weight: 800;
	line-height: 1.02;
	letter-spacing: -.03em;
	color: #fff;
}

.rb-hero__lead {
	margin: 0 0 32px;
	max-width: 58ch;
	font-size: clamp(1rem, 1.5vw, 1.12rem);
	line-height: 1.68;
	color: rgba(255, 255, 255, .8);
}

.rb-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }

/* KG → PhD */
.rb-spectrum {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 14px;
	margin-top: clamp(44px, 6vw, 68px);
	padding-top: 26px;
	border-top: 1px solid rgba(255, 255, 255, .16);
}

.rb-spectrum__cap {
	font-family: var(--rb-mono);
	font-size: clamp(1.1rem, 2.4vw, 1.6rem);
	font-weight: 700;
	letter-spacing: .04em;
	color: #7FC0FF;
}

.rb-spectrum__line {
	position: relative;
	height: 2px;
	background: linear-gradient(90deg, #7FC0FF, rgba(127, 192, 255, .18));
	border-radius: 2px;
}

.rb-spectrum__note {
	grid-column: 1 / -1;
	margin: 4px 0 0;
	font-size: .95rem;
	color: rgba(255, 255, 255, .64);
}

/* Offer ticker */
.rb-ticker {
	position: relative;
	overflow: hidden;
	border-top: 1px solid rgba(255, 255, 255, .14);
	background: rgba(0, 0, 0, .22);
}

.rb-ticker__track {
	display: flex;
	gap: 0;
	width: max-content;
	animation: rb-scroll 34s linear infinite;
}

.rb-ticker__item {
	flex: none;
	padding: 15px 34px;
	font-family: var(--rb-mono);
	font-size: .88rem;
	font-weight: 600;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .68);
	border-right: 1px solid rgba(255, 255, 255, .12);
	white-space: nowrap;
}

@keyframes rb-scroll { to { transform: translateX(-50%); } }

.rb-ticker:hover .rb-ticker__track { animation-play-state: paused; }

/* ---------------- stats ---------------- */

.rb-stats { border-bottom: 1px solid var(--rb-line); background: var(--rb-alt); }

.rb-stats__inner {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.rb-stat { padding: 30px 22px; border-left: 1px solid var(--rb-line); }
.rb-stat:first-child { border-left: 0; padding-left: 0; }

.rb-stat__n {
	display: block;
	font-family: var(--font-display);
	font-size: clamp(1.5rem, 3.4vw, 2.3rem);
	font-weight: 800;
	line-height: 1;
	color: var(--color-primary);
}

.rb-stat__l {
	display: block;
	margin-top: 8px;
	font-size: .91rem;
	line-height: 1.45;
	color: var(--rb-ink-2);
}

/* ---------------- capabilities ---------------- */

.rb-caps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; }

.rb-cap { padding: 30px 26px; border-left: 1px solid var(--rb-line); }
.rb-cap:first-child { border-left: 0; padding-left: 0; }

.rb-cap__n {
	display: block;
	margin-bottom: 16px;
	font-family: var(--rb-mono);
	font-size: .89rem;
	font-weight: 600;
	color: var(--color-primary);
}

.rb-cap__t { margin: 0 0 10px; font-family: var(--font-display); font-size: 1.08rem; font-weight: 700; color: var(--rb-ink); }
.rb-cap__p { margin: 0; font-size: .97rem; line-height: 1.65; color: var(--rb-ink-2); }

/* ---------------- partners ---------------- */

.rb-region { margin-bottom: 42px; }

.rb-region__h {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 18px;
	padding-bottom: 12px;
	font-family: var(--font-display);
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--rb-ink);
	border-bottom: 1px solid var(--rb-line);
}

.rb-region__code {
	padding: 3px 9px;
	font-family: var(--rb-mono);
	font-size: .72rem;
	letter-spacing: .1em;
	color: var(--color-primary);
	background: rgba(var(--color-primary-rgb), .1);
	border-radius: 5px;
}

.rb-partners { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 1px; background: var(--rb-line); }

.rb-partner {
	padding: 20px;
	background: var(--card, #fff);
	transition: background-color .18s ease;
}

[data-theme="dark"] .rb-partner { background: #0F1B30; }
.rb-partner:hover { background: rgba(var(--color-primary-rgb), .05); }

.rb-partner__n { margin: 0 0 6px; font-family: var(--font-display); font-size: 1.03rem; font-weight: 700; color: var(--rb-ink); }
.rb-partner__c { margin: 0 0 8px; font-family: var(--rb-mono); font-size: .74rem; letter-spacing: .04em; color: var(--color-primary); }
.rb-partner__d { margin: 0; font-size: .91rem; line-height: 1.55; color: var(--rb-ink-2); }

/* ---------------- collaboration slider ---------------- */

.collab-slider {
	--collab-fade: 650ms;
	position: relative;
	max-width: 320px;
	margin: 0 auto;
}

.collab-slider__track {
	position: relative;
	width: 100%;
	aspect-ratio: 2 / 3;
	overflow: hidden;
	background: var(--card, #fff);
	border: 1px solid var(--rb-line);
	border-radius: 18px;
	box-shadow: 0 18px 44px -22px rgba(10, 22, 40, .28);
}

.collab-slide {
	position: absolute;
	inset: 0;
	margin: 0;
	opacity: 0;
	visibility: hidden;
	transition: opacity var(--collab-fade) var(--ease-in-out, ease), visibility var(--collab-fade);
}

.collab-slide.is-active {
	opacity: 1;
	visibility: visible;
	z-index: 1;
}

.collab-slide__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
	background: var(--card, #fff);
}

.collab-slider__controls {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 18px;
	margin-top: 22px;
}

.collab-slider__arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	flex: 0 0 auto;
	color: var(--rb-ink);
	background: var(--card, #fff);
	border: 1px solid var(--rb-line);
	border-radius: 50%;
	cursor: pointer;
	transition: background-color .16s ease, border-color .16s ease, color .16s ease;
}

.collab-slider__arrow:hover {
	color: #fff;
	background: var(--color-primary);
	border-color: var(--color-primary);
}

.collab-slider__dots {
	display: flex;
	align-items: center;
	gap: 9px;
}

.collab-slider__dot {
	width: 9px;
	height: 9px;
	padding: 0;
	background: var(--rb-line);
	border: 0;
	border-radius: 50%;
	cursor: pointer;
	transition: background-color .16s ease, transform .16s ease;
}

.collab-slider__dot.is-active {
	background: var(--color-primary);
	transform: scale(1.25);
}

@media (min-width: 640px) {
	.collab-slider { max-width: 400px; }
}

@media (min-width: 1024px) {
	.collab-slider { max-width: 460px; }
}

@media (max-width: 480px) {
	.collab-slider { max-width: 280px; }
	.collab-slider__track { border-radius: 14px; }
	.collab-slider__controls { gap: 14px; margin-top: 18px; }
	.collab-slider__arrow { width: 36px; height: 36px; }
}

@media (prefers-reduced-motion: reduce) {
	.collab-slide { transition: none; }
}

/* ---------------- programmes ---------------- */

.rb-progs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }

.rb-prog {
	padding: 30px;
	background: var(--card, #fff);
	border: 1px solid var(--rb-line);
	border-radius: 16px;
	transition: border-color .18s ease, transform .18s ease;
}

[data-theme="dark"] .rb-prog { background: rgba(255, 255, 255, .03); }
.rb-prog:hover { border-color: var(--color-primary); transform: translateY(-2px); }

.rb-prog__k {
	margin: 0 0 10px;
	font-family: var(--rb-mono);
	font-size: .72rem;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--color-primary);
}

.rb-prog__t { margin: 0 0 12px; font-family: var(--font-display); font-size: 1.24rem; font-weight: 700; color: var(--rb-ink); }
.rb-prog__p { margin: 0 0 18px; font-size: .99rem; line-height: 1.65; color: var(--rb-ink-2); }

/* ---------------- lists ---------------- */

.rb-list { margin: 0; padding: 0; list-style: none; }

.rb-list li {
	position: relative;
	padding: 7px 0 7px 22px;
	font-size: .96rem;
	line-height: 1.55;
	color: var(--rb-ink-2);
}

.rb-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 15px;
	width: 10px;
	height: 1px;
	background: var(--color-primary);
}

.rb-list--light li { color: rgba(255, 255, 255, .78); }
.rb-list--light li::before { background: #7FC0FF; }

/* ---------------- surgery tracks ---------------- */

.rb-tracks { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin-bottom: 34px; }

.rb-track {
	padding: 24px;
	background: rgba(255, 255, 255, .05);
	border: 1px solid rgba(255, 255, 255, .12);
	border-radius: 14px;
}

.rb-track__n { display: block; margin-bottom: 14px; font-family: var(--rb-mono); font-size: 1.5rem; font-weight: 700; color: #7FC0FF; }
.rb-track__t { margin: 0 0 6px; font-family: var(--font-display); font-size: 1.02rem; font-weight: 700; color: #fff; }
.rb-track__d { margin: 0 0 12px; font-family: var(--rb-mono); font-size: .76rem; letter-spacing: .08em; text-transform: uppercase; color: rgba(255, 255, 255, .55); }

.rb-split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }

.rb-panel {
	padding: 28px;
	background: rgba(255, 255, 255, .05);
	border: 1px solid rgba(255, 255, 255, .12);
	border-radius: 14px;
}

.rb-section--alt .rb-panel,
.rb-section:not(.rb-section--dark) .rb-panel { background: var(--card, #fff); border-color: var(--rb-line); }

.rb-panel__t { margin: 0 0 14px; font-family: var(--font-display); font-size: 1.06rem; font-weight: 700; color: #fff; }
.rb-panel__t--sm { margin-top: 22px; font-size: .91rem; letter-spacing: .06em; text-transform: uppercase; }
.rb-panel__note { margin: 16px 0 0; font-family: var(--rb-mono); font-size: .78rem; color: #7FC0FF; }

/* ---------------- chips ---------------- */

.rb-chips { display: flex; flex-wrap: wrap; gap: 8px; }

.rb-chip {
	padding: 6px 13px;
	font-size: .89rem;
	line-height: 1.3;
	color: var(--rb-ink-2);
	background: var(--card, #fff);
	border: 1px solid var(--rb-line);
	border-radius: 999px;
}

[data-theme="dark"] .rb-chip { background: rgba(255, 255, 255, .04); }

.rb-chip--light {
	color: rgba(255, 255, 255, .82);
	background: rgba(255, 255, 255, .07);
	border-color: rgba(255, 255, 255, .16);
}

/* ---------------- franchise ---------------- */

.rb-figures {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0;
	margin-bottom: 44px;
	border-top: 1px solid var(--rb-line);
	border-bottom: 1px solid var(--rb-line);
}

.rb-figure { padding: 26px 22px; border-left: 1px solid var(--rb-line); }
.rb-figure:first-child { border-left: 0; padding-left: 0; }

.rb-figure__v { display: block; font-family: var(--font-display); font-size: clamp(1.3rem, 2.8vw, 1.9rem); font-weight: 800; color: var(--color-primary); }
.rb-figure__l { display: block; margin-top: 7px; font-size: .89rem; color: var(--rb-ink-2); }

.rb-spec { margin: 0 0 24px; }

.rb-spec__row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
	gap: 14px;
	padding: 11px 0;
	border-bottom: 1px solid var(--rb-line-soft);
}

.rb-spec dt { font-family: var(--rb-mono); font-size: .78rem; letter-spacing: .04em; text-transform: uppercase; color: var(--rb-ink-2); }
.rb-spec dd { margin: 0; font-size: .97rem; font-weight: 600; color: var(--rb-ink); }

/* ---------------- clients ---------------- */

.rb-clients { display: grid; gap: 30px; }
.rb-sector__h {
	margin: 0 0 14px;
	font-family: var(--rb-mono);
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--color-primary);
}

/* ---------------- testimonials ---------------- */

.rb-quotes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }

.rb-quote {
	margin: 0;
	padding: 24px;
	background: var(--card, #fff);
	border: 1px solid var(--rb-line);
	border-radius: 14px;
}

[data-theme="dark"] .rb-quote { background: rgba(255, 255, 255, .03); }

.rb-quote__stars { margin-bottom: 12px; font-size: 1.02rem; letter-spacing: .1em; color: #F59E0B; }
.rb-quote__half { opacity: .45; }
.rb-quote blockquote { margin: 0 0 14px; font-size: .96rem; line-height: 1.6; color: var(--rb-ink-2); }
.rb-quote figcaption { font-family: var(--font-display); font-size: .93rem; font-weight: 700; color: var(--rb-ink); }

/* ---------------- group ---------------- */

.rb-group { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--rb-line); }

.rb-co {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 24px;
	text-decoration: none;
	background: var(--card, #fff);
	color: var(--rb-ink);
	transition: background-color .18s ease, color .18s ease;
}

[data-theme="dark"] .rb-co { background: #0F1B30; }
.rb-co:hover { background: var(--color-primary); color: #fff; }
.rb-co__n { font-family: var(--font-display); font-size: 1.03rem; font-weight: 700; }
.rb-co svg { flex: none; opacity: .5; transition: opacity .18s ease, transform .18s ease; }
.rb-co:hover svg { opacity: 1; transform: translateX(4px); }

/* ---------------- CTA ---------------- */

.rb-cta {
	padding: clamp(56px, 8vw, 96px) 0;
	background: var(--color-primary);
	background-image: linear-gradient(120deg, var(--color-primary) 0%, #0D2244 100%);
	color: #fff;
}

.rb-cta__t { margin: 0 0 12px; max-width: 22ch; font-family: var(--font-display); font-size: clamp(1.5rem, 3.4vw, 2.3rem); font-weight: 800; line-height: 1.15; color: #fff; }
.rb-cta__p { margin: 0 0 28px; max-width: 56ch; font-size: 1rem; line-height: 1.65; color: rgba(255, 255, 255, .82); }

/* ==========================================================================
   RESPONSIVE
   The bordered grids collapse to fewer columns rather than shrinking, so the
   rules keep meaning something at every width.
   ========================================================================== */

@media (max-width: 1100px) {
	.rb-caps,
	.rb-tracks,
	.rb-quotes { grid-template-columns: repeat(2, minmax(0, 1fr)); }

	.rb-cap:nth-child(3) { border-left: 0; padding-left: 0; }
	.rb-cap:nth-child(n+3) { border-top: 1px solid var(--rb-line); padding-top: 26px; }

	.rb-group { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
	.rb-stats__inner,
	.rb-figures { grid-template-columns: repeat(2, minmax(0, 1fr)); }

	.rb-stat:nth-child(3),
	.rb-figure:nth-child(3) { border-left: 0; padding-left: 0; }

	.rb-stat:nth-child(n+3),
	.rb-figure:nth-child(n+3) { border-top: 1px solid var(--rb-line); }

	.rb-progs,
	.rb-split { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 620px) {
	.rb-caps,
	.rb-tracks,
	.rb-quotes,
	.rb-group { grid-template-columns: minmax(0, 1fr); }

	.rb-cap { border-left: 0; padding: 22px 0; border-top: 1px solid var(--rb-line); }
	.rb-cap:first-child { border-top: 0; padding-top: 0; }

	.rb-hero__actions { flex-direction: column; align-items: stretch; }
	.rb-btn { width: 100%; }

	.rb-spectrum { grid-template-columns: auto 1fr auto; }
	.rb-spec__row { grid-template-columns: minmax(0, 1fr); gap: 3px; }
}

@media (prefers-reduced-motion: reduce) {
	.rb-ticker__track { animation: none; }
	.rb-prog:hover,
	.rb-btn:hover { transform: none; }
}

/* The client wall is long, so each sector states its own count and the chips
   sit tighter than elsewhere. */
.rb-sector__h {
	display: flex;
	align-items: center;
	gap: 10px;
}

.rb-sector__n {
	padding: 2px 8px;
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: 0;
	color: var(--rb-ink-2);
	background: var(--rb-alt);
	border: 1px solid var(--rb-line);
	border-radius: 999px;
}

.rb-section--alt .rb-sector__n,
[data-theme="dark"] .rb-sector__n { background: var(--card, #fff); }

.rb-clients .rb-chips { gap: 7px; }
.rb-clients .rb-chip { font-size: .79rem; padding: 5px 11px; }

/* ==========================================================================
   PICTURE-LED SECTIONS
   Added in v3.33.0. The page was type-and-rule only; these bands carry the
   supplied photography without disturbing the sections already there.
   ========================================================================== */

.rb-section--tight { padding-block: clamp(44px, 6vw, 76px); }

/* ---------------- three pathways ---------------- */

.rb-paths { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }

.rb-path {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	text-decoration: none;
	background: var(--card, #fff);
	border: 1px solid var(--rb-line);
	border-radius: 18px;
	transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

[data-theme="dark"] .rb-path { background: rgba(255, 255, 255, .03); }

.rb-path:hover {
	border-color: var(--color-primary);
	box-shadow: 0 14px 34px rgba(15, 23, 42, .1);
	transform: translateY(-3px);
}

.rb-path__media { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--rb-alt); }

.rb-path__media img,
.rb-tile__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .4s var(--ease-out);
}

.rb-path:hover .rb-path__media img,
.rb-tile:hover .rb-tile__media img { transform: scale(1.04); }

.rb-path__body { display: block; padding: 24px; }

.rb-path__k {
	display: block;
	margin-bottom: 8px;
	font-family: var(--rb-mono);
	font-size: .72rem;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--color-primary);
}

.rb-path__t { display: block; margin-bottom: 8px; font-family: var(--font-display); font-size: 1.22rem; font-weight: 700; color: var(--rb-ink); }
.rb-path__p { display: block; margin-bottom: 16px; font-size: .99rem; line-height: 1.6; color: var(--rb-ink-2); }

.rb-path__cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: .95rem;
	font-weight: 700;
	color: var(--color-primary);
}

.rb-path__cta svg { transition: transform .2s ease; }
.rb-path:hover .rb-path__cta svg { transform: translateX(4px); }

/* ---------------- industry / digital tiles ---------------- */

.rb-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }

.rb-tile {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	text-decoration: none;
	background: var(--card, #fff);
	border: 1px solid var(--rb-line);
	border-radius: 16px;
	transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

[data-theme="dark"] .rb-tile { background: rgba(255, 255, 255, .03); }
.rb-section--alt .rb-tile { background: var(--card, #fff); }

.rb-tile:hover {
	border-color: var(--color-primary);
	box-shadow: 0 12px 30px rgba(15, 23, 42, .09);
	transform: translateY(-2px);
}

.rb-tile__media { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--rb-alt); }
.rb-tile__body { display: block; padding: 20px 22px 24px; }
.rb-tile__t { display: block; margin-bottom: 7px; font-family: var(--font-display); font-size: 1.05rem; font-weight: 700; color: var(--rb-ink); }
.rb-tile__p { display: block; font-size: .95rem; line-height: 1.6; color: var(--rb-ink-2); }

/* ---------------- wide banner ---------------- */

.rb-banner {
	position: relative;
	margin: 0 0 34px;
	overflow: hidden;
	border-radius: 18px;
	aspect-ratio: 24 / 7;
}

.rb-banner img { display: block; width: 100%; height: 100%; object-fit: cover; }

.rb-banner figcaption {
	position: absolute;
	inset: auto 0 0 0;
	padding: 26px 28px;
	background: linear-gradient(to top, rgba(8, 20, 38, .82), rgba(8, 20, 38, 0));
	color: #fff;
}

.rb-banner__t { display: block; font-family: var(--font-display); font-size: clamp(1.1rem, 2.2vw, 1.5rem); font-weight: 800; }
.rb-banner__p { display: block; margin-top: 5px; font-size: .97rem; color: rgba(255, 255, 255, .85); }

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

@media (max-width: 1100px) {
	.rb-paths { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
	.rb-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rb-banner { aspect-ratio: 20 / 8; }
}

@media (max-width: 860px) {
	.rb-paths { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 620px) {
	.rb-tiles { grid-template-columns: minmax(0, 1fr); }
	.rb-banner { aspect-ratio: 3 / 2; }
	.rb-banner figcaption { padding: 18px 18px 20px; }
}

@media (prefers-reduced-motion: reduce) {
	.rb-path, .rb-tile, .rb-path__media img, .rb-tile__media img, .rb-path__cta svg { transition: none; }
	.rb-path:hover, .rb-tile:hover { transform: none; }
	.rb-path:hover .rb-path__media img, .rb-tile:hover .rb-tile__media img { transform: none; }
}

/* ==========================================================================
   HERO BACKGROUND — solid colour, no image

   No photograph behind the hero any more. Instead, a flat colour picked
   from the GOC poster's own palette (a deep warm brown, sampled from the
   average tone of assets/img/hero-banner.jpg and darkened to L≈0.15 so
   white hero text stays comfortably legible — 14.8:1 contrast, well past
   WCAG AAA's 7:1). No image request, no crop/position tuning to get right
   at every breakpoint, no veil needed for contrast.

   A very slight gradient is kept purely for depth (flat colour can look a
   little dead behind large text); it carries no contrast responsibility,
   unlike the old veil, which is why it can stay this subtle.
   ========================================================================== */

.rb-hero__photo {
	position: absolute;
	inset: 0;
	background-color: #31261A;
	pointer-events: none;
}

.rb-hero__veil {
	position: absolute;
	inset: 0;
	background: linear-gradient(160deg, rgba(0, 0, 0, .12) 0%, rgba(0, 0, 0, 0) 45%, rgba(0, 0, 0, .12) 100%);
	pointer-events: none;
}

.rb-hero__grid { display: none; }
.rb-hero__inner { position: relative; z-index: 2; }
.rb-ticker { position: relative; z-index: 2; }

@media (prefers-reduced-motion: reduce) {
	.rb-hero__photo { filter: none; }
}

/* Six figures from the group brochure, not four. */
.rb-stats__inner { grid-template-columns: repeat(6, minmax(0, 1fr)); }

@media (max-width: 1180px) {
	.rb-stats__inner { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.rb-stat:nth-child(4) { border-left: 0; padding-left: 0; }
	.rb-stat:nth-child(n+4) { border-top: 1px solid var(--rb-line); }
}

@media (max-width: 720px) {
	.rb-stats__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rb-stat { padding: 22px 14px; }
	.rb-stat:nth-child(odd) { border-left: 0; padding-left: 0; }
	.rb-stat:nth-child(n+3) { border-top: 1px solid var(--rb-line); }
}

/* ==========================================================================
   CLIENT LOGO WALL, AND THE FRANCHISE STEPS (v3.38.0)
   The logo wall sits above the 147-name list rather than replacing it: the
   marks give recognition at a glance, the names give the full picture.
   ========================================================================== */

.rb-logos {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 1px;
	margin-bottom: 40px;
	background: var(--rb-line);
	border: 1px solid var(--rb-line);
	border-radius: 14px;
	overflow: hidden;
}

.rb-logo {
	margin: 0;
	padding: 18px 20px;
	display: grid;
	place-items: center;
	background: #fff;
	transition: transform .2s ease;
}

.rb-logo img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 54px;
	object-fit: contain;
	filter: grayscale(100%);
	opacity: .72;
	transition: filter .22s ease, opacity .22s ease;
}

.rb-logo:hover img { filter: none; opacity: 1; }

/* ---------------- franchise steps ---------------- */

.rb-h3--wide { margin: 46px 0 22px; font-size: 1.16rem; }

.rb-fr-steps__figure { margin: 46px 0 0; }

.rb-fr-steps__img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 14px;
	box-shadow: 0 18px 44px -24px rgba(10, 22, 40, .3);
}

.rb-steps {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: none;
}

.rb-step {
	padding: 22px;
	background: var(--card, #fff);
	border: 1px solid var(--rb-line);
	border-radius: 14px;
}

[data-theme="dark"] .rb-step { background: rgba(255, 255, 255, .03); }

.rb-step__n {
	display: block;
	margin-bottom: 12px;
	font-family: var(--rb-mono);
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--color-primary);
}

.rb-step__t { display: block; margin-bottom: 7px; font-family: var(--font-display); font-size: 1rem; font-weight: 700; color: var(--rb-ink); }
.rb-step__p { display: block; font-size: .95rem; line-height: 1.6; color: var(--rb-ink-2); }

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

@media (max-width: 1180px) {
	.rb-logos { grid-template-columns: repeat(5, minmax(0, 1fr)); }
	.rb-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
	.rb-logos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.rb-logo { padding: 14px; }
	.rb-logo img { max-height: 40px; }
}

@media (max-width: 480px) {
	.rb-logos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rb-steps { grid-template-columns: minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
	.rb-logo img { transition: none; }
}

/* ==========================================================================
   FOUNDER
   ========================================================================== */

.rb-founder__top {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
	gap: 40px;
	align-items: start;
	margin-bottom: 34px;
}

.rb-founder__role {
	margin: 6px 0 14px;
	font-family: var(--rb-mono);
	font-size: .89rem;
	letter-spacing: .04em;
	color: var(--color-primary);
}

.rb-founder__quote {
	margin: 0;
	padding: 26px 28px;
	background: var(--rb-alt);
	border-left: 3px solid var(--color-primary);
	border-radius: 0 14px 14px 0;
}

.rb-founder__quote p { margin: 0 0 12px; font-size: 1.02rem; line-height: 1.65; color: var(--rb-ink); }
.rb-founder__quoteMr { font-size: .97rem !important; color: var(--rb-ink-2) !important; }
.rb-founder__quote cite { font-style: normal; font-size: .89rem; font-weight: 700; color: var(--color-primary); }

.rb-founder__figures {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	border-top: 1px solid var(--rb-line);
	border-bottom: 1px solid var(--rb-line);
	margin-bottom: 34px;
}

.rb-founder__figures .rb-figure { padding: 22px 18px; border-left: 1px solid var(--rb-line); }
.rb-founder__figures .rb-figure:first-child { border-left: 0; padding-left: 0; }

.rb-founder__serving { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }

.rb-founder__serve {
	padding: 18px;
	background: var(--card, #fff);
	border: 1px solid var(--rb-line);
	border-radius: 12px;
}

[data-theme="dark"] .rb-founder__serve { background: rgba(255, 255, 255, .03); }

.rb-founder__faq { margin: 24px 0 0; }
.rb-founder__faq .rb-btn { width: 100%; text-align: center; }

@media (max-width: 1100px) {
	.rb-founder__figures { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.rb-founder__figures .rb-figure:nth-child(4) { border-left: 0; padding-left: 0; }
	.rb-founder__figures .rb-figure:nth-child(n+4) { border-top: 1px solid var(--rb-line); }
}

@media (max-width: 860px) {
	.rb-founder__top { grid-template-columns: minmax(0, 1fr); gap: 24px; }
}

@media (max-width: 620px) {
	.rb-founder__figures { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rb-founder__figures .rb-figure:nth-child(odd) { border-left: 0; padding-left: 0; }
	.rb-founder__figures .rb-figure:nth-child(n+3) { border-top: 1px solid var(--rb-line); }
	.rb-founder__serving { grid-template-columns: minmax(0, 1fr); }
}

/* ==========================================================================
   CLIENT DIRECTORY (v3.40.0)

   147 clients used to render as one 1,570px wall of chips, with the company
   and its plant locations jammed into a single pill — "Mahindra & Mahindra —
   Tractor Division, Mumbai, Nasik, Igatpuri" — and in no particular order.

   The same data is now a directory: company on one line, locations under it,
   sorted alphabetically within each sector, in columns. Sectors longer than
   24 entries show the first 24 with the rest one click away, so the section
   opens at a readable height instead of running for three screens.
   ========================================================================== */

.rb-dir {
	margin: 0;
	padding: 0;
	list-style: none;
	columns: 4;
	column-gap: 30px;
}

.rb-dir__item {
	break-inside: avoid;
	padding: 6px 0;
	border-bottom: 1px solid var(--rb-line-soft);
}

.rb-dir__n {
	display: block;
	font-size: .96rem;
	font-weight: 600;
	line-height: 1.35;
	color: var(--rb-ink);
}

.rb-dir__w {
	display: block;
	margin-top: 2px;
	font-size: .78rem;
	line-height: 1.4;
	color: var(--rb-ink-2);
}

/* Hidden until the sector is expanded. */
.rb-sector.is-long .rb-dir__item.is-extra { display: none; }
.rb-sector.is-open .rb-dir__item.is-extra { display: block; }

.rb-dir__more {
	margin-top: 14px;
	padding: 9px 18px;
	font-family: var(--font-body);
	font-size: .89rem;
	font-weight: 700;
	color: var(--color-primary);
	background: transparent;
	border: 1px solid var(--rb-line);
	border-radius: var(--radius-full, 999px);
	cursor: pointer;
	transition: border-color .16s ease, background-color .16s ease;
}

.rb-dir__more:hover { border-color: var(--color-primary); background: rgba(var(--color-primary-rgb), .06); }

.rb-clients { display: grid; gap: 30px; }

@media (max-width: 1200px) { .rb-dir { columns: 3; } }
@media (max-width: 900px)  { .rb-dir { columns: 2; } }
@media (max-width: 620px)  { .rb-dir { columns: 1; } }

/* ==========================================================================
   CLIENTS AND FRANCHISE, REDESIGNED (v3.42.0)
   Both follow the layouts supplied: a logo carousel over sector accordions
   for clients, and a title panel beside an icon accordion for franchise.
   ========================================================================== */

.rb-head--centre { margin-inline: auto; text-align: center; }
.rb-h2--centre { margin-inline: auto; }

.rb-rule {
	display: block;
	width: 168px;
	height: 3px;
	margin: 18px auto 0;
	background: #E8622A;
	border-radius: 3px;
}

/* ---------------- logo carousel ---------------- */

.rb-carousel { position: relative; margin: 34px 0 44px; padding: 0 52px; }

.rb-carousel__track {
	display: flex;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
}

.rb-carousel__track::-webkit-scrollbar { display: none; }

.rb-carousel__slide {
	flex: 0 0 25%;
	scroll-snap-align: start;
	display: grid;
	place-items: center;
	padding: 22px 26px;
}

.rb-carousel__slide img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 84px;
	object-fit: contain;
}

.rb-carousel__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	color: var(--rb-ink-2);
	background: transparent;
	border: 0;
	cursor: pointer;
	transition: color .16s ease;
}

.rb-carousel__nav:hover { color: var(--color-primary); }
.rb-carousel__nav--prev { left: 0; }
.rb-carousel__nav--next { right: 0; }

.rb-carousel__dots { display: flex; justify-content: center; gap: 7px; margin-top: 18px; }

.rb-carousel__dot {
	width: 7px;
	height: 7px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--rb-line);
	cursor: pointer;
}

.rb-carousel__dot.is-active { background: var(--rb-ink-2); }

/* ---------------- sector accordions ---------------- */

.rb-acc-cols {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	align-items: start;
}

.rb-acc {
	background: var(--card, #fff);
	border: 1px solid var(--rb-line);
	border-radius: 10px;
	overflow: hidden;
}

[data-theme="dark"] .rb-acc { background: rgba(255, 255, 255, .03); }

.rb-acc summary {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 16px;
	cursor: pointer;
	list-style: none;
	background: var(--rb-alt);
}

.rb-acc summary::-webkit-details-marker { display: none; }

.rb-acc__sign { position: relative; flex: none; width: 14px; height: 14px; }
.rb-acc__sign::before,
.rb-acc__sign::after {
	content: "";
	position: absolute;
	inset: 50% 0 auto 0;
	height: 2px;
	background: var(--rb-ink-2);
	transform: translateY(-50%);
}
.rb-acc__sign::after { transform: translateY(-50%) rotate(90deg); transition: opacity .18s ease; }
.rb-acc[open] .rb-acc__sign::after { opacity: 0; }

.rb-acc__t { flex: 1; font-size: .99rem; font-weight: 600; color: var(--rb-ink); }
.rb-acc__n { flex: none; font-family: var(--rb-mono); font-size: .74rem; color: var(--rb-ink-2); }

.rb-acc__list { margin: 0; padding: 14px 18px 18px 34px; }
.rb-acc__list li { padding: 7px 0; font-size: .95rem; line-height: 1.45; color: var(--rb-ink); }
.rb-acc__name { display: block; }
.rb-acc__where { display: block; margin-top: 2px; font-size: .78rem; color: var(--rb-ink-2); }

/* ---------------- franchise ---------------- */

.rb-fr__grid {
	display: grid;
	grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
	gap: 52px;
	align-items: start;
}

.rb-fr__intro { position: sticky; top: 150px; }

.rb-fr__title {
	margin: 0;
	font-family: var(--font-display);
	font-size: clamp(2.4rem, 5vw, 3.6rem);
	font-weight: 800;
	letter-spacing: -.03em;
	color: var(--rb-ink);
}

.rb-fr__rule {
	position: relative;
	display: block;
	width: 100%;
	max-width: 320px;
	height: 1px;
	margin: 22px 0;
	background: var(--rb-line);
}

.rb-fr__rule::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 9px;
	height: 9px;
	background: var(--rb-ink);
	transform: translate(-50%, -50%) rotate(45deg);
}

.rb-fr__intro .rb-btn { margin-top: 22px; }

.rb-fr__panels { display: grid; gap: 12px; }

.rb-fp {
	background: rgba(var(--color-primary-rgb), .05);
	border: 1px solid rgba(var(--color-primary-rgb), .12);
	border-radius: 12px;
	overflow: hidden;
}

.rb-fp summary {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 18px 22px;
	cursor: pointer;
	list-style: none;
}

.rb-fp summary::-webkit-details-marker { display: none; }

.rb-fp__icon { flex: none; display: grid; place-items: center; color: var(--color-primary); }
.rb-fp__t { flex: 1; font-family: var(--font-display); font-size: 1rem; font-weight: 700; color: var(--rb-ink); }
.rb-fp__chev { flex: none; color: var(--color-primary); transition: transform .2s ease; }
.rb-fp[open] .rb-fp__chev { transform: rotate(180deg); }

.rb-fp__body { padding: 0 22px 22px 60px; }

.rb-fp__rows { margin: 0; }
.rb-fp__rows > div { display: flex; flex-wrap: wrap; gap: 6px 10px; padding: 7px 0; }
.rb-fp__rows dt { font-size: .97rem; font-weight: 700; color: var(--rb-ink); }
.rb-fp__rows dd { margin: 0; font-size: .97rem; color: var(--rb-ink-2); }

/* ---------------- profile topics ---------------- */

.rb-topics { margin: 0; padding: 0; list-style: none; columns: 2; column-gap: 30px; }

.rb-topics li {
	break-inside: avoid;
	position: relative;
	padding: 6px 0 6px 18px;
	font-size: .93rem;
	line-height: 1.5;
	color: var(--rb-ink-2);
}

.rb-topics li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 14px;
	width: 8px;
	height: 1px;
	background: var(--color-primary);
}

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

@media (max-width: 1100px) {
	.rb-acc-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rb-carousel__slide { flex-basis: 33.333%; }
	.rb-fr__grid { grid-template-columns: minmax(0, 1fr); gap: 30px; }
	.rb-fr__intro { position: static; }
}

@media (max-width: 760px) {
	.rb-acc-cols { grid-template-columns: minmax(0, 1fr); }
	.rb-carousel { padding: 0 38px; }
	.rb-carousel__slide { flex-basis: 50%; padding: 16px; }
	.rb-topics { columns: 1; }
	.rb-fp__body { padding-left: 22px; }
}

@media (max-width: 480px) {
	.rb-carousel__slide { flex-basis: 100%; }
}

@media (prefers-reduced-motion: reduce) {
	.rb-carousel__track { scroll-behavior: auto; }
	.rb-fp__chev, .rb-acc__sign::after { transition: none; }
}

/* ==========================================================================
   OUR INSPIRATION — the full profile (v3.44.0)
   ========================================================================== */

.fo-top {
	display: grid;
	grid-template-columns: minmax(0, 300px) minmax(0, 1fr);
	gap: 40px;
	align-items: start;
	margin-bottom: 40px;
}

.fo-portrait { margin: 0; border-radius: 18px; overflow: hidden; box-shadow: 0 18px 40px rgba(15, 23, 42, .14); }
.fo-portrait img { display: block; width: 100%; height: auto; }

.fo-roles { margin: 14px 0 18px; }
.fo-figures { margin-top: 26px; }

/* ---------------- quotations — one continuous tricolor strip ---------------- */

/* One seamless row: saffron / white / green, exactly as the flag, with no
   gaps or per-card corners between the bands — only the strip as a whole
   is rounded. */
.fo-tricolor {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-bottom: 44px;
	border-radius: 18px;
	overflow: hidden;
	box-shadow: 0 20px 48px -18px rgba(15, 23, 42, .28);
}

.fo-band {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 22px;
	min-height: 360px;
	padding: 40px 30px;
	text-align: center;
}

.fo-band--saffron { background: #FF9933; }
.fo-band--white { background: #FFFFFF; }
.fo-band--green { background: #138808; }

.k-chakra { flex: none; }

.fo-band blockquote { margin: 0; max-width: 34ch; }

.fo-band blockquote p {
	margin: 0 0 12px;
	font-family: var(--font-display);
	font-size: 1rem;
	line-height: 1.6;
	font-weight: 700;
}

.fo-band--saffron blockquote p,
.fo-band--green blockquote p {
	color: #FFFFFF;
	text-shadow: 0 1px 3px rgba(0, 0, 0, .18);
}

.fo-band--white blockquote p { color: #16233B; }

.fo-band blockquote cite {
	font-style: normal;
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .06em;
}

.fo-band--saffron cite,
.fo-band--green cite { color: rgba(255, 255, 255, .85); }

.fo-band--white cite { color: #0B1F91; }

@media (max-width: 780px) {
	.fo-tricolor { grid-template-columns: minmax(0, 1fr); }
	.fo-band { min-height: 0; padding: 36px 26px; }
}

/* ---------------- profiles, as accordion dropdowns ---------------- */

/* Same shell as .fo-panels below, just a shorter, standalone group for the
   two profile bios plus their pulled-out meta lines. */
.fo-profile-acc { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; margin-bottom: 34px; }

.fo-acc__prose p { margin: 0 0 14px; font-size: 1rem; line-height: 1.68; color: var(--rb-ink-2); }
.fo-acc__prose p:last-child { margin-bottom: 0; }

/* "What the corporate profile answers" — a standalone accordion, same
   pattern as the awards accordion (no group name, so it opens on its own). */
.fo-acc--topics { margin-bottom: 40px; }
.fo-acc--topics .rb-topics.fo-acc__list { padding-top: 4px; }

.fo-cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 26px; margin-bottom: 40px; }
.fo-note { margin: 0; font-size: .95rem; line-height: 1.6; color: var(--rb-ink-2); }

/* ---------------- awards ---------------- */

/* Standalone accordion wrapping the photo + list — same fo-acc shell used
   for the panels above, just on its own rather than in a name="" group. */
.fo-acc--awards { margin-bottom: 40px; }
.fo-acc--awards .fo-acc__t { font-size: 1.05rem; }

.fo-awards { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 34px; align-items: start; margin-bottom: 40px; }
.fo-awards__pic { margin: 0; border-radius: 16px; overflow: hidden; }
.fo-awards__pic img { display: block; width: 100%; height: auto; }

/* Nested inside the accordion body: no extra bottom margin, wider inset. */
.fo-acc__list--awards { margin-bottom: 0; padding: 0 24px 24px; }

.fo-awardlist { margin: 0; padding: 0; list-style: none; }

.fo-awardlist li {
	padding: 10px 0;
	border-bottom: 1px solid var(--rb-line-soft);
}

.fo-awardlist__mr { display: block; font-size: 1.02rem; font-weight: 600; color: var(--rb-ink); }
.fo-awardlist__en { display: block; margin-top: 2px; font-size: .91rem; color: var(--rb-ink-2); }

/* ---------------- COEIR offerings ---------------- */

/* Fixed title on the left, the accordion stacked on the right — matching
   the supplied deck's layout. Collapses to a stacked, single column below
   the tablet breakpoint. */
.coeir__grid {
	display: grid;
	grid-template-columns: minmax(0, .8fr) minmax(0, 1.6fr);
	gap: 40px;
	align-items: start;
}

.coeir__head { position: sticky; top: 100px; }

.coeir__t {
	margin: 0;
	font-family: var(--font-display);
	font-size: 2.1rem;
	font-weight: 800;
	color: #FF9933;
}

.coeir__rule {
	display: block;
	position: relative;
	width: 100%;
	max-width: 260px;
	height: 1px;
	margin-top: 18px;
	background: var(--rb-ink);
	opacity: .55;
}
.coeir__rule::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 7px;
	height: 7px;
	transform: translate(-50%, -50%) rotate(45deg);
	background: var(--rb-ink);
	opacity: .8;
}

.coeir__list { display: flex; flex-direction: column; }

.coeir__item {
	background: #FBEEF6;
	border-bottom: 2px solid #fff;
}
.coeir__item:first-child { border-top-left-radius: 10px; border-top-right-radius: 10px; }
.coeir__item:last-child { border-bottom: 0; border-bottom-left-radius: 10px; border-bottom-right-radius: 10px; }

.coeir__item summary {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 20px 26px;
	cursor: pointer;
	list-style: none;
}
.coeir__item summary::-webkit-details-marker { display: none; }

.coeir__icon {
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #FF9933;
}
.coeir__icon .k-icon { display: block; }

.coeir__title {
	flex: 1;
	font-size: 1.12rem;
	font-weight: 700;
	/* Fixed, not var(--rb-ink): this card's background (#FBEEF6) never
	   changes for dark mode, so its text can't either — using the
	   theme-aware ink variable here flipped this to near-white on a light
	   pink card in dark mode, which is how it went invisible. */
	color: #0A1628;
}

.coeir__chev { flex: none; color: #B0389D; transition: transform .2s ease; }
.coeir__item[open] .coeir__chev { transform: rotate(180deg); }

.coeir__body { padding: 0 26px 26px 64px; }

.coeir__intro {
	margin: 0 0 14px;
	font-size: 1.05rem;
	font-weight: 600;
	color: #33445E;
}

.coeir__points {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.coeir__points li {
	position: relative;
	padding-left: 22px;
	font-size: .98rem;
	font-weight: 500;
	line-height: 1.55;
	color: #0A1628;
}
.coeir__points li::before {
	content: '';
	position: absolute;
	left: 2px;
	top: .62em;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: #B0389D;
}

.coeir__note {
	margin: 0;
	font-size: 1.05rem;
	font-weight: 600;
	color: #33445E;
}

@media (max-width: 900px) {
	.coeir__grid { grid-template-columns: minmax(0, 1fr); }
	.coeir__head { position: static; margin-bottom: 8px; }
	.coeir__rule { max-width: none; }
}

@media (max-width: 560px) {
	.coeir__item summary { padding: 16px 18px; gap: 12px; }
	.coeir__body { padding: 0 18px 20px 18px; }
	.coeir__title { font-size: 1.02rem; }
}

/* ---------------- accreditations & affiliations ---------------- */

.rb-accred {
	padding: clamp(36px, 5vw, 56px) 0;
	background: var(--rb-alt, #f4f7fb);
	text-align: center;
}

.rb-accred__h {
	margin: 0 0 14px;
	font-family: var(--font-display);
	font-size: 2.1rem;
	font-weight: 800;
	color: #FF9933;
}

.rb-accred__rule {
	display: block;
	width: 64px;
	height: 3px;
	margin: 0 auto 32px;
	border-radius: 2px;
	background: #FF7A18;
}

.rb-accred__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
	max-width: 900px;
	margin: 0 auto;
}

.rb-accred__card {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 18px;
	background: #fff;
	border-radius: 12px;
	border: 1px solid var(--rb-line);
}

.rb-accred__card img {
	display: block;
	width: 100%;
	max-width: 130px;
	height: auto;
}

@media (max-width: 760px) {
	.rb-accred__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 420px; }
}

@media (max-width: 420px) {
	.rb-accred__card { padding: 14px; }
	.rb-accred__card img { max-width: 100px; }
}

/* ---------------- corporate profile book ---------------- */

.kb-section .rb-lead { max-width: 62ch; }

.rb-goc-poster__figure {
	margin: 28px 0 40px;
}

.rb-goc-poster__img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 14px;
	box-shadow: 0 18px 44px -24px rgba(10, 22, 40, .3);
}

/* ---------------- picture strip ---------------- */

/* The full "KAUSTYA in numbers" banner — always shown whole. Height is
   driven by the image's own ratio (1536:492) so it scales perfectly at
   any width without cropping, stretching or letterboxing. */
.fo-banner {
	margin: 0 0 28px;
	border-radius: 14px;
	overflow: hidden;
	border: 1px solid var(--rb-line);
	background: var(--rb-alt);
}
.fo-banner img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1536 / 492;
	object-fit: contain;
}

.fo-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 40px; }

.fo-shot { margin: 0; }

.fo-shot img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	border-radius: 12px;
	border: 1px solid var(--rb-line);
}

.fo-shot figcaption { margin-top: 8px; font-size: .88rem; line-height: 1.45; color: var(--rb-ink-2); }

.fo-cta { margin: 26px 0 0; }

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

@media (max-width: 1100px) {
	.fo-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.fo-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.fo-awards { grid-template-columns: minmax(0, 1fr); }
	.fo-awards__pic { max-width: 520px; }
}

@media (max-width: 860px) {
	.fo-top { grid-template-columns: minmax(0, 1fr); gap: 24px; }
	.fo-portrait { max-width: 280px; }
}

@media (max-width: 620px) {
	.fo-cols { grid-template-columns: minmax(0, 1fr); }
	.fo-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
}

/* ==========================================================================
   PROFILE DROPDOWNS, AND THE CEO PROFILE (v3.47.0)
   ========================================================================== */

/*
 * One column, not two. In a two-column grid the row takes the height of the
 * taller panel, so opening one left a tall empty block beside the closed panel
 * next to it. Full width also gives the longer lists — twenty-eight
 * certifications, twelve delivery methods — room to read.
 */
.fo-panels { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; margin-bottom: 40px; }

.fo-panels .fo-acc__list { columns: 2; column-gap: 34px; }
.fo-panels .fo-acc__list li { break-inside: avoid; }

.fo-acc {
	background: var(--card, #fff);
	border: 1px solid var(--rb-line);
	border-radius: 12px;
	overflow: hidden;
}

[data-theme="dark"] .fo-acc { background: rgba(255, 255, 255, .03); }
.rb-section--alt .fo-acc { background: var(--card, #fff); }

.fo-acc summary {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 16px 20px;
	cursor: pointer;
	list-style: none;
}

.fo-acc summary::-webkit-details-marker { display: none; }

.fo-acc__t { flex: 1; font-family: var(--font-display); font-size: 1.05rem; font-weight: 700; color: var(--rb-ink); }

.fo-acc__n {
	flex: none;
	padding: 2px 9px;
	font-family: var(--rb-mono);
	font-size: .72rem;
	color: var(--rb-ink-2);
	background: var(--rb-alt);
	border-radius: 999px;
}

.fo-acc__chev { flex: none; color: var(--color-primary); transition: transform .2s ease; }
.fo-acc[open] .fo-acc__chev { transform: rotate(180deg); }
.fo-acc__list { padding: 0 20px 18px; }

/* ---------------- CEO ---------------- */

.ceo-top { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, .65fr); gap: 36px; align-items: start; margin-bottom: 36px; }

.ceo-strap { margin: 0 0 14px; font-size: .97rem; line-height: 1.55; color: var(--rb-ink-2); }

.ceo-card {
	padding: 26px;
	background: var(--rb-ink);
	background-image: linear-gradient(155deg, #0A1628, #12294A);
	border-radius: 16px;
	color: #fff;
}

.ceo-card__h {
	margin: 0 0 14px;
	font-family: var(--rb-mono);
	font-size: .72rem;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: #7FC0FF;
}

.ceo-card__list { margin: 0 0 14px; padding: 0; list-style: none; }
.ceo-card__list li { padding: 7px 0; font-size: .97rem; border-bottom: 1px solid rgba(255, 255, 255, .12); }
.ceo-card__list a { color: #fff; text-decoration: none; }
.ceo-card__list a:hover { color: #7FC0FF; }
.ceo-card__note { margin: 0; font-size: .89rem; color: rgba(255, 255, 255, .7); }

.ceo-vision .rb-step { background: var(--card, #fff); }
.ceo-visioncard .rb-step__t { font-size: 1.02rem; }

.ceo-projects { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-bottom: 8px; }

.ceo-project {
	padding: 24px;
	background: var(--card, #fff);
	border: 1px solid var(--rb-line);
	border-left: 3px solid var(--color-primary);
	border-radius: 0 14px 14px 0;
}

[data-theme="dark"] .ceo-project { background: rgba(255, 255, 255, .03); }

.ceo-project__c { margin: 0 0 8px; font-family: var(--rb-mono); font-size: .76rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--color-primary); }
.ceo-project__t { margin: 0 0 9px; font-family: var(--font-display); font-size: 1.02rem; font-weight: 700; color: var(--rb-ink); }
.ceo-project__p { margin: 0 0 12px; font-size: .95rem; line-height: 1.6; color: var(--rb-ink-2); }

.ceo-project__r {
	display: inline-block;
	margin: 0;
	padding: 5px 12px;
	font-size: .88rem;
	font-weight: 700;
	color: var(--color-primary);
	background: rgba(var(--color-primary-rgb), .1);
	border-radius: 999px;
}

.ceo-panels { margin-top: 34px; }

@media (max-width: 1100px) {
	.ceo-projects { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 860px) {
	.fo-panels .fo-acc__list { columns: 1; }
	.ceo-top { grid-template-columns: minmax(0, 1fr); gap: 24px; }
}

@media (max-width: 620px) {
	.ceo-projects { grid-template-columns: minmax(0, 1fr); }
	.fo-acc summary { padding: 14px 16px; }
	.fo-acc__list { padding: 0 16px 16px; }
}

/* ==========================================================================
   COEIR, AND THE CEO PORTRAIT AND STRIP (v3.48.0)
   ========================================================================== */

.coeir-top {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, .85fr);
	gap: 40px;
	align-items: center;
	margin-bottom: 34px;
}

.coeir-pic { margin: 0; border-radius: 16px; overflow: hidden; border: 1px solid var(--rb-line); }
.coeir-pic img { display: block; width: 100%; height: auto; }

.ceo-top { grid-template-columns: minmax(0, 260px) minmax(0, 1.2fr) minmax(0, .7fr); }

.ceo-portrait { margin: 0; border-radius: 18px; overflow: hidden; box-shadow: 0 16px 36px rgba(15, 23, 42, .14); }
.ceo-portrait img { display: block; width: 100%; height: auto; }

.ceo-strip { margin-bottom: 34px; }

@media (max-width: 1100px) {
	.ceo-top { grid-template-columns: minmax(0, 220px) minmax(0, 1fr); }
	.ceo-top .ceo-card { grid-column: 1 / -1; }
}

@media (max-width: 860px) {
	.coeir-top { grid-template-columns: minmax(0, 1fr); gap: 24px; }
	.ceo-top { grid-template-columns: minmax(0, 1fr); }
	.ceo-portrait { max-width: 260px; }
}

/* The hero must never be shorter than the plate needs to read as a picture. */
@media (max-width: 900px) {
	.rb-hero { min-height: 78vh; }
	.rb-hero__inner { padding-bottom: clamp(38px, 9vw, 62px); }
}

/* --------------------------------------------------------------------------
   NO HORIZONTAL SCROLL — OVERFLOW SAFETY ONLY

   Deliberately additive. The column counts on this page already step down at
   considered breakpoints (.rb-caps 4→2→1 at 1100/620, .rb-tiles at 1100/620,
   .ceo-top at 1100/860, and so on), each with matching border rules, so those
   are left exactly as they are. What follows only stops content from pushing
   past the viewport — it changes no layout, no column count and no spacing.
   -------------------------------------------------------------------------- */

/* Media never wider than its column. */
.rb img,
.rb svg,
.rb video,
.rb iframe { max-width: 100%; }

/* Grid and flex children default to `min-width: auto`, which means a long word
   or a wide image can force a track wider than its share and drag the page
   sideways. Allowing them to shrink is what actually prevents the overflow;
   `overflow-x: hidden` on the body would only conceal it. */
.ceo-top > *,
.fo-top > *,
.fo-cols > *,
.rb-tiles > *,
.rb-paths > *,
.rb-caps > *,
.ceo-projects > *,
.rb-partners > *,
.fo-strip > * { min-width: 0; }

/* Long unbroken strings — email addresses, URLs, certification titles — are
   the usual cause of sideways drag on a narrow screen. */
.rb-founder__role,
.ceo-strap,
.ceo-card__list,
.ceo-card__list a,
.rb-partner__n,
.fo-acc__list li,
.rb-list li,
.rb-topics li { overflow-wrap: break-word; }

/* Portrait figures scale with their column instead of holding a fixed width. */
.ceo-portrait img,
.fo-portrait img { width: 100%; height: auto; }

/* The accordion summary puts a title, a count and a chevron on one line. Below
   ~520px the title wraps to its own row rather than pushing the chevron out
   past the card edge. */
@media (max-width: 520px) {
	.fo-acc summary { flex-wrap: wrap; row-gap: 4px; }
	.fo-acc__t { flex: 1 1 100%; min-width: 0; }
}

/* ==========================================================================
   HERO SLIDES — SIX OPERATING COMPANIES (v3.53.0)

   One slide per company, stacked in the same grid cell and cross-faded, so
   the hero never changes height as the names change length. "Kaustya Nature
   Conservation Foundation" and "Kaustya Consulting Pvt. Ltd." differ enough
   that laying them out in flow would make the whole page jump every two
   seconds.
   ========================================================================== */

.rb-hero--slides .rb-hero__title { margin-bottom: clamp(18px, 2.4vw, 30px); }

.rb-slides {
	display: grid;
	/* Every slide occupies the same cell; only opacity changes. */
	grid-template-areas: "slide";
	align-items: start;
	min-height: 4.6em;
}

.rb-slide {
	grid-area: slide;
	opacity: 0;
	visibility: hidden;
	transform: translateY(10px);
	transition: opacity .5s ease, transform .5s ease, visibility .5s;
}

.rb-slide.is-active {
	opacity: 1;
	visibility: visible;
	transform: none;
}

.rb-slide__link {
	display: block;
	color: #fff;
	border-bottom: 2px solid rgba(255, 255, 255, .28);
	padding-bottom: 6px;
	margin: 0;
}

.rb-slide__name {
	font-family: var(--font-display, inherit);
	font-size: clamp(1.35rem, 3vw, 2.35rem);
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: -.01em;
}

/* --------------------------------------------------------------------------
   Dots
   -------------------------------------------------------------------------- */

.rb-slides__dots {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: clamp(22px, 2.6vw, 32px);
}

.rb-dot {
	width: 32px;
	height: 6px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: rgba(255, 255, 255, .3);
	cursor: pointer;
	transition: background-color .25s ease, width .25s ease;
}

.rb-dot:hover { background: rgba(255, 255, 255, .55); }

.rb-dot.is-active {
	width: 48px;
	background: #fff;
}

/* The dots are the only control, so the focus ring has to be unmistakable. */
.rb-dot:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
}

@media (max-width: 620px) {
	.rb-slides { min-height: 5.4em; }
	.rb-dot { width: 26px; }
	.rb-dot.is-active { width: 38px; }
}

/*
 * Reduced motion: no cross-fade, no travel. The script also declines to start
 * the timer, so the first slide simply stays on screen and the dots still
 * work by hand.
 */
@media (prefers-reduced-motion: reduce) {
	.rb-slide { transition: none; transform: none; }
	.rb-slide__link { transition: none; }
	.rb-dot { transition: none; }
}

/* ===== HERO — Pasaydan / GOC International content ===== */

/* Romanised verse line above the Marathi */
.rb-hero__verse-en {
	margin: 0 0 10px;
	font-family: var(--font-display);
	font-size: clamp(.78rem, 1.4vw, .95rem);
	font-weight: 700;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: #7FC0FF;
}

/* Marathi Pasaydan – the big display line */
.rb-hero__title--pasaydan {
	max-width: 22ch;
	font-size: clamp(1.8rem, 4.8vw, 3.6rem);
	letter-spacing: .01em;
	line-height: 1.15;
	margin-bottom: 14px;
}

/* English meaning in italics beneath */
.rb-hero__verse-meaning {
	margin: 0 0 32px;
	font-size: clamp(.95rem, 1.6vw, 1.1rem);
	font-style: italic;
	color: rgba(255, 255, 255, .75);
	line-height: 1.5;
}

/* God's Promise panel */
.rb-hero__promise {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-bottom: 28px;
	padding: 18px 24px;
	background: rgba(255, 122, 24, .08);
	border-left: 3px solid #FF7A18;
	border-radius: 4px;
	max-width: 640px;
}

.rb-hero__promise-label {
	font-size: clamp(.7rem, 1.2vw, .82rem);
	font-weight: 700;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .55);
}

.rb-hero__promise-brand {
	font-family: var(--font-display);
	font-size: clamp(1.9rem, 4.6vw, 3.1rem);
	font-weight: 900;
	letter-spacing: .03em;
	color: #FF7A18;
	line-height: 1.15;
	text-shadow: 0 2px 18px rgba(255, 122, 24, .35);
}

/* GOC International name + pillars */
.rb-hero__goc {
	margin-bottom: 36px;
}

.rb-hero__goc-name {
	margin: 0 0 8px;
	font-family: var(--font-display);
	font-size: clamp(1rem, 2.2vw, 1.5rem);
	font-weight: 900;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #fff;
}

.rb-hero__goc-pillars {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 18px;
	margin: 0;
}

.rb-hero__goc-pillars span {
	font-size: clamp(.8rem, 1.3vw, .95rem);
	font-weight: 700;
	letter-spacing: .1em;
	color: rgba(255, 255, 255, .65);
	text-transform: uppercase;
}

/* Stats strip */
.rb-hero__facts {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px 0;
	padding-top: 28px;
	border-top: 1px solid rgba(255, 255, 255, .14);
	max-width: 100%;
}

.rb-hero__fact {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 0 24px;
}

.rb-hero__fact:first-child { padding-left: 0; }

.rb-hero__fact-n {
	font-family: var(--font-display);
	font-size: clamp(1.5rem, 3vw, 2.2rem);
	font-weight: 800;
	color: #C9A84C;
	line-height: 1;
}

.rb-hero__fact-l {
	font-size: clamp(.7rem, 1.1vw, .8rem);
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .6);
	max-width: 16ch;
	line-height: 1.35;
}

.rb-hero__fact-div {
	width: 1px;
	height: 40px;
	background: rgba(255, 255, 255, .18);
	flex-shrink: 0;
}

/*
 * Below 760px, this switches from a single flowing row (fact, divider,
 * fact, divider…) to a fixed two-column grid. Flex-wrap with vertical
 * dividers threaded between the items looks fine as one row, but once six
 * items and five dividers start wrapping onto separate lines at phone
 * widths, a divider can land alone at the start of a wrapped line or
 * beside a fact it no longer relates to — the misaligned entries and the
 * stray floating line this produced. A divider between two vertically
 * stacked rows doesn't mean anything, so the grid drops them rather than
 * trying to keep them upright through the wrap.
 */
@media (max-width: 760px) {
	.rb-hero__facts {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 22px 16px;
		padding-top: 24px;
	}

	.rb-hero__fact,
	.rb-hero__fact:first-child {
		padding: 0;
	}

	.rb-hero__fact-div { display: none; }
}

@media (max-width: 480px) {
	.rb-hero__goc-pillars { flex-direction: column; gap: 4px; }
}
