/* Acabado de portada 0.11: ritmo, profundidad y movimiento funcional. */

.aceder-home-template .ac-home {
	--ac-ease-out: cubic-bezier(0.22, 1, 0.36, 1);
	--ac-soft-orange: rgb(232 109 10 / 10%);
}

.aceder-home-template .ac-site-header {
	position: relative;
}

.aceder-home-template .ac-site-header::after {
	background: linear-gradient(90deg, var(--ac-rust) 0 31%, transparent 31%);
	bottom: -1px;
	content: "";
	height: 2px;
	left: 0;
	pointer-events: none;
	position: absolute;
	right: 0;
	z-index: 2;
}

.aceder-home-template .ac-primary-nav a:not(.ac-header-cta) {
	position: relative;
}

.aceder-home-template .ac-primary-nav a:not(.ac-header-cta)::after {
	background: var(--ac-rust);
	bottom: -8px;
	content: "";
	height: 2px;
	left: 0;
	position: absolute;
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 280ms var(--ac-ease-out);
	width: 100%;
}

.aceder-home-template .ac-primary-nav a:not(.ac-header-cta):hover::after,
.aceder-home-template .ac-primary-nav a:not(.ac-header-cta):focus-visible::after {
	transform: scaleX(1);
	transform-origin: left;
}

/* Banda automática: una sola información, con temporizador visible. */
.ac-capability-rail {
	overflow: hidden;
	position: relative;
}

.ac-capability-rail::after {
	background: var(--ac-rust);
	bottom: 0;
	content: "";
	height: 3px;
	left: 0;
	position: absolute;
	transform: scaleX(0);
	transform-origin: left;
	width: 100%;
	z-index: 3;
}

.ac-capability-rail.is-counting::after {
	animation: ac-rail-timer 3s linear both;
}

.ac-capability-rail__item {
	transition: opacity 220ms ease, transform 320ms var(--ac-ease-out);
}

@keyframes ac-rail-timer {
	to {
		transform: scaleX(1);
	}
}

/* Hero: lectura contenida, imagen protagonista y avance inequívoco. */
.aceder-home-template .ac-hero::before {
	background:
		linear-gradient(90deg, rgb(4 4 4 / 97%) 0%, rgb(4 4 4 / 86%) 31%, rgb(4 4 4 / 45%) 53%, rgb(4 4 4 / 9%) 100%),
		linear-gradient(0deg, rgb(4 4 4 / 34%), transparent 45%);
}

.aceder-home-template .ac-hero__copy::before {
	background: var(--ac-rust);
	content: "";
	height: 72px;
	left: -25px;
	position: absolute;
	top: 50%;
	transform: translateY(-128px);
	width: 4px;
}

.aceder-home-template .ac-hero h1 {
	font-size: clamp(2.3rem, 3.35vw, 2.95rem);
	text-wrap: balance;
}

.aceder-home-template .ac-hero-slider__slide {
	transition: opacity 620ms ease, visibility 620ms ease;
	visibility: hidden;
}

.aceder-home-template .ac-hero-slider__slide.is-active {
	visibility: visible;
}

.aceder-home-template .ac-hero-slider.is-ready .ac-hero-slider__slide.is-active img {
	animation-duration: 5.2s;
}

.aceder-home-template .ac-hero-slider__controls {
	backdrop-filter: blur(8px);
	background: rgb(9 9 9 / 82%);
	box-shadow: 0 -1px 0 rgb(255 255 255 / 12%);
}

.aceder-home-template .ac-hero-slider__controls button {
	transition: background-color 180ms ease, color 180ms ease;
}

.aceder-home-template .ac-hero-slider__progress i {
	transform: scaleX(0);
	transform-origin: left;
	transition: none;
	width: 100% !important;
}

.aceder-home-template .ac-hero-slider.is-counting .ac-hero-slider__progress i {
	animation: ac-hero-timer 4.6s linear both;
}

@keyframes ac-hero-timer {
	to {
		transform: scaleX(1);
	}
}

/* Entrada y prueba: más arquitectura, sin convertir el texto en etiquetas. */
.aceder-home-template .ac-intro {
	background:
		linear-gradient(135deg, transparent 0 68%, rgb(23 23 23 / 3%) 68% 69%, transparent 69%),
		var(--ac-paper-deep);
	position: relative;
}

.aceder-home-template .ac-intro::after {
	background: var(--ac-rust);
	bottom: 0;
	content: "";
	height: 5px;
	left: 0;
	position: absolute;
	width: min(30vw, 430px);
}

.aceder-home-template .ac-intro__grid {
	border-top: 1px solid var(--ac-ink);
	padding-top: clamp(34px, 4vw, 52px);
}

.aceder-home-template .ac-intro h2 {
	max-width: 720px;
	text-wrap: balance;
}

.aceder-home-template .ac-intro__materials {
	padding-left: 34px;
	position: relative;
}

.aceder-home-template .ac-intro__materials::before {
	background: var(--ac-rust);
	content: "";
	height: 3px;
	left: 0;
	position: absolute;
	top: 31px;
	width: 18px;
}

.ac-proof-rail span {
	position: relative;
	transition: color 200ms ease, transform 280ms var(--ac-ease-out);
}

.ac-proof-rail span::after {
	background: var(--ac-rust);
	bottom: -20px;
	content: "";
	height: 3px;
	left: 50%;
	position: absolute;
	transform: translateX(-50%) scaleX(0);
	transition: transform 300ms var(--ac-ease-out);
	width: 46px;
}

.ac-proof-rail span:hover {
	color: var(--ac-rust-dark);
	transform: translateY(-2px);
}

.ac-proof-rail span:hover::after {
	transform: translateX(-50%) scaleX(1);
}

/* Titulares y servicios. */
.aceder-home-template .ac-section-heading h2,
.aceder-home-template .ac-blog-preview .ac-page-heading h2 {
	padding-top: 25px;
	position: relative;
	text-wrap: balance;
}

.aceder-home-template .ac-section-heading h2::before,
.aceder-home-template .ac-blog-preview .ac-page-heading h2::before {
	background: var(--ac-rust);
	content: "";
	height: 4px;
	left: 0;
	position: absolute;
	top: 0;
	width: 54px;
}

.aceder-home-template .ac-services {
	background:
		linear-gradient(90deg, rgb(232 109 10 / 4%) 0 8%, transparent 8%),
		#f8f7f3;
}

.aceder-home-template .ac-service {
	overflow: hidden;
	position: relative;
	transition: background-color 320ms ease, padding-left 380ms var(--ac-ease-out);
}

.aceder-home-template .ac-service::before {
	background: var(--ac-rust);
	content: "";
	inset: 0 auto 0 0;
	position: absolute;
	transform: scaleY(0);
	transform-origin: bottom;
	transition: transform 350ms var(--ac-ease-out);
	width: 4px;
}

.aceder-home-template .ac-service:hover,
.aceder-home-template .ac-service:focus-within {
	background: linear-gradient(90deg, var(--ac-soft-orange), transparent 58%);
	padding-left: 18px;
}

.aceder-home-template .ac-service:hover::before,
.aceder-home-template .ac-service:focus-within::before {
	transform: scaleY(1);
}

.aceder-home-template .ac-service__number {
	font-size: 0.82rem;
	transition: color 200ms ease, transform 300ms var(--ac-ease-out);
}

.aceder-home-template .ac-service:hover .ac-service__number,
.aceder-home-template .ac-service:focus-within .ac-service__number {
	color: var(--ac-rust);
	transform: translateX(3px);
}

.aceder-home-template .ac-service > a b {
	transition: background-color 220ms ease, border-color 220ms ease, color 220ms ease, transform 300ms var(--ac-ease-out);
}

.aceder-home-template .ac-service > a:hover b,
.aceder-home-template .ac-service > a:focus-visible b {
	background: var(--ac-rust);
	border-color: var(--ac-rust);
	transform: translateX(5px);
}

/* Trabajos: composición editorial, numeración integrada y zoom moderado. */
.aceder-home-template .ac-projects {
	background:
		linear-gradient(180deg, #fff 0 72%, #f1efe9 72%),
		#fff;
}

.aceder-home-template .ac-project > .ac-project__media {
	background: var(--ac-machine);
	overflow: hidden;
	padding-top: 0;
	position: relative;
}

.aceder-home-template .ac-project__media::after {
	background: linear-gradient(180deg, transparent 66%, rgb(9 9 9 / 22%));
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
}

.aceder-home-template .ac-project img {
	transition: filter 320ms ease, transform 850ms var(--ac-ease-out);
}

.aceder-home-template .ac-project:hover img,
.aceder-home-template .ac-project:focus-within img {
	filter: grayscale(0) saturate(0.92) contrast(1.03);
	transform: scale(1.045);
}

.aceder-home-template .ac-project > .ac-project__caption {
	display: grid;
	gap: 18px;
	grid-template-columns: 38px minmax(0, 1fr);
	padding-top: 24px;
}

.aceder-home-template .ac-project__number {
	color: var(--ac-rust-dark);
	font-family: var(--ac-mono);
	font-size: 0.75rem;
	font-weight: 700;
	padding-top: 5px;
}

.aceder-home-template .ac-project__caption h3 {
	transition: color 200ms ease;
}

.aceder-home-template .ac-project:hover .ac-project__caption h3 {
	color: var(--ac-rust-dark);
}

/* Empresa: un escenario oscuro para romper la sucesión de fondos claros. */
.aceder-home-template .ac-team {
	background:
		linear-gradient(120deg, rgb(255 255 255 / 3%) 0 18%, transparent 18%),
		var(--ac-machine-dark);
	border-top: 5px solid var(--ac-rust);
	color: var(--ac-white);
	overflow: hidden;
	position: relative;
}

.aceder-home-template .ac-team::after {
	border: 1px solid rgb(255 255 255 / 8%);
	content: "";
	height: 330px;
	pointer-events: none;
	position: absolute;
	right: -165px;
	top: -165px;
	transform: rotate(45deg);
	width: 330px;
}

.aceder-home-template .ac-team__grid {
	align-items: stretch;
	position: relative;
	z-index: 1;
}

.aceder-home-template .ac-team__media {
	min-height: 440px;
	overflow: hidden;
	position: relative;
}

.aceder-home-template .ac-team__media::after {
	background: linear-gradient(90deg, transparent 74%, rgb(9 9 9 / 48%));
	content: "";
	inset: 0;
	position: absolute;
}

.aceder-home-template .ac-team__media img {
	display: block;
	filter: grayscale(0.42) saturate(0.72) contrast(1.1);
	height: 100%;
	object-fit: cover;
	transition: filter 500ms ease, transform 900ms var(--ac-ease-out);
	width: 100%;
}

.aceder-home-template .ac-team:hover .ac-team__media img {
	filter: grayscale(0.15) saturate(0.82) contrast(1.08);
	transform: scale(1.025);
}

.aceder-home-template .ac-team__copy {
	align-self: center;
	border-left: 1px solid rgb(255 255 255 / 18%);
	padding: 34px 0 34px clamp(38px, 6vw, 88px);
	position: relative;
}

.aceder-home-template .ac-team__copy::before {
	background: var(--ac-rust);
	content: "";
	height: 86px;
	left: -3px;
	position: absolute;
	top: 34px;
	width: 5px;
}

.aceder-home-template .ac-team h2 {
	color: var(--ac-white);
	max-width: 560px;
	text-wrap: balance;
}

.aceder-home-template .ac-team p {
	color: rgb(255 255 255 / 68%);
	max-width: 560px;
}

.aceder-home-template .ac-team .ac-button--light {
	background: transparent;
	border-color: rgb(255 255 255 / 44%);
	color: var(--ac-white);
}

.aceder-home-template .ac-team .ac-button--light:hover,
.aceder-home-template .ac-team .ac-button--light:focus-visible {
	background: var(--ac-rust);
	border-color: var(--ac-rust);
}

/* Proceso: una única secuencia, no cuatro cajas aisladas. */
.aceder-home-template .ac-process {
	background:
		linear-gradient(180deg, transparent 0 58%, rgb(23 23 23 / 2%) 58%),
		#fff;
}

.aceder-home-template .ac-process__list {
	border-top: 0;
	gap: clamp(22px, 3vw, 46px);
	padding-top: 2px;
	position: relative;
}

.aceder-home-template .ac-process__list::before {
	background: var(--ac-line);
	content: "";
	height: 1px;
	left: 24px;
	position: absolute;
	right: 24px;
	top: 26px;
}

.aceder-home-template .ac-process__list li,
.aceder-home-template .ac-process__list li:first-child,
.aceder-home-template .ac-process__list li:last-child {
	border: 0;
	padding: 0;
	position: relative;
}

.aceder-home-template .ac-process__number {
	align-items: center;
	background: var(--ac-white);
	border: 1px solid var(--ac-ink);
	border-radius: 50%;
	color: var(--ac-ink);
	display: flex;
	font-family: var(--ac-mono);
	font-size: 0.7rem;
	font-weight: 700;
	height: 50px;
	justify-content: center;
	margin-bottom: 28px;
	position: relative;
	transition: background-color 240ms ease, border-color 240ms ease, color 240ms ease, transform 300ms var(--ac-ease-out);
	width: 50px;
	z-index: 1;
}

.aceder-home-template .ac-process__list li:hover .ac-process__number {
	background: var(--ac-rust);
	border-color: var(--ac-rust);
	color: var(--ac-white);
	transform: translateY(-4px);
}

.aceder-home-template .ac-process__list h3 {
	font-size: clamp(1.2rem, 1.7vw, 1.5rem);
}

/* Blog: una pieza principal y dos lecturas secundarias. */
.aceder-home-template .ac-blog-preview {
	background: var(--ac-paper);
	position: relative;
}

.aceder-home-template .ac-blog-preview::before {
	background: var(--ac-rust);
	content: "";
	height: 5px;
	position: absolute;
	right: 0;
	top: 0;
	width: min(26vw, 390px);
}

.aceder-home-template .ac-blog-preview .ac-page-heading h2 {
	font-size: clamp(2.15rem, 3.8vw, 3.1rem);
}

.aceder-home-template .ac-blog-grid {
	align-items: start;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	row-gap: 36px;
}

.aceder-home-template .ac-blog-card {
	border-bottom: 1px solid var(--ac-ink);
	grid-column: 8 / span 5;
	padding-bottom: 28px;
}

.aceder-home-template .ac-blog-card:first-child {
	grid-column: 1 / span 7;
	grid-row: 1 / span 2;
}

.aceder-home-template .ac-blog-card__image {
	background: var(--ac-machine);
}

.aceder-home-template .ac-blog-card img {
	filter: grayscale(0.2) saturate(0.78) contrast(1.05);
	transition: filter 300ms ease, transform 750ms var(--ac-ease-out);
}

.aceder-home-template .ac-blog-card:hover img {
	filter: grayscale(0) saturate(0.92) contrast(1.03);
	transform: scale(1.045);
}

.aceder-home-template .ac-blog-card:not(:first-child) {
	display: grid;
	gap: 24px;
	grid-template-columns: minmax(145px, 0.42fr) minmax(0, 0.58fr);
}

.aceder-home-template .ac-blog-card:not(:first-child) img {
	aspect-ratio: 1 / 1;
	height: 100%;
}

.aceder-home-template .ac-blog-card:not(:first-child) > div {
	padding-top: 0;
}

.aceder-home-template .ac-blog-card:not(:first-child) h3 {
	font-size: clamp(1.18rem, 1.65vw, 1.45rem);
}

.aceder-home-template .ac-blog-card:not(:first-child) p {
	display: none;
}

.aceder-home-template .ac-blog-card h3 a {
	background-image: linear-gradient(var(--ac-rust), var(--ac-rust));
	background-position: 0 100%;
	background-repeat: no-repeat;
	background-size: 0 2px;
	transition: background-size 380ms var(--ac-ease-out), color 180ms ease;
}

.aceder-home-template .ac-blog-card:hover h3 a,
.aceder-home-template .ac-blog-card:focus-within h3 a {
	background-size: 100% 2px;
	color: var(--ac-rust-dark);
}

/* Cierre: dos zonas claras, una sola llamada comercial. */
.aceder-home-template .ac-cta {
	background:
		linear-gradient(135deg, transparent 0 72%, rgb(255 255 255 / 4%) 72% 73%, transparent 73%),
		var(--ac-machine-dark);
	border-top: 1px solid rgb(255 255 255 / 14%);
	overflow: hidden;
	position: relative;
}

.aceder-home-template .ac-cta::before {
	border: 2px solid rgb(232 109 10 / 28%);
	border-radius: 50%;
	content: "";
	height: 420px;
	left: -260px;
	pointer-events: none;
	position: absolute;
	top: -285px;
	width: 420px;
}

.aceder-home-template .ac-cta__inner {
	position: relative;
	z-index: 1;
}

.aceder-home-template .ac-cta h2 {
	font-size: clamp(2.15rem, 3.8vw, 3.1rem);
	text-wrap: balance;
}

.aceder-home-template .ac-cta__actions {
	align-items: stretch;
	border-left: 1px solid rgb(255 255 255 / 24%);
	min-width: 290px;
	padding: 12px 0 12px clamp(32px, 4vw, 58px);
}

.aceder-home-template .ac-cta__phone {
	border-bottom: 2px solid var(--ac-rust);
	padding: 3px 0 9px;
	text-align: center;
	transition: color 180ms ease;
}

.aceder-home-template .ac-cta__phone:hover,
.aceder-home-template .ac-cta__phone:focus-visible {
	color: var(--ac-rust);
}

/* Entrada al hacer scroll. Sin JavaScript, todo permanece visible. */
.ac-motion-ready .aceder-home-template .ac-reveal {
	filter: blur(2px);
	opacity: 0;
	transform: translateY(24px);
	transition:
		opacity 720ms var(--ac-ease-out) var(--ac-reveal-delay, 0ms),
		transform 720ms var(--ac-ease-out) var(--ac-reveal-delay, 0ms),
		filter 720ms ease var(--ac-reveal-delay, 0ms);
}

.ac-motion-ready .aceder-home-template .ac-reveal.is-visible {
	filter: blur(0);
	opacity: 1;
	transform: translateY(0);
}

@media (max-width: 1020px) {
	.aceder-home-template .ac-blog-card:not(:first-child) {
		gap: 18px;
		grid-template-columns: minmax(120px, 0.42fr) minmax(0, 0.58fr);
	}

	.aceder-home-template .ac-blog-card:not(:first-child) .ac-text-link {
		font-size: 0.82rem;
	}
}

@media (max-width: 860px) {
	.aceder-home-template .ac-hero__copy::before {
		left: 0;
		transform: translateY(-146px);
	}

	.ac-proof-rail span::after {
		bottom: -1px;
		left: 18px;
		transform: scaleX(0);
		transform-origin: left;
	}

	.ac-proof-rail span:hover::after {
		transform: scaleX(1);
	}

	.aceder-home-template .ac-team__grid {
		gap: 0;
	}

	.aceder-home-template .ac-team__media {
		min-height: 390px;
	}

	.aceder-home-template .ac-team__media::after {
		background: linear-gradient(0deg, rgb(9 9 9 / 48%), transparent 40%);
	}

	.aceder-home-template .ac-team__copy {
		border-left: 0;
		border-top: 1px solid rgb(255 255 255 / 18%);
		padding: 50px 0 0;
	}

	.aceder-home-template .ac-team__copy::before {
		height: 5px;
		left: 0;
		top: -3px;
		width: 82px;
	}

	.aceder-home-template .ac-process__list::before {
		display: none;
	}

	.aceder-home-template .ac-process__list {
		gap: 0;
	}

	.aceder-home-template .ac-process__list li,
	.aceder-home-template .ac-process__list li:first-child,
	.aceder-home-template .ac-process__list li:last-child {
		border-top: 1px solid var(--ac-line);
		min-height: 205px;
		padding: 28px;
	}

	.aceder-home-template .ac-process__list li:nth-child(odd) {
		border-right: 1px solid var(--ac-line);
	}

	.aceder-home-template .ac-process__number {
		margin-bottom: 22px;
	}

	.aceder-home-template .ac-blog-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.aceder-home-template .ac-blog-card,
	.aceder-home-template .ac-blog-card:first-child {
		display: block;
		grid-column: auto;
		grid-row: auto;
	}

	.aceder-home-template .ac-blog-card:first-child {
		grid-column: 1 / 3;
	}

	.aceder-home-template .ac-blog-card:not(:first-child) img {
		aspect-ratio: 4 / 3;
		height: auto;
	}

	.aceder-home-template .ac-blog-card:not(:first-child) > div {
		padding-top: 22px;
	}

	.aceder-home-template .ac-blog-card:not(:first-child) p {
		display: block;
	}

	.aceder-home-template .ac-cta__actions {
		border-left: 0;
		border-top: 1px solid rgb(255 255 255 / 24%);
		min-width: 0;
		padding: 34px 0 0;
		width: min(100%, 340px);
	}
}

@media (max-width: 620px) {
	.aceder-home-template .ac-site-header::after {
		background: var(--ac-rust);
		width: 88px;
	}

	.ac-capability-rail::after {
		height: 2px;
	}

	.aceder-home-template .ac-hero__copy::before {
		display: none;
	}

	.aceder-home-template .ac-intro__grid {
		padding-top: 30px;
	}

	.aceder-home-template .ac-service:hover,
	.aceder-home-template .ac-service:focus-within {
		padding-left: 10px;
	}

	.aceder-home-template .ac-project > .ac-project__caption {
		grid-template-columns: 32px minmax(0, 1fr);
	}

	.aceder-home-template .ac-team__media {
		min-height: 300px;
	}

	.aceder-home-template .ac-team__copy {
		padding-top: 42px;
	}

	.aceder-home-template .ac-process__list li,
	.aceder-home-template .ac-process__list li:first-child,
	.aceder-home-template .ac-process__list li:last-child {
		border-right: 0;
		min-height: 0;
		padding: 28px 0;
	}

	.aceder-home-template .ac-process__list li:first-child {
		border-top: 1px solid var(--ac-line);
	}

	.aceder-home-template .ac-blog-grid {
		grid-template-columns: 1fr;
	}

	.aceder-home-template .ac-blog-card:first-child {
		grid-column: auto;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ac-capability-rail.is-counting::after,
	.aceder-home-template .ac-hero-slider.is-counting .ac-hero-slider__progress i {
		animation: none;
	}

	.aceder-home-template .ac-primary-nav a:not(.ac-header-cta)::after,
	.aceder-home-template .ac-service,
	.aceder-home-template .ac-service::before,
	.aceder-home-template .ac-project img,
	.aceder-home-template .ac-team__media img,
	.aceder-home-template .ac-process__number,
	.aceder-home-template .ac-blog-card img,
	.ac-motion-ready .aceder-home-template .ac-reveal {
		transition: none;
	}
}

/* --------------------------------------------------------------------------
 * Nivel editorial 0.12: más jerarquía, datos visibles y contraste de taller.
 * -------------------------------------------------------------------------- */

.aceder-home-template .ac-home {
	--ac-grid-line: rgb(255 255 255 / 10%);
}

.ac-eyebrow {
	color: var(--ac-rust-dark);
	font-family: var(--ac-mono);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	margin: 0 0 18px;
	text-transform: uppercase;
}

.ac-eyebrow--light {
	color: var(--ac-rust);
}

.ac-section-index {
	align-items: flex-start;
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding-top: 8px;
}

.ac-section-index span {
	color: var(--ac-rust-dark);
	font-family: var(--ac-mono);
	font-size: 0.72rem;
	font-weight: 700;
}

.ac-section-index b {
	color: var(--ac-graphite);
	font-family: var(--ac-mono);
	font-size: 0.58rem;
	font-weight: 700;
	letter-spacing: 0.13em;
	text-orientation: mixed;
	text-transform: uppercase;
	writing-mode: vertical-rl;
}

.ac-section-index--light span,
.ac-section-index--light b {
	color: rgb(23 23 23 / 72%);
}

/* Hero con firma técnica y más profundidad sin tapar la fotografía. */
.aceder-home-template .ac-hero {
	isolation: isolate;
}

.aceder-home-template .ac-hero::before {
	background:
		linear-gradient(90deg, rgb(4 4 4 / 98%) 0%, rgb(4 4 4 / 91%) 29%, rgb(4 4 4 / 62%) 46%, rgb(4 4 4 / 12%) 78%, rgb(4 4 4 / 4%) 100%),
		linear-gradient(0deg, rgb(4 4 4 / 45%) 0%, transparent 42%);
}

.aceder-home-template .ac-hero::after {
	background:
		linear-gradient(90deg, transparent calc(50% - .5px), var(--ac-grid-line) 50%, transparent calc(50% + .5px)),
		linear-gradient(0deg, transparent calc(50% - .5px), var(--ac-grid-line) 50%, transparent calc(50% + .5px));
	content: "";
	height: auto;
	inset: 0;
	pointer-events: none;
	position: absolute;
	z-index: 2;
}

.aceder-home-template .ac-hero__copy {
	max-width: 590px;
	padding-bottom: 132px;
}

.aceder-home-template .ac-hero__eyebrow {
	align-items: center;
	color: rgb(255 255 255 / 68%);
	display: flex;
	font-family: var(--ac-mono);
	font-size: 0.64rem;
	font-weight: 700;
	gap: 14px;
	letter-spacing: 0.07em;
	margin-bottom: 30px;
	text-transform: uppercase;
}

.aceder-home-template .ac-hero__eyebrow span {
	align-items: center;
	display: inline-flex;
	gap: 10px;
}

.aceder-home-template .ac-hero__eyebrow span::before {
	background: var(--ac-rust);
	content: "";
	height: 6px;
	width: 6px;
}

.aceder-home-template .ac-hero__eyebrow b {
	border-left: 1px solid rgb(255 255 255 / 26%);
	color: rgb(255 255 255 / 48%);
	font-weight: 700;
	padding-left: 14px;
}

.aceder-home-template .ac-hero h1 {
	font-size: clamp(2.65rem, 4.35vw, 4.25rem);
	font-weight: 680;
	line-height: 0.98;
	max-width: 590px;
}

.aceder-home-template .ac-hero__copy > p {
	max-width: 530px;
}

.aceder-home-template .ac-hero__technical {
	align-items: flex-end;
	color: rgb(255 255 255 / 48%);
	display: flex;
	flex-direction: column;
	font-family: var(--ac-mono);
	font-size: 0.58rem;
	gap: 8px;
	letter-spacing: 0.12em;
	position: absolute;
	right: var(--ac-gutter);
	text-transform: uppercase;
	top: 34px;
	z-index: 6;
}

.aceder-home-template .ac-hero__technical span:first-child {
	color: var(--ac-rust);
}

.aceder-home-template .ac-hero__scroll {
	align-items: center;
	bottom: 24px;
	color: rgb(255 255 255 / 62%);
	display: flex;
	font-family: var(--ac-mono);
	font-size: 0.61rem;
	font-weight: 700;
	gap: 13px;
	left: max(var(--ac-gutter), calc((100vw - var(--ac-width-stage)) / 2 + var(--ac-gutter)));
	letter-spacing: 0.12em;
	position: absolute;
	text-transform: uppercase;
	z-index: 7;
}

.aceder-home-template .ac-hero__scroll i {
	border: 1px solid rgb(255 255 255 / 36%);
	border-radius: 50%;
	height: 28px;
	position: relative;
	width: 28px;
}

.aceder-home-template .ac-hero__scroll i::before,
.aceder-home-template .ac-hero__scroll i::after {
	background: var(--ac-rust);
	content: "";
	left: 50%;
	position: absolute;
	transform: translateX(-50%);
}

.aceder-home-template .ac-hero__scroll i::before {
	height: 8px;
	top: 7px;
	width: 1px;
}

.aceder-home-template .ac-hero__scroll i::after {
	clip-path: polygon(0 0, 100% 0, 50% 100%);
	height: 4px;
	top: 14px;
	width: 5px;
}

.aceder-home-template .ac-hero-slider__caption {
	gap: 2px 18px;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-rows: auto auto;
	padding: 11px 22px;
}

.aceder-home-template .ac-hero-slider__caption [data-ac-hero-meta] {
	color: var(--ac-rust);
	grid-column: 1;
	grid-row: 1;
	letter-spacing: 0.08em;
	padding: 0;
	text-transform: uppercase;
}

.aceder-home-template .ac-hero-slider__caption strong {
	grid-column: 1;
	grid-row: 2;
	padding: 0;
}

.aceder-home-template .ac-hero-slider__caption [data-ac-hero-count] {
	align-self: center;
	grid-column: 2;
	grid-row: 1 / 3;
	padding: 0;
}

/* Introducción con índice editorial y lectura en tres columnas. */
.aceder-home-template .ac-intro__grid {
	gap: clamp(28px, 5vw, 76px);
	grid-template-columns: 72px minmax(360px, 1fr) minmax(300px, 0.72fr);
}

.aceder-home-template .ac-intro h2 {
	font-size: clamp(2.35rem, 4.1vw, 3.7rem);
}

/* Servicios: cada fila funciona como una ficha técnica, no como una tarjeta. */
.aceder-home-template .ac-service {
	gap: clamp(24px, 4vw, 64px);
	grid-template-columns: 54px minmax(0, 1fr) auto;
	padding-block: clamp(34px, 4vw, 54px);
}

.aceder-home-template .ac-service__body {
	align-items: start;
	display: grid;
	gap: clamp(20px, 4vw, 62px);
	grid-template-columns: minmax(250px, 0.9fr) minmax(280px, 1.1fr);
}

.aceder-home-template .ac-service__label,
.aceder-home-template .ac-project__label {
	color: var(--ac-rust-dark);
	display: block;
	font-family: var(--ac-mono);
	font-size: 0.62rem;
	font-weight: 700;
	letter-spacing: 0.09em;
	margin-bottom: 12px;
	text-transform: uppercase;
}

.aceder-home-template .ac-service__body h3,
.aceder-home-template .ac-service__body p {
	grid-column: auto;
}

.aceder-home-template .ac-service__body h3 {
	grid-row: 2;
}

.aceder-home-template .ac-service__body p {
	grid-column: 2;
	grid-row: 1 / 3;
	padding-top: 4px;
}

.aceder-home-template .ac-service__body .ac-service__label {
	grid-column: 1;
	grid-row: 1;
}

/* Proyectos: información de contexto visible y jerarquía más fotográfica. */
.aceder-home-template .ac-project__label {
	margin-bottom: 9px;
}

.aceder-home-template .ac-project__media::before {
	border: 1px solid rgb(255 255 255 / 56%);
	content: "";
	inset: 14px;
	opacity: 0;
	pointer-events: none;
	position: absolute;
	transform: scale(.985);
	transition: opacity 300ms ease, transform 500ms var(--ac-ease-out);
	z-index: 2;
}

.aceder-home-template .ac-project:hover .ac-project__media::before,
.aceder-home-template .ac-project:focus-within .ac-project__media::before {
	opacity: 1;
	transform: scale(1);
}

/* Manifiesto de criterio: una pausa fuerte y útil entre obra y empresa. */
.aceder-home-template .ac-craft {
	background:
		linear-gradient(90deg, rgb(23 23 23 / 8%) 1px, transparent 1px),
		linear-gradient(0deg, rgb(23 23 23 / 8%) 1px, transparent 1px),
		var(--ac-rust);
	background-size: 84px 84px;
	color: var(--ac-ink);
	padding-block: clamp(74px, 8vw, 118px);
	position: relative;
}

.aceder-home-template .ac-craft::after {
	color: rgb(23 23 23 / 8%);
	content: "ACEDER";
	font-size: clamp(5rem, 15vw, 13rem);
	font-weight: 800;
	letter-spacing: -0.08em;
	line-height: .72;
	pointer-events: none;
	position: absolute;
	right: -0.04em;
	top: .14em;
}

.aceder-home-template .ac-craft__grid {
	display: grid;
	gap: clamp(32px, 5vw, 78px);
	grid-template-columns: 72px minmax(420px, 1fr) minmax(280px, .58fr);
	position: relative;
	z-index: 1;
}

.aceder-home-template .ac-craft .ac-eyebrow {
	color: rgb(23 23 23 / 70%);
}

.aceder-home-template .ac-craft h2 {
	font-size: clamp(2.55rem, 5vw, 4.7rem);
	font-weight: 700;
	letter-spacing: -0.045em;
	line-height: .98;
	margin-bottom: 28px;
	max-width: 850px;
	text-wrap: balance;
}

.aceder-home-template .ac-craft__copy > p:last-child {
	font-size: clamp(1.05rem, 1.35vw, 1.2rem);
	line-height: 1.65;
	margin: 0;
	max-width: 720px;
}

.aceder-home-template .ac-craft__points {
	align-self: end;
	border-top: 1px solid rgb(23 23 23 / 62%);
	list-style: none;
	margin: 0;
	padding: 0;
}

.aceder-home-template .ac-craft__points li {
	align-items: flex-start;
	border-bottom: 1px solid rgb(23 23 23 / 28%);
	display: grid;
	font-size: .91rem;
	font-weight: 700;
	gap: 16px;
	grid-template-columns: 18px 1fr;
	line-height: 1.45;
	padding: 16px 0;
}

.aceder-home-template .ac-craft__points span {
	font-family: var(--ac-mono);
	font-size: 1rem;
}

/* Equipo: pequeños datos de confianza sin inventar cifras. */
.aceder-home-template .ac-team__points {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 28px 0 34px;
}

.aceder-home-template .ac-team__points span {
	border: 1px solid rgb(255 255 255 / 24%);
	color: rgb(255 255 255 / 78%);
	font-family: var(--ac-mono);
	font-size: 0.61rem;
	font-weight: 700;
	letter-spacing: .07em;
	padding: 9px 12px;
	text-transform: uppercase;
}

/* El índice del proceso ocupa su propia línea y ordena la sección. */
.aceder-home-template .ac-process > .ac-shell > .ac-section-index {
	border-bottom: 1px solid var(--ac-line);
	flex-direction: row;
	gap: 12px;
	margin-bottom: 36px;
	padding: 0 0 18px;
}

.aceder-home-template .ac-process > .ac-shell > .ac-section-index b {
	writing-mode: horizontal-tb;
}

@media (max-width: 1020px) {
	.aceder-home-template .ac-hero h1 {
		font-size: clamp(2.55rem, 5vw, 3.75rem);
	}

	.aceder-home-template .ac-intro__grid,
	.aceder-home-template .ac-craft__grid {
		grid-template-columns: 56px minmax(0, 1fr) minmax(280px, .72fr);
	}

	.aceder-home-template .ac-service__body {
		gap: 26px;
		grid-template-columns: minmax(240px, .9fr) minmax(250px, 1.1fr);
	}
}

@media (max-width: 860px) {
	.aceder-home-template .ac-hero__copy {
		max-width: 540px;
		padding-top: 66px;
	}

	.aceder-home-template .ac-hero__eyebrow b,
	.aceder-home-template .ac-hero__technical {
		display: none;
	}

	.aceder-home-template .ac-hero__scroll {
		display: none;
	}

	.aceder-home-template .ac-hero-slider__caption [data-ac-hero-meta] {
		display: block;
	}

	.aceder-home-template .ac-intro__grid,
	.aceder-home-template .ac-craft__grid {
		grid-template-columns: 48px minmax(0, 1fr);
	}

	.aceder-home-template .ac-intro__grid > div:last-child,
	.aceder-home-template .ac-craft__points {
		grid-column: 2;
	}

	.aceder-home-template .ac-service {
		grid-template-columns: 42px minmax(0, 1fr) auto;
	}

	.aceder-home-template .ac-service__body {
		display: block;
	}

	.aceder-home-template .ac-service__body h3 {
		margin-bottom: 18px;
	}

	.aceder-home-template .ac-craft::after {
		font-size: 24vw;
		top: .3em;
	}
}

@media (max-width: 620px) {
	.aceder-home-template .ac-hero__copy {
		padding-bottom: 110px;
	}

	.aceder-home-template .ac-hero__eyebrow {
		font-size: .58rem;
		margin-bottom: 22px;
	}

	.aceder-home-template .ac-hero h1 {
		font-size: clamp(2.25rem, 11vw, 3.15rem);
	}

	.aceder-home-template .ac-hero-slider__caption {
		padding: 10px 14px;
	}

	.aceder-home-template .ac-hero-slider__caption [data-ac-hero-meta] {
		display: none;
	}

	.aceder-home-template .ac-intro__grid,
	.aceder-home-template .ac-craft__grid {
		grid-template-columns: 1fr;
	}

	.ac-section-index {
		border-bottom: 1px solid var(--ac-line);
		flex-direction: row;
		gap: 12px;
		padding-bottom: 14px;
	}

	.ac-section-index b {
		writing-mode: horizontal-tb;
	}

	.aceder-home-template .ac-intro__grid > div:last-child,
	.aceder-home-template .ac-craft__points {
		grid-column: 1;
	}

	.aceder-home-template .ac-service {
		align-items: start;
		grid-template-columns: 34px minmax(0, 1fr);
	}

	.aceder-home-template .ac-service > a {
		grid-column: 2;
		justify-self: start;
	}

	.aceder-home-template .ac-craft {
		background-size: 56px 56px;
	}

	.aceder-home-template .ac-craft h2 {
		font-size: clamp(2.35rem, 12vw, 3.55rem);
	}
}

@media (prefers-reduced-motion: reduce) {
	.aceder-home-template .ac-project__media::before {
		transition: none;
	}
}
