/**
 * Page sections, from the Home frames 7:2, 19:190 and 19:442.
 *
 * A section's vertical padding changes with the screen, which block
 * attributes cannot say, so it lives here, at two classes so a section style's
 * own padding (one class, via :root) never wins on load order: 64 on a phone, 96 on a tablet,
 * and from 960 96 over 128 (or 128 both ways for an even section).
 */
.wp-block-group.abhinav-section {
	padding-block: var(--wp--preset--spacing--64);
}

.wp-block-group.abhinav-section.has-rule {
	border-top: var(--wp--custom--stroke--construction) solid var(--wp--preset--color--line-subtle);
}

/* Headings drawn in Heading/L: bold, tight. */
.abhinav-heading-l {
	font-weight: 700;
	line-height: 1.083;
	letter-spacing: -0.015em;
}

/* Hero. */
.abhinav-hero__intro {
	padding-top: var(--wp--preset--spacing--32);
	padding-bottom: var(--wp--preset--spacing--24);
}

.abhinav-hero__intro > * + * {
	margin-block-start: var(--wp--preset--spacing--16);
}

.abhinav-hero .abhinav-actions {
	margin-block-start: var(--wp--preset--spacing--24);
}

.abhinav-hero__scene {
	margin: 0;
}

/* The ridge crops rather than shrinks, so the climber and the sun stay in
   frame on a phone. */
.abhinav-hero__scene img {
	display: block;
	width: 100%;
	min-height: var(--wp--preset--spacing--128);
	object-fit: cover;
	object-position: 67% 100%;
}

/* Build log rows. */
.abhinav-part {
	display: grid;
	grid-template-columns: auto 1fr;
	grid-template-areas:
		"number status"
		"title title";
	column-gap: var(--wp--preset--spacing--8);
	row-gap: var(--wp--preset--spacing--4);
	padding-block: var(--wp--preset--spacing--16);
	border-top: var(--wp--custom--stroke--construction) solid var(--wp--preset--color--line-subtle);
}

.abhinav-part > * {
	margin: 0;
}

.abhinav-part .abhinav-part__number {
	grid-area: number;
	font-size: var(--wp--preset--font-size--body-s);
}

.abhinav-part__title {
	grid-area: title;
}

.abhinav-part__status {
	grid-area: status;
}

.abhinav-part__title a,
.abhinav-now h3 a {
	color: inherit;
	text-decoration: none;
}

.abhinav-part__title a:hover,
.abhinav-now h3 a:hover {
	text-decoration: underline;
	text-decoration-thickness: var(--wp--custom--underline--hover);
	text-underline-position: from-font;
}

.abhinav-now__sun {
	margin: 0;
}

.abhinav-now__sun img {
	display: block;
	width: var(--wp--preset--spacing--24);
	height: var(--wp--preset--spacing--24);
}

/* Actions run the full width on a phone, stacked, as drawn. */
@media (max-width: 599px) {
	.abhinav-actions {
		flex-direction: column;
		align-items: stretch;
	}

	.abhinav-actions .wp-block-button,
	.abhinav-actions .wp-block-button__link {
		width: 100%;
	}
}

/* Media first when the columns stack. */
@media (max-width: 781px) {
	.abhinav-media-first {
		flex-direction: column-reverse;
	}
}

@media (min-width: 600px) {
	.wp-block-group.abhinav-section {
		padding-block: var(--wp--preset--spacing--96);
	}

	.abhinav-hero__intro {
		padding-top: var(--wp--preset--spacing--64);
	}
}

@media (min-width: 960px) {
	.wp-block-group.abhinav-section {
		padding-top: var(--wp--preset--spacing--96);
		padding-bottom: var(--wp--preset--spacing--128);
	}

	.wp-block-group.abhinav-section.is-even {
		padding-top: var(--wp--preset--spacing--128);
	}

	.abhinav-hero__intro {
		padding-top: var(--wp--preset--spacing--96);
	}

	.abhinav-hero__intro > * + * {
		margin-block-start: var(--wp--preset--spacing--24);
	}

	.abhinav-hero .abhinav-actions {
		margin-block-start: calc(var(--wp--preset--spacing--24) + var(--wp--preset--spacing--12));
	}

	.abhinav-part {
		grid-template-columns: calc(var(--wp--preset--spacing--64) + var(--wp--preset--spacing--16)) 1fr auto;
		grid-template-areas: "number title status";
		column-gap: var(--wp--preset--spacing--32);
		align-items: baseline;
		padding-block: var(--wp--preset--spacing--24);
	}

	.abhinav-part .abhinav-part__number {
		font-size: var(--wp--preset--font-size--label);
		font-weight: 500;
		letter-spacing: 0.005em;
	}
}

/* Sections meet edge to edge, whatever flow layout they sit in. */
.wp-block-group.abhinav-section,
.abhinav-page-intro,
.abhinav-hero {
	margin-block: 0;
}

.wp-block-group.abhinav-section.is-flush-top {
	padding-top: 0;
}

/* A page's intro: title and lead line, from Work 44:32. */
.abhinav-page-intro {
	padding-block: var(--wp--preset--spacing--32) var(--wp--preset--spacing--48);
}

/* Case studies are ruled apart. */
.abhinav-case {
	padding-top: var(--wp--preset--spacing--32);
	border-top: var(--wp--custom--stroke--construction) solid var(--wp--preset--color--line-subtle);
}

/* Projects sit in rows with no gap between: the rule above each one is the
   separation. The grid's column gap comes from its block settings. */
.wp-block-group.abhinav-projects {
	row-gap: 0;
}

/* An open source project, ruled off on the inverse surface. */
.abhinav-project {
	padding-block: var(--wp--preset--spacing--16);
	border-top: var(--wp--custom--stroke--construction) solid var(--wp--preset--color--inverse-line-subtle);
}

.abhinav-project > * {
	margin-block: 0;
}

.abhinav-project > * + * {
	margin-block-start: var(--wp--preset--spacing--8);
}

@media (min-width: 600px) {
	.abhinav-page-intro {
		padding-block: var(--wp--preset--spacing--48) var(--wp--preset--spacing--64);
	}

	.abhinav-case {
		padding-top: var(--wp--preset--spacing--48);
	}
}

@media (min-width: 960px) {
	.wp-block-group.abhinav-section.is-flush-top {
		padding-top: 0;
	}

	.wp-block-group.abhinav-section.is-balanced {
		padding-block: var(--wp--preset--spacing--96);
	}

	.abhinav-page-intro {
		padding-block: var(--wp--preset--spacing--64) var(--wp--preset--spacing--96);
	}
}

/* A case study, from Case study GasView 21:3. */
.abhinav-case-hero,
.abhinav-case-short,
.abhinav-case-photo,
.abhinav-case-row,
.abhinav-case-next {
	margin-block: 0;
}

.wp-block-group.abhinav-case-hero {
	padding-block: var(--wp--preset--spacing--48) var(--wp--preset--spacing--64);
}

.abhinav-case-hero > * + * {
	margin-block-start: var(--wp--preset--spacing--32);
}

.abhinav-case-facts {
	row-gap: var(--wp--preset--spacing--16);
}

.abhinav-case-facts p {
	margin: 0;
}

/* The hero drawing stands clear of the facts, as the illustration row in
   GasView case study: content 288:3 places it. */
.abhinav-case-hero > .abhinav-illustration {
	margin-block-start: var(--wp--preset--spacing--48);
}

.wp-block-group.abhinav-case-short {
	padding-block: var(--wp--preset--spacing--64) var(--wp--preset--spacing--32);
}

.wp-block-group.abhinav-case-photo,
.wp-block-group.abhinav-case-row {
	padding-block: var(--wp--preset--spacing--32);
}

.abhinav-case-photo .wp-block-image {
	margin: 0;
}

.abhinav-case-row .wp-block-columns {
	margin: 0;
}

/* The three queue bands: a bar each, the reading's bar in ink with the
   turmeric triangle over it, as the menu marks the current page. */
.abhinav-band {
	position: relative;
	padding-top: calc(var(--wp--preset--spacing--16) + var(--wp--preset--spacing--8));
	text-align: center;
	color: var(--wp--preset--color--contrast-muted);
}

.abhinav-band::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: var(--wp--preset--spacing--12);
	height: calc(var(--wp--custom--stroke--quote) * 2);
	background-color: var(--wp--preset--color--line-subtle);
}

.abhinav-band.is-reading {
	color: var(--wp--preset--color--contrast);
}

.abhinav-band.is-reading::after {
	background-color: var(--wp--preset--color--line);
}

.abhinav-band.is-reading::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 0;
	width: var(--wp--custom--marker--disclosure-long);
	height: var(--wp--custom--marker--disclosure-short);
	transform: translateX(-50%);
	background-color: var(--wp--preset--color--accent);
	clip-path: polygon(0 0, 100% 0, 50% 100%);
}

.abhinav-band p {
	margin: 0;
}

.abhinav-case-shots .wp-block-image {
	margin: 0;
}

.abhinav-case-shots img {
	width: 100%;
	object-position: top;
}

.wp-block-group.abhinav-case-next {
	padding-block: var(--wp--preset--spacing--64);
}

/* The ridge on a blue page takes the inverse inks. */
.resha-reading-progress.is-on-inverse {
	background-color: var(--wp--preset--color--inverse);
}

.resha-reading-progress.is-on-inverse .resha-reading-progress__track {
	stroke: var(--wp--preset--color--inverse-line-subtle);
}

.resha-reading-progress.is-on-inverse .resha-reading-progress__drawn {
	stroke: var(--wp--preset--color--on-inverse);
}

@media (min-width: 960px) {
	.wp-block-group.abhinav-case-hero {
		padding-block: var(--wp--preset--spacing--64) var(--wp--preset--spacing--96);
	}

	.wp-block-group.abhinav-case-hero:has(> .abhinav-illustration) {
		padding-bottom: var(--wp--preset--spacing--64);
	}

	.abhinav-case-hero > .abhinav-illustration {
		margin-block-start: var(--wp--preset--spacing--96);
	}

	.wp-block-group.abhinav-case-short {
		padding-block: var(--wp--preset--spacing--96) var(--wp--preset--spacing--48);
	}

	.wp-block-group.abhinav-case-photo,
	.wp-block-group.abhinav-case-row {
		padding-block: var(--wp--preset--spacing--48);
	}

	.wp-block-group.abhinav-case-row:last-of-type {
		padding-bottom: var(--wp--preset--spacing--96);
	}

	.wp-block-group.abhinav-case-next {
		padding-block: var(--wp--preset--spacing--96);
	}
}

/* Labelled rows, as Now and the CV draw them: a label, then its text, ruled
   off from the row above. Stacked on a phone. */
.abhinav-kv {
	display: grid;
	gap: var(--wp--preset--spacing--8);
	padding-block: var(--wp--preset--spacing--24);
	border-top: var(--wp--custom--stroke--construction) solid var(--wp--preset--color--line-subtle);
}

.is-style-inverse .abhinav-kv {
	border-top-color: var(--wp--preset--color--inverse-line-subtle);
}

.abhinav-kv > * {
	margin: 0;
}

.wp-block-group .abhinav-kv__key.has-label-font-size {
	font-weight: 500;
	letter-spacing: 0.005em;
}

.wp-block-group .abhinav-kv__key.has-heading-s-font-size {
	font-weight: 600;
	line-height: 1.25;
}

.abhinav-month-title {
	padding-bottom: var(--wp--preset--spacing--24);
}

@media (min-width: 782px) {
	.abhinav-kv {
		grid-template-columns: calc(var(--wp--preset--spacing--96) * 2 + var(--wp--preset--spacing--24) + var(--wp--preset--spacing--4)) minmax(0, calc(var(--wp--preset--spacing--128) * 6));
		column-gap: var(--wp--preset--spacing--48);
	}
}

/* The CV, from CV 45:3: labelled blocks of ruled entries and lines. */
.abhinav-cv-block > * {
	margin: 0;
}

.abhinav-cv-label {
	padding: var(--wp--preset--spacing--8) 0 var(--wp--preset--spacing--4);
	font-weight: 500;
	letter-spacing: 0.005em;
}

.abhinav-cv-entry,
.abhinav-cv-line {
	border-top: var(--wp--custom--stroke--construction) solid var(--wp--preset--color--line-subtle);
}

.abhinav-cv-entry {
	padding-block: var(--wp--preset--spacing--16);
}

.abhinav-cv-line {
	padding-block: var(--wp--preset--spacing--12);
}

.abhinav-cv-entry > *,
.abhinav-cv-line > *,
.abhinav-cv-entry__head > * {
	margin: 0;
}

.abhinav-cv-line a {
	color: inherit;
	text-decoration: none;
}

.abhinav-cv-line a:hover {
	text-decoration: underline;
	text-decoration-thickness: var(--wp--custom--underline--hover);
	text-underline-position: from-font;
}

/* Search, from Search 37:71 and 37:301: a big field with its button beside
   it, the count, then ruled results. */
.abhinav-search-form .wp-block-search__inside-wrapper {
	gap: var(--wp--preset--spacing--12);
	padding: 0;
	border: 0;
}

.abhinav-search-form .wp-block-search__input {
	padding: var(--wp--preset--spacing--16) var(--wp--preset--spacing--16);
	border: var(--wp--custom--stroke--line) solid var(--wp--preset--color--line);
	border-radius: 0;
	font-size: var(--wp--preset--font-size--body-l);
}

.abhinav-search-count {
	margin-block: 0 var(--wp--preset--spacing--16);
	color: var(--wp--preset--color--contrast-muted);
	font-size: var(--wp--preset--font-size--body-s);
}

.abhinav-search-result {
	max-width: calc(var(--wp--preset--spacing--128) * 6);
	padding-block: var(--wp--preset--spacing--24);
	border-top: var(--wp--custom--stroke--construction) solid var(--wp--preset--color--line-subtle);
}

.abhinav-search-result > * {
	margin-block: 0;
}

.abhinav-search-result .wp-block-post-title {
	line-height: 1.25;
}

.abhinav-search-result .wp-block-post-title a {
	color: inherit;
	text-decoration: none;
}

.abhinav-search-result .wp-block-post-title a:hover {
	text-decoration: underline;
	text-decoration-thickness: var(--wp--custom--underline--hover);
	text-underline-position: from-font;
}

.abhinav-search-result__excerpt .wp-block-post-excerpt__excerpt {
	margin: 0;
	color: var(--wp--preset--color--contrast-muted);
	font-size: var(--wp--preset--font-size--body-s);
}

.abhinav-no-results-ridge {
	margin: var(--wp--preset--spacing--48) 0 0;
}

.abhinav-no-results-ridge img {
	display: block;
	width: 100%;
}

/* 404, from 404 22:2346: the whole page on the inverse surface. */
.wp-block-group.abhinav-not-found__message {
	padding-block: var(--wp--preset--spacing--64) var(--wp--preset--spacing--32);
}

@media (min-width: 960px) {
	.wp-block-group.abhinav-not-found__message {
		padding-top: calc(var(--wp--preset--spacing--96) + var(--wp--preset--spacing--16));
	}
}

/* The scene loops as an animated WebP; a reader who asks for less motion
   gets its still instead. */
.wp-block-image.abhinav-not-found__still {
	display: none;
}

@media (prefers-reduced-motion: reduce) {
	.wp-block-image.abhinav-not-found__motion {
		display: none;
	}

	.wp-block-image.abhinav-not-found__still {
		display: block;
	}
}

/* Contact, from Contact 22:2993: the intro beside the form, stacked under 960. */
.wp-block-group.abhinav-contact {
	padding-block: var(--wp--preset--spacing--32) var(--wp--preset--spacing--64);
}

/* A wrapping row: stacked under 960, as drawn at 834, side by side above. */
.abhinav-contact__columns > * {
	flex: 1 1 100%;
}

@media (min-width: 600px) {
	.wp-block-group.abhinav-contact {
		padding-block: var(--wp--preset--spacing--48) var(--wp--preset--spacing--96);
	}
}

@media (min-width: 960px) {
	.wp-block-group.abhinav-contact {
		padding-block: var(--wp--preset--spacing--64) var(--wp--preset--spacing--96);
	}

	/* The intro holds at 480 and the form takes the rest. */
	.abhinav-contact__columns > .abhinav-contact__intro {
		flex: 0 1 calc(var(--wp--preset--spacing--128) * 3 + var(--wp--preset--spacing--96));
	}

	.abhinav-contact__columns > .abhinav-contact__form {
		flex: 1 1 0;
	}
}
