/* Modelo 20 · Essential & Portfolio — todas las clases con prefijo .ep */
.pmc-m-essential-portfolio {
	--ep-bg: var(--pmc-secondary, #f4f1ea);
	--ep-ink: #1a1a1a;
	--ep-muted: #5b5b5b;
	--ep-line: rgba(0, 0, 0, .1);
	--ep-card: #fff;
	background: var(--ep-bg);
	color: var(--ep-ink);
	font-family: var(--pmc-font);
}
.ep { max-width: 30rem; margin: 0 auto; padding: 2.5rem 1rem 2rem; }

.ep-head { text-align: center; margin-bottom: 1.5rem; }
.ep-avatar {
	width: 7.5rem; height: 7.5rem; margin: 0 auto 1rem; border-radius: 50%;
	overflow: hidden; background: var(--pmc-primary); color: var(--pmc-on-primary);
	display: grid; place-items: center; box-shadow: 0 0 0 4px var(--ep-card);
}
.ep-avatar-img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ep-initials { font-size: 2.4rem; font-weight: 600; letter-spacing: .02em; }
.ep-name { font-size: 1.75rem; line-height: 1.2; margin: 0; font-weight: 700; }
.ep-owner { margin: .35rem 0 0; font-weight: 500; }
.ep-tagline { margin: .35rem 0 0; color: var(--ep-muted); }

.ep-actions { display: grid; grid-template-columns: repeat(2, 1fr); gap: .5rem; margin-bottom: 1.5rem; }
.ep-btn {
	display: flex; align-items: center; justify-content: center; gap: .5rem;
	min-height: 3rem; padding: .6rem .9rem; border-radius: .75rem;
	background: var(--ep-card); color: var(--ep-ink); border: 1px solid var(--ep-line);
	font: inherit; font-weight: 600; text-decoration: none; cursor: pointer;
}
.ep-btn:hover { border-color: var(--pmc-primary); }
.ep-btn:focus-visible { outline: 3px solid var(--pmc-primary); outline-offset: 2px; }
.ep-btn-main { grid-column: 1 / -1; background: var(--pmc-primary); color: var(--pmc-on-primary); border-color: transparent; }
.ep-btn[hidden] { display: none; }

.ep-section { background: var(--ep-card); border-radius: 1rem; padding: 1.25rem; margin-bottom: .75rem; }
.ep-section h2 { font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; color: var(--ep-muted); margin: 0 0 .75rem; font-weight: 600; }
.ep-text p { margin: 0 0 .75rem; line-height: 1.6; }
.ep-text p:last-child { margin-bottom: 0; }

.ep-list, .ep-links { list-style: none; margin: 0; padding: 0; }
.ep-list li { display: flex; gap: .75rem; align-items: flex-start; padding: .55rem 0; border-top: 1px solid var(--ep-line); }
.ep-list li:first-child { border-top: 0; padding-top: 0; }
.ep-list .pmc-icon { flex: none; color: var(--ep-muted); margin-top: .1rem; }
.ep-list a { color: inherit; word-break: break-word; }

.ep-hours { width: 100%; border-collapse: collapse; }
.ep-hours th, .ep-hours td { text-align: left; padding: .4rem 0; border-top: 1px solid var(--ep-line); font-weight: 400; }
.ep-hours tr:first-child th, .ep-hours tr:first-child td { border-top: 0; }
.ep-hours td { text-align: right; font-variant-numeric: tabular-nums; }
.ep-note { color: var(--ep-muted); font-size: .9rem; margin: .5rem 0 0; }

.ep-links { display: grid; gap: .5rem; }
.ep-links a {
	display: flex; align-items: center; gap: .6rem; padding: .75rem .9rem;
	border-radius: .75rem; border: 1px solid var(--ep-line); color: inherit; text-decoration: none; font-weight: 500;
}
.ep-links a:hover { border-color: var(--pmc-primary); }

.ep-foot { text-align: center; margin-top: 1.5rem; font-size: .85rem; }
.ep-foot a { color: var(--ep-muted); }

.ep.has-cover { padding-top: 0; }
.ep-cover { margin: 0 -1rem; height: 11rem; overflow: hidden; background: var(--pmc-primary); }
.ep-cover-img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ep.has-cover .ep-avatar { margin-top: -3.75rem; position: relative; }

.ep-cat { font-size: 1rem; margin: 1rem 0 .25rem; }
.ep-cat:first-of-type { margin-top: 0; }
.ep-items { list-style: none; margin: 0; padding: 0; }
.ep-item { display: flex; gap: .85rem; padding: .75rem 0; border-top: 1px solid var(--ep-line); }
.ep-items .ep-item:first-child { border-top: 0; }
.ep-item-img { flex: none; width: 4.5rem; height: 4.5rem; border-radius: .6rem; overflow: hidden; background: var(--ep-bg); }
.ep-item-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ep-item-body { min-width: 0; flex: 1; }
.ep-item-name { margin: 0; font-weight: 600; }
.ep-item-desc { margin: .2rem 0 0; color: var(--ep-muted); font-size: .92rem; line-height: 1.45; }
.ep-item-meta { display: flex; align-items: center; gap: .75rem; margin: .4rem 0 0; }
.ep-price { font-weight: 700; font-variant-numeric: tabular-nums; }
.ep-ask { margin-left: auto; font-size: .9rem; font-weight: 600; color: var(--ep-ink); }

.ep-gallery { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: .5rem; }
.ep-gallery a { display: block; aspect-ratio: 1; border-radius: .6rem; overflow: hidden; background: var(--ep-bg); }
.ep-gallery img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ep-gallery a:focus-visible { outline: 3px solid var(--pmc-primary); outline-offset: 2px; }

@media (min-width: 40rem) {
	.ep-gallery { grid-template-columns: repeat(3, 1fr); }
	.ep-cover { margin: 0; border-radius: 0 0 1rem 1rem; height: 13rem; }
	.ep { padding-top: 4rem; }
	.ep-actions { grid-template-columns: repeat(4, 1fr); }
	.ep-btn-main { grid-column: 1 / -1; }
}
.ep-ask { display: inline-flex; align-items: center; min-height: 2.75rem; }
.ep-name { overflow-wrap: break-word; hyphens: auto; }
