/* Páginas interiores: Escultura volumétrica y Estudio */

.page-section { max-width: 1100px; margin: 0 auto; padding: 0 6vw 14vh; }
.lines .block-title { margin-bottom: 40px; }
.block-title {
	margin: 0 0 40px; font-weight: 400; font-size: clamp(18px, 1.8vw, 22px);
	letter-spacing: 0.5em; color: var(--ink);
}

/* Listas con línea fina */
.list-lines { list-style: none; margin: 0; padding: 0; }
.list-lines .line-desc { max-width: 460px; }

/* Texto corrido */
.prose { padding-bottom: 10vh; }
.prose p { margin: 0 auto 1.6em; max-width: 600px; text-align: justify; color: var(--muted); }
.prose p:last-child { margin-bottom: 0; }
.prose .block-title { max-width: 600px; margin-left: auto; margin-right: auto; }

/* Proyectos */
.project {
	display: flex; flex-wrap: wrap; gap: 32px 6vw; align-items: flex-end;
	padding: 56px 0; border-top: 1px solid var(--line);
}
.project:last-child { border-bottom: 1px solid var(--line); }
.project-media { flex: 1 1 360px; min-width: 0; }
.project-media img { width: 100%; height: auto; }
.project-media--portrait img { aspect-ratio: 3 / 4; object-fit: cover; }
.project-media--portrait { flex-basis: 380px; max-width: 480px; }
.project--wide .project-media { flex: 1 1 100%; }
.project--wide .project-media img { aspect-ratio: 16 / 9; object-fit: cover; }
.project-body { flex: 1 1 300px; min-width: 0; }
.project--wide .project-body { flex: 1 1 100%; max-width: 600px; }
.project-body h3.project-title { margin: 0; font-weight: 400; }
.project-body p { margin: 20px 0 0; color: var(--muted); }

.facts { margin: 28px 0 0; font-size: 13px; color: var(--muted); }
.facts div {
	display: grid; grid-template-columns: 110px 1fr; gap: 16px;
	padding: 10px 0; border-top: 1px solid var(--line);
}
.facts div:last-child { border-bottom: 1px solid var(--line); }
.facts dt { font-size: 12px; letter-spacing: 0.3em; color: #767676; }
.facts dd { margin: 0; }

/* Cómo trabajamos */
.steps { list-style: none; margin: 0; padding: 0; counter-reset: none; }
.step {
	display: grid; grid-template-columns: 60px minmax(0, 1fr) minmax(0, 1.4fr); align-items: baseline; gap: 12px 20px;
	padding: 30px 0; border-top: 1px solid var(--line);
}
.step:last-child { border-bottom: 1px solid var(--line); }
.step-title { margin: 0; font-weight: 400; font-size: 18px; letter-spacing: 0.4em; color: var(--ink); }
.step-desc { margin: 0; font-size: 14px; color: var(--muted); }

/* Preguntas frecuentes */
.faq details { border-top: 1px solid var(--line); }
.faq details:last-child { border-bottom: 1px solid var(--line); }
.faq summary {
	display: flex; justify-content: space-between; align-items: baseline; gap: 20px;
	padding: 26px 0; cursor: pointer; list-style: none; color: var(--ink);
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary:focus-visible { outline: 1px solid var(--muted); outline-offset: 4px; }
.faq-go { color: #767676; transition: transform .6s ease, color .6s ease; }
.faq details[open] .faq-go { transform: rotate(90deg); color: var(--ink); }
.faq details p { margin: 0 0 28px; max-width: 640px; font-size: 14px; color: var(--muted); }

/* Cotizar */
.cta { padding: 4vh 6vw 18vh; text-align: center; }
.cta .block-title { padding-left: 0.5em; }
.cta .center { display: flex; flex-wrap: wrap; justify-content: center; gap: 24px 48px; }

/* Contacto */
.contact-list { font-style: normal; max-width: 1100px; margin: 0 auto; color: var(--muted); }
.contact-list div {
	display: grid; grid-template-columns: 140px 1fr; gap: 16px; align-items: baseline;
	padding: 16px 0; border-top: 1px solid var(--line);
}
.contact-list div:last-child { border-bottom: 1px solid var(--line); }
.contact-list .eyebrow { margin: 0; }

@media (max-width: 600px) {
	.page-section { padding-bottom: 10vh; }
	.block-title { letter-spacing: 0.3em; margin-bottom: 28px; }
	.cta .block-title { padding-left: 0.3em; }
	.project { padding: 40px 0; }
	.project-media--portrait { max-width: none; }
	.facts div { grid-template-columns: 90px 1fr; gap: 12px; }
	.facts dt { letter-spacing: 0.2em; }
	.step { grid-template-columns: 36px 1fr; }
	.step-desc { grid-column: 2; }
	.step-title { font-size: 16px; letter-spacing: 0.3em; }
	.contact-list div { grid-template-columns: 100px 1fr; gap: 12px; }
	.prose p { text-align: left; }
	.list-lines .line-title { font-size: 18px; letter-spacing: 0.35em; }
}
